diff --git a/app/containers/DeskreenStepper.tsx b/app/containers/DeskreenStepper.tsx index 7b6e652..679f04c 100644 --- a/app/containers/DeskreenStepper.tsx +++ b/app/containers/DeskreenStepper.tsx @@ -112,25 +112,27 @@ const DeskreenStepper = React.forwardRef((_props, ref) => { }, []); useEffect(() => { - const isFirstTimeStart = true; - // const isFirstTimeStart = !settings.hasSync('isNotFirstTimeAppStart'); - setIsSelectLanguageDialogOpen(isFirstTimeStart); - - if (!isFirstTimeStart) return () => {}; - - const helloWords = getShuffledArrayOfHello(); - - let pos = 0; - const helloInterval = setInterval(() => { - setIsDisplayHelloWord(false); - if (pos + 1 === helloWords.length) { - pos = 0; - } else { - pos += 1; - } - setHelloWord(helloWords[pos]); - setIsDisplayHelloWord(true); - }, 4000); + let helloInterval: NodeJS.Timeout; + async function stepperOpenedCallback() { + const isFirstTimeStart = await ipcRenderer.invoke( + IpcEvents.GetIsFirstTimeAppStart + ); + setIsSelectLanguageDialogOpen(isFirstTimeStart); + if (!isFirstTimeStart) return; + const helloWords = getShuffledArrayOfHello(); + let pos = 0; + helloInterval = setInterval(() => { + setIsDisplayHelloWord(false); + if (pos + 1 === helloWords.length) { + pos = 0; + } else { + pos += 1; + } + setHelloWord(helloWords[pos]); + setIsDisplayHelloWord(true); + }, 4000); + } + stepperOpenedCallback(); return () => { clearInterval(helloInterval); @@ -376,7 +378,7 @@ const DeskreenStepper = React.forwardRef((_props, ref) => { rightIcon="chevron-right" onClick={() => { setIsSelectLanguageDialogOpen(false); - // settings.setSync('isNotFirstTimeAppStart', true); + ipcRenderer.invoke(IpcEvents.SetAppStartedOnce); }} style={{ borderRadius: '50px' }} > diff --git a/app/enums/ElectronStoreKeys.enum.ts b/app/enums/ElectronStoreKeys.enum.ts index ee58cfb..9bd5441 100644 --- a/app/enums/ElectronStoreKeys.enum.ts +++ b/app/enums/ElectronStoreKeys.enum.ts @@ -1,4 +1,5 @@ // eslint-disable-next-line import/prefer-default-export export enum ElectronStoreKeys { AppLanguage = 'appLanguage', + IsNotFirstTimeAppStart = 'isNotFirstTimeAppStart', } diff --git a/app/main/IpcEvents.enum.ts b/app/main/IpcEvents.enum.ts index ff0ba64..9bb38d5 100644 --- a/app/main/IpcEvents.enum.ts +++ b/app/main/IpcEvents.enum.ts @@ -22,4 +22,6 @@ export enum IpcEvents { SetDesktopCapturerSourceId = 'set-desktop-capturer-source-id', NotifyAllSessionsWithAppThemeChanged = 'notify-all-sessions-with-app-theme-changed', GetAppLanguage = 'get-app-language', + GetIsFirstTimeAppStart = 'get-is-not-first-time-app-start', + SetAppStartedOnce = 'set-app-started-once', } diff --git a/app/main/ipcMainHandlers.ts b/app/main/ipcMainHandlers.ts index d1349ed..fee2657 100644 --- a/app/main/ipcMainHandlers.ts +++ b/app/main/ipcMainHandlers.ts @@ -279,4 +279,18 @@ export default function initIpcMainHandlers( } ); }); + + ipcMain.handle(IpcEvents.GetIsFirstTimeAppStart, () => { + if (store.has(ElectronStoreKeys.IsNotFirstTimeAppStart)) { + return false; + } + return true; + }); + + ipcMain.handle(IpcEvents.SetAppStartedOnce, () => { + if (store.has(ElectronStoreKeys.IsNotFirstTimeAppStart)) { + store.delete(ElectronStoreKeys.IsNotFirstTimeAppStart); + } + store.set(ElectronStoreKeys.IsNotFirstTimeAppStart, true); + }); }