Skip to content

Commit

Permalink
chore: sync on boarding state across windows (#2304)
Browse files Browse the repository at this point in the history
Signed-off-by: James <james@jan.ai>
Co-authored-by: James <james@jan.ai>
  • Loading branch information
namchuai and James committed Mar 11, 2024
1 parent addbfaf commit 2598bf9
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 12 deletions.
2 changes: 2 additions & 0 deletions core/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export enum NativeRoute {

quickAskSizeUpdated = 'quickAskSizeUpdated',
setQuickAskHotKey = 'setQuickAskHotKey',
notifyOnboardingComplete = 'notifyOnboardingComplete',
}

/**
Expand All @@ -43,6 +44,7 @@ export enum AppEvent {

onUserSubmitQuickAsk = 'onUserSubmitQuickAsk',
onSelectedText = 'onSelectedText',
onboardingComplete = 'onboardingComplete',
}

export enum DownloadRoute {
Expand Down
7 changes: 7 additions & 0 deletions electron/handlers/native.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,11 @@ export function handleAppIPCs() {
windowManager.setQuickAskHotKey(hotKey)
}
)

ipcMain.handle(
NativeRoute.notifyOnboardingComplete,
async (): Promise<void> => {
windowManager.notifyQuickAskOnboardingComplete()
}
)
}
4 changes: 4 additions & 0 deletions electron/managers/window.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ class WindowManager {
}
}

notifyQuickAskOnboardingComplete(): void {
this._quickAskWindow?.webContents.send(AppEvent.onboardingComplete)
}

cleanUp(): void {
this.mainWindow?.destroy()
this._quickAskWindow?.destroy()
Expand Down
17 changes: 14 additions & 3 deletions web/containers/OnBoarding/AllSet/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@
import { SubmitHandler, useForm } from 'react-hook-form'

import { Button, Input } from '@janhq/uikit'
import { useAtom, useSetAtom } from 'jotai'
import { useAtom, useAtomValue, useSetAtom } from 'jotai'

import { ArrowLeftIcon, ExternalLinkIcon } from 'lucide-react'
import { AiOutlineGithub } from 'react-icons/ai'
import { BiLogoDiscordAlt, BiLogoLinkedin } from 'react-icons/bi'
import { FaSquareXTwitter } from 'react-icons/fa6'

import { defaultQuickAskHotKey } from '@/utils/config'

import { modalOnboardingAccesibilityAtom, onBoardingStepAtom } from '..'

import { appConfigurationAtom } from '@/helpers/atoms/AppConfig.atom'

type FormMail = {
email: string
}
Expand Down Expand Up @@ -43,12 +47,19 @@ const socials = [
const AllSetOnBoarding = () => {
const [onBoardingStep, setOnBoardingStep] = useAtom(onBoardingStepAtom)
const setAccessibilityCheckbox = useSetAtom(modalOnboardingAccesibilityAtom)
const appConfiguration = useAtomValue(appConfigurationAtom)
const { register, handleSubmit } = useForm<FormMail>()

const onFinish = () => {
window.core?.api?.updateAppConfiguration({
const onFinish = async () => {
const quickAskHotKey =
appConfiguration?.quick_ask_hotkey ?? defaultQuickAskHotKey
await window.core?.api?.setQuickAskHotKey(quickAskHotKey)
await window.core?.api?.updateAppConfiguration({
quick_ask_hotkey: quickAskHotKey,
finish_onboarding: true,
})
await window.core?.api?.notifyOnboardingComplete()

window.core?.api?.relaunch()
}

Expand Down
14 changes: 5 additions & 9 deletions web/containers/OnBoarding/Hotkey/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ import { onBoardingStepAtom, modalOnboardingAccesibilityAtom } from '..'

import ModalAccesibility from './ModalAccesibility'

import { updateAppConfigurationAtom } from '@/helpers/atoms/AppConfig.atom'

const HotkeyOnBoarding = () => {
const [onBoardingStep, setOnBoardingStep] = useAtom(onBoardingStepAtom)
const updateAppConfiguration = useSetAtom(updateAppConfigurationAtom)
const setModalOnboardingAccesibility = useSetAtom(
modalOnboardingAccesibilityAtom
)
Expand Down Expand Up @@ -56,16 +59,9 @@ const HotkeyOnBoarding = () => {

if (isValid && keys.size > 0) {
const keyCombination = convertKeyToAccelerator(Array.from(keys)).join('+')

await window.core?.api?.setQuickAskHotKey(keyCombination)
await window.core?.api?.updateAppConfiguration({
quick_ask_hotkey: keyCombination,
})
updateAppConfiguration({ quick_ask_hotkey: keyCombination })
} else {
await window.core?.api?.setQuickAskHotKey(defaultQuickAskHotKey)
await window.core?.api?.updateAppConfiguration({
quick_ask_hotkey: defaultQuickAskHotKey,
})
updateAppConfiguration({ quick_ask_hotkey: defaultQuickAskHotKey })
}
}

Expand Down
1 change: 1 addition & 0 deletions web/containers/OnBoarding/Welcome/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const WelcomeOnBoarding = () => {
}
await window.core?.api?.setQuickAskHotKey(defaultQuickAskHotKey)
await window.core?.api?.updateAppConfiguration(configuration)
await window.core?.api?.notifyOnboardingComplete()
updateAppConfig(configuration)
}, [updateAppConfig])

Expand Down
7 changes: 7 additions & 0 deletions web/containers/Providers/QuickAskListener.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { showRightSideBarAtom } from '@/screens/Chat/Sidebar'
import { showLeftSideBarAtom } from './KeyListener'

import { mainViewStateAtom } from '@/helpers/atoms/App.atom'
import { updateAppConfigurationAtom } from '@/helpers/atoms/AppConfig.atom'

type Props = {
children: ReactNode
Expand All @@ -21,6 +22,7 @@ const QuickAskListener: React.FC<Props> = ({ children }) => {
const setShowRightSideBar = useSetAtom(showRightSideBarAtom)
const setShowLeftSideBar = useSetAtom(showLeftSideBarAtom)
const setMainState = useSetAtom(mainViewStateAtom)
const updateAppConfig = useSetAtom(updateAppConfigurationAtom)

const previousMessage = useRef('')

Expand All @@ -33,6 +35,11 @@ const QuickAskListener: React.FC<Props> = ({ children }) => {
previousMessage.current = input
})

window.electronAPI.onboardingComplete(() => {
console.debug('Onboarding complete')
updateAppConfig({ finish_onboarding: true })
})

return <Fragment>{children}</Fragment>
}

Expand Down

0 comments on commit 2598bf9

Please sign in to comment.