denwa-react-shared
Version:
39 lines (38 loc) • 1.15 kB
TypeScript
import { UseNavigateResult } from '@tanstack/react-router';
import { Session } from '../../../shared/types';
export type SessionStore = {
isLoading: boolean;
isFirstLoadCompleted: boolean;
currentSession: Session | undefined;
loadSession: ({ domain, ROLE_PRIORITY, navigate, refresh, }: LoadSession) => Promise<Session | undefined>;
setCurrentSession: ({ domain, session, isRemember, isNotSecure }: SetCurrentSession) => void;
removeSession: ({ domain, navigate }: RemoveSession) => void;
};
interface LoadSession {
domain: string;
ROLE_PRIORITY: Record<string, number>;
isNotSecure?: boolean;
navigate: UseNavigateResult<string>;
refresh: SessionRefreshType;
}
interface LoadSessionData extends Session {
cities?: string[];
isAllCities?: boolean;
}
export type SessionRefreshType = () => Promise<{
status?: number;
data: {
data?: LoadSessionData;
};
}>;
interface SetCurrentSession {
domain: string;
session: Session;
isRemember: boolean;
isNotSecure?: boolean;
}
interface RemoveSession {
domain: string;
navigate: UseNavigateResult<string>;
}
export {};