'use client'; import { State, hookstate, useHookstate } from '@hookstate/core'; const useState = (s: State) => { const state = useHookstate(s); const get = state.value; const set = (v: typeof state.value) => state.set(v); return [get, set] as const; }; interface ParamsLoad { searchParams?: Record token?: string body?: Record } const funLoad = async (url: string, params?: ParamsLoad, set?: any, method?: string) => { const property: Record = {} if(params) { if(params.searchParams) { property.searchParams = "?"+new URLSearchParams(params.searchParams).toString(); } if(params.body) { property.body = JSON.stringify(params.body); } if(params.token) { property.headers.Authorization = `Bearer ${params.token}`; } } property.method = method; const res = await fetch(url, property ); const json = await res.json().then((json) => json).catch(() => null); if(json && set) set(json); return { res, json }; } const testDevisionListGroup = hookstate(undefined); export const ProviderTestDevisionListGroup = ({data}: {data: any}) => { if(data && testDevisionListGroup.value === undefined) { testDevisionListGroup.set(data) } return null } export const useTestDevisionListGroup = () => { const [get, set] = useState(useHookstate(testDevisionListGroup)) const load = (params?: ParamsLoad) => funLoad(`/api/test-devision/list-group/`,params, set, "GET") const value: T = get return [value, set, load] as const }; const testDevisionListDivision = hookstate(undefined); export const ProviderTestDevisionListDivision = ({data}: {data: any}) => { if(data && testDevisionListDivision.value === undefined) { testDevisionListDivision.set(data) } return null } export const useTestDevisionListDivision = () => { const [get, set] = useState(useHookstate(testDevisionListDivision)) const load = (params?: ParamsLoad) => funLoad(`/api/test-devision/list-division/`,params, set, "GET") const value: T = get return [value, set, load] as const }; const testDevisionListAnggota = hookstate(undefined); export const ProviderTestDevisionListAnggota = ({data}: {data: any}) => { if(data && testDevisionListAnggota.value === undefined) { testDevisionListAnggota.set(data) } return null } export const useTestDevisionListAnggota = () => { const [get, set] = useState(useHookstate(testDevisionListAnggota)) const load = (params?: ParamsLoad) => funLoad(`/api/test-devision/list-anggota/`,params, set, "GET") const value: T = get return [value, set, load] as const }; const testDevisionCountDevision = hookstate(undefined); export const ProviderTestDevisionCountDevision = ({data}: {data: any}) => { if(data && testDevisionCountDevision.value === undefined) { testDevisionCountDevision.set(data) } return null } export const useTestDevisionCountDevision = () => { const [get, set] = useState(useHookstate(testDevisionCountDevision)) const load = (params?: ParamsLoad) => funLoad(`/api/test-devision/count-devision/`,params, set, "GET") const value: T = get return [value, set, load] as const };