fix: RoomsPage load categories from API instead of mock
This commit is contained in:
@@ -3,8 +3,7 @@ import { BedDouble, Users, Wifi, Plus, Search, Pencil, ChevronDown, ChevronUp, C
|
|||||||
import { useAmenities } from '../contexts/AmenitiesContext'
|
import { useAmenities } from '../contexts/AmenitiesContext'
|
||||||
import { useAuth } from '../contexts/AuthContext'
|
import { useAuth } from '../contexts/AuthContext'
|
||||||
import { api } from '../lib/api'
|
import { api } from '../lib/api'
|
||||||
import { MOCK_CATEGORIES } from './RoomCategoriesPage'
|
import type { Room, RoomCategory } from '../types'
|
||||||
import type { Room } from '../types'
|
|
||||||
import { cn, ROOM_STATUS_COLORS, ROOM_STATUS_LABELS, HK_STATUS_COLORS, HK_STATUS_LABELS, formatCurrency } from '../lib/utils'
|
import { cn, ROOM_STATUS_COLORS, ROOM_STATUS_LABELS, HK_STATUS_COLORS, HK_STATUS_LABELS, formatCurrency } from '../lib/utils'
|
||||||
import { Badge } from '../components/ui/Badge'
|
import { Badge } from '../components/ui/Badge'
|
||||||
import { RoomModal } from '../components/rooms/RoomModal'
|
import { RoomModal } from '../components/rooms/RoomModal'
|
||||||
@@ -14,6 +13,7 @@ export function RoomsPage() {
|
|||||||
const slug = user?.hotelSlug ?? ''
|
const slug = user?.hotelSlug ?? ''
|
||||||
|
|
||||||
const [rooms, setRooms] = useState<Room[]>([])
|
const [rooms, setRooms] = useState<Room[]>([])
|
||||||
|
const [categories, setCategories] = useState<RoomCategory[]>([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
const [search, setSearch] = useState('')
|
const [search, setSearch] = useState('')
|
||||||
const [floorFilter, setFloorFilter] = useState<number | 'all'>('all')
|
const [floorFilter, setFloorFilter] = useState<number | 'all'>('all')
|
||||||
@@ -28,8 +28,15 @@ export function RoomsPage() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!slug) return
|
if (!slug) return
|
||||||
api.rooms.list(slug)
|
Promise.all([
|
||||||
.then(setRooms)
|
api.rooms.list(slug),
|
||||||
|
api.categories.list(slug).then(rows => rows.map(c => ({
|
||||||
|
id: c.id, hotelId: c.hotel_id, name: c.name,
|
||||||
|
description: c.description, color: c.color,
|
||||||
|
amenities: c.amenities, photos: c.photos,
|
||||||
|
} as RoomCategory))),
|
||||||
|
])
|
||||||
|
.then(([r, cats]) => { setRooms(r); setCategories(cats) })
|
||||||
.catch(console.error)
|
.catch(console.error)
|
||||||
.finally(() => setLoading(false))
|
.finally(() => setLoading(false))
|
||||||
}, [slug])
|
}, [slug])
|
||||||
@@ -296,7 +303,7 @@ export function RoomsPage() {
|
|||||||
room={editingRoom}
|
room={editingRoom}
|
||||||
onClose={() => { setModalOpen(false); setSaveError(null) }}
|
onClose={() => { setModalOpen(false); setSaveError(null) }}
|
||||||
onSave={handleSave}
|
onSave={handleSave}
|
||||||
categories={MOCK_CATEGORIES}
|
categories={categories}
|
||||||
error={saveError}
|
error={saveError}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user