State Management & RoomPrices

- Added zustand for global state management.
- New Component - NumberSelector.
- Implement Prices API.
This commit is contained in:
2024-05-09 18:32:18 +02:00
parent d6a9ac8d7c
commit 630d5cb708
11 changed files with 2333 additions and 40 deletions
+16 -1
View File
@@ -1,6 +1,6 @@
import { fetcherUnwraperWithFilter } from "./backend";
import useSWR from 'swr';
import { AvailabilityFilter, AvailabilityRequest, RoomAvailabity } from "@/model/RoomSearch";
import { AvailabilityFilter, AvailabilityRequest, FareFilter, FareRequest, RoomAvailabity, RoomPrice } from "@/model/RoomSearch";
export function useAPIRoomAvailability(filter: AvailabilityFilter | null) {
@@ -15,4 +15,19 @@ export function useAPIRoomAvailability(filter: AvailabilityFilter | null) {
isLoading,
isError: error
}
}
export function useAPIRoomPrices(filter: FareFilter | null) {
const request: FareRequest | null = filter ? {
filter: filter
} : null;
const { data, isLoading, error } = useSWR(request ? ['/api/search/fares', request] : null, ([url, request]) => fetcherUnwraperWithFilter<RoomPrice[]>(url, request))
return {
roomPriceList: data,
isLoading,
isError: error
}
}