diff --git a/frontend/libs/components/login-modal/src/lib/login-modal.tsx b/frontend/libs/components/login-modal/src/lib/login-modal.tsx index 0d7fbbadae..c071dd7cf2 100644 --- a/frontend/libs/components/login-modal/src/lib/login-modal.tsx +++ b/frontend/libs/components/login-modal/src/lib/login-modal.tsx @@ -8,6 +8,7 @@ import { } from "@fortawesome/pro-solid-svg-icons"; import { faDiscord } from "@fortawesome/free-brands-svg-icons"; import { IsDesktopApp } from "@storyteller/tauri-utils"; +import { CheckSoraSession, SoraSessionState } from "@storyteller/tauri-api"; import { invoke } from "@tauri-apps/api/core"; interface LoginModalProps { @@ -29,15 +30,11 @@ export function LoginModal({ const [isOpen, setIsOpen] = useState(false); const totalSteps = 3; - const checkSession = async () => { - // Return the current session state - return hasSession; - }; - // Check session on component mount useEffect(() => { const initSession = async () => { - const sessionExists = await checkSession(); + const result = await CheckSoraSession(); + const sessionExists = result.state === SoraSessionState.Valid; if (!sessionExists) { setIsOpen(true); setStep(1); @@ -61,7 +58,8 @@ export function LoginModal({ // Add 3 second delay before setting session to true await new Promise((resolve) => setTimeout(resolve, 3000)); setHasSession(true); - const sessionExists = await checkSession(); + const result = await CheckSoraSession(); + const sessionExists = result.state === SoraSessionState.Valid; if (sessionExists) { setStep(step + 1); } @@ -169,9 +167,9 @@ export function LoginModal({ alt="OpenAI Logo" className="w-72 h-72 mx-auto grow" /> -
+ {/*
-
+
*/} ); case 3: diff --git a/frontend/libs/tauri-api/src/index.ts b/frontend/libs/tauri-api/src/index.ts index a858878488..1f690c6e9e 100644 --- a/frontend/libs/tauri-api/src/index.ts +++ b/frontend/libs/tauri-api/src/index.ts @@ -1,2 +1,3 @@ export * from './lib/settings/GetAppPreferences.js'; +export * from './lib/sora/CheckSoraSession.js'; diff --git a/frontend/libs/tauri-api/src/lib/sora/CheckSoraSession.ts b/frontend/libs/tauri-api/src/lib/sora/CheckSoraSession.ts new file mode 100644 index 0000000000..8d9b5831d8 --- /dev/null +++ b/frontend/libs/tauri-api/src/lib/sora/CheckSoraSession.ts @@ -0,0 +1,18 @@ +import { invoke } from "@tauri-apps/api/core"; + +export interface CheckSoraSessionResult { + state: SoraSessionState, + maybe_account_email?: string, +} + +export enum SoraSessionState { + NotSetUp = "not_set_up", + ExpiredOrError = "expired_or_error", + Valid = "valid", +} + +export const CheckSoraSession = async () : Promise => { + let result = await invoke("check_sora_session_command"); + console.log(">>> sora result", result); + return (result as CheckSoraSessionResult); +}