import { useSDKModel } from './use-models'; import { ApiKeys, UserData } from '../types'; import { useAsync, UseAsyncResult } from './use-async'; import { SessionModel } from '../models'; export type UseSessionModelType = { model: SessionModel; renew: () => UseAsyncResult; del: () => UseAsyncResult; }; export const useSessions = (): UseSessionModelType => { const model = (useSDKModel(ApiKeys.SESSIONS)); return { model, renew: useRenew(model), del: useDel(model), }; }; export const useRenew = (model: SessionModel) => (): UseAsyncResult< UserData > => { return useAsync(model.renew.bind(model)); }; export const useDel = (model: SessionModel) => (): UseAsyncResult => { return useAsync(model.del.bind(model)); };