feat: right-click context menu for room status + bed type capacity
- Add RoomContextMenu component (portal, Escape/click-outside to close) - Change room status: available / maintenance / blocked - Change housekeeping status: clean / dirty / cleaning / inspect - Open room edit (optional) - Calendar: right-click on room label → context menu; onRoomUpdate prop wired to CalendarPage (calls api.rooms.update); show 🔧/🔒 badge on label - Rooms page: right-click on any room card → same context menu; show orange "ремонт" badge on maintenance rooms - BedTypesContext: add capacity field (max guests per bed type) - BedTypes reference UI: add capacity input to add/edit form; show "N чел." Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,20 +2,21 @@ import { createContext, useContext, useState } from 'react'
|
||||
import type { ReactNode } from 'react'
|
||||
|
||||
export interface BedTypeItem {
|
||||
value: string // unique key stored in DB (e.g. 'double', 'sofa')
|
||||
label: string // display name
|
||||
icon: string // emoji
|
||||
value: string // unique key stored in DB (e.g. 'double', 'sofa')
|
||||
label: string // display name
|
||||
icon: string // emoji
|
||||
capacity: number // max guests on this bed type
|
||||
}
|
||||
|
||||
const DEFAULT_BED_TYPES: BedTypeItem[] = [
|
||||
{ value: 'single', label: 'Кровать 1-сп.', icon: '🛏' },
|
||||
{ value: 'double', label: 'Кровать 2-сп.', icon: '🛏' },
|
||||
{ value: 'queen', label: 'Queen-кровать', icon: '🛏' },
|
||||
{ value: 'king', label: 'King-кровать', icon: '🛏' },
|
||||
{ value: 'twin', label: 'Две кровати', icon: '🛏' },
|
||||
{ value: 'sofa', label: 'Диван', icon: '🛋' },
|
||||
{ value: 'bunk', label: 'Двухъярусная', icon: '🛏' },
|
||||
{ value: 'cot', label: 'Раскладушка', icon: '🪑' },
|
||||
{ value: 'single', label: 'Кровать 1-сп.', icon: '🛏', capacity: 1 },
|
||||
{ value: 'double', label: 'Кровать 2-сп.', icon: '🛏', capacity: 2 },
|
||||
{ value: 'queen', label: 'Queen-кровать', icon: '🛏', capacity: 2 },
|
||||
{ value: 'king', label: 'King-кровать', icon: '🛏', capacity: 2 },
|
||||
{ value: 'twin', label: 'Две кровати', icon: '🛏', capacity: 2 },
|
||||
{ value: 'sofa', label: 'Диван', icon: '🛋', capacity: 1 },
|
||||
{ value: 'bunk', label: 'Двухъярусная', icon: '🛏', capacity: 2 },
|
||||
{ value: 'cot', label: 'Раскладушка', icon: '🪑', capacity: 1 },
|
||||
]
|
||||
|
||||
interface BedTypesContextValue {
|
||||
|
||||
Reference in New Issue
Block a user