| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import { LOCAL_STORAGE_KEYS as COMMON_LOCAL_STORAGE_KEYS } from 'common'
- import { proxy, snapshot, useSnapshot } from 'valtio'
- const getInitialState = () => {
- return {
- activeDocsSection: ['introduction'],
- docsLanguage: 'js',
- showProjectApiDocs: false,
- showCreateBranchModal: false,
- showAiSettingsModal: false,
- ongoingQueriesPanelOpen: false,
- mobileMenuOpen: false,
- showSidebar: true,
- showEditorPanel: false,
- lastRouteBeforeVisitingAccountPage: '',
- }
- }
- export const appState = proxy({
- ...getInitialState(),
- activeDocsSection: ['introduction'],
- docsLanguage: 'js' as 'js' | 'bash',
- showProjectApiDocs: false,
- setShowProjectApiDocs: (value: boolean) => {
- appState.showProjectApiDocs = value
- },
- setActiveDocsSection: (value: string[]) => {
- appState.activeDocsSection = value
- },
- setDocsLanguage: (value: 'js' | 'bash') => {
- appState.docsLanguage = value
- },
- isOptedInTelemetry: false,
- setIsOptedInTelemetry: (value: boolean | null) => {
- appState.isOptedInTelemetry = value === null ? false : value
- if (typeof window !== 'undefined' && value !== null) {
- localStorage.setItem(COMMON_LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT, value.toString())
- }
- },
- isMfaEnforced: false,
- setIsMfaEnforced: (value: boolean) => {
- appState.isMfaEnforced = value
- },
- showCreateBranchModal: false,
- setShowCreateBranchModal: (value: boolean) => {
- appState.showCreateBranchModal = value
- },
- showAiSettingsModal: false,
- setShowAiSettingsModal: (value: boolean) => {
- appState.showAiSettingsModal = value
- },
- showSidebar: true,
- setShowSidebar: (value: boolean) => {
- appState.showSidebar = value
- },
- showOngoingQueriesPanelOpen: false,
- setOnGoingQueriesPanelOpen: (value: boolean) => {
- appState.ongoingQueriesPanelOpen = value
- },
- mobileMenuOpen: false,
- setMobileMenuOpen: (value: boolean) => {
- appState.mobileMenuOpen = value
- },
- connectSheetSource: 'header_button' as 'header_button' | 'connect_section',
- setConnectSheetSource: (value: 'header_button' | 'connect_section') => {
- appState.connectSheetSource = value
- },
- lastRouteBeforeVisitingAccountPage: '',
- setLastRouteBeforeVisitingAccountPage: (value: string) => {
- appState.lastRouteBeforeVisitingAccountPage = value
- },
- })
- export const getAppStateSnapshot = () => snapshot(appState)
- export const useAppStateSnapshot = (options?: Parameters<typeof useSnapshot>[1]) =>
- useSnapshot(appState, options)
|