feat: SW-276 Optimized code removed vanilla implmentation
This commit is contained in:
@@ -3,8 +3,6 @@
|
||||
import { produce } from "immer"
|
||||
import { create } from "zustand"
|
||||
|
||||
import { createSelectors } from "./utils"
|
||||
|
||||
import { BedTypeEnum } from "@/types/components/bookingWidget/enums"
|
||||
import { Child } from "@/types/components/bookingWidget/guestsRoomsPicker"
|
||||
|
||||
@@ -32,7 +30,7 @@ interface GuestsRooms {
|
||||
setIsValidated: (isValidated: boolean) => void
|
||||
}
|
||||
|
||||
export const useGuestsRoomsStoreBase = create<GuestsRooms>((set, get) => ({
|
||||
export const useGuestsRoomsStore = create<GuestsRooms>((set, get) => ({
|
||||
rooms: [
|
||||
{
|
||||
adults: 1,
|
||||
@@ -144,5 +142,3 @@ export const useGuestsRoomsStoreBase = create<GuestsRooms>((set, get) => ({
|
||||
),
|
||||
setIsValidated: (isValidated) => set(() => ({ isValidated })),
|
||||
}))
|
||||
|
||||
export const useGuestsRoomsStore = createSelectors(useGuestsRoomsStoreBase)
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import { StoreApi, UseBoundStore } from "zustand"
|
||||
|
||||
type WithSelectors<S> = S extends { getState: () => infer T }
|
||||
? S & { use: { [K in keyof T]: () => T[K] } }
|
||||
: never
|
||||
|
||||
export const createSelectors = <S extends UseBoundStore<StoreApi<object>>>(
|
||||
_store: S
|
||||
) => {
|
||||
let store = _store as WithSelectors<typeof _store>
|
||||
store.use = {}
|
||||
for (let k of Object.keys(store.getState())) {
|
||||
;(store.use as any)[k] = () => store((s) => s[k as keyof typeof s])
|
||||
}
|
||||
|
||||
return store
|
||||
}
|
||||
Reference in New Issue
Block a user