| import { atom } from 'recoil'; |
| import { SettingsViews, LocalStorageKeys } from 'librechat-data-provider'; |
| import { atomWithLocalStorage } from '~/store/utils'; |
| import type { TOptionSettings } from '~/common'; |
|
|
| |
| const staticAtoms = { |
| abortScroll: atom<boolean>({ key: 'abortScroll', default: false }), |
| showFiles: atom<boolean>({ key: 'showFiles', default: false }), |
| optionSettings: atom<TOptionSettings>({ key: 'optionSettings', default: {} }), |
| showPluginStoreDialog: atom<boolean>({ key: 'showPluginStoreDialog', default: false }), |
| showAgentSettings: atom<boolean>({ key: 'showAgentSettings', default: false }), |
| currentSettingsView: atom<SettingsViews>({ |
| key: 'currentSettingsView', |
| default: SettingsViews.default, |
| }), |
| showPopover: atom<boolean>({ key: 'showPopover', default: false }), |
| }; |
|
|
| const localStorageAtoms = { |
| |
| autoScroll: atomWithLocalStorage('autoScroll', false), |
| hideSidePanel: atomWithLocalStorage('hideSidePanel', false), |
| enableUserMsgMarkdown: atomWithLocalStorage<boolean>( |
| LocalStorageKeys.ENABLE_USER_MSG_MARKDOWN, |
| true, |
| ), |
| keepScreenAwake: atomWithLocalStorage('keepScreenAwake', true), |
|
|
| |
| enterToSend: atomWithLocalStorage('enterToSend', true), |
| maximizeChatSpace: atomWithLocalStorage('maximizeChatSpace', false), |
| chatDirection: atomWithLocalStorage('chatDirection', 'LTR'), |
| showCode: atomWithLocalStorage(LocalStorageKeys.SHOW_ANALYSIS_CODE, true), |
| saveDrafts: atomWithLocalStorage('saveDrafts', true), |
| showScrollButton: atomWithLocalStorage('showScrollButton', true), |
| forkSetting: atomWithLocalStorage('forkSetting', ''), |
| splitAtTarget: atomWithLocalStorage('splitAtTarget', false), |
| rememberDefaultFork: atomWithLocalStorage(LocalStorageKeys.REMEMBER_FORK_OPTION, false), |
| showThinking: atomWithLocalStorage('showThinking', false), |
| saveBadgesState: atomWithLocalStorage('saveBadgesState', false), |
|
|
| |
| modularChat: atomWithLocalStorage('modularChat', true), |
| LaTeXParsing: atomWithLocalStorage('LaTeXParsing', true), |
| centerFormOnLanding: atomWithLocalStorage('centerFormOnLanding', true), |
| showFooter: atomWithLocalStorage('showFooter', true), |
|
|
| |
| atCommand: atomWithLocalStorage('atCommand', true), |
| plusCommand: atomWithLocalStorage('plusCommand', true), |
| slashCommand: atomWithLocalStorage('slashCommand', true), |
|
|
| |
| conversationMode: atomWithLocalStorage('conversationMode', false), |
| advancedMode: atomWithLocalStorage('advancedMode', false), |
|
|
| speechToText: atomWithLocalStorage('speechToText', true), |
| engineSTT: atomWithLocalStorage('engineSTT', 'browser'), |
| languageSTT: atomWithLocalStorage('languageSTT', ''), |
| autoTranscribeAudio: atomWithLocalStorage('autoTranscribeAudio', false), |
| decibelValue: atomWithLocalStorage('decibelValue', -45), |
| autoSendText: atomWithLocalStorage('autoSendText', -1), |
|
|
| textToSpeech: atomWithLocalStorage('textToSpeech', true), |
| engineTTS: atomWithLocalStorage('engineTTS', 'browser'), |
| voice: atomWithLocalStorage<string | undefined>('voice', undefined), |
| cloudBrowserVoices: atomWithLocalStorage('cloudBrowserVoices', false), |
| languageTTS: atomWithLocalStorage('languageTTS', ''), |
| automaticPlayback: atomWithLocalStorage('automaticPlayback', false), |
| playbackRate: atomWithLocalStorage<number | null>('playbackRate', null), |
| cacheTTS: atomWithLocalStorage('cacheTTS', true), |
|
|
| |
| UsernameDisplay: atomWithLocalStorage('UsernameDisplay', true), |
| }; |
|
|
| export default { ...staticAtoms, ...localStorageAtoms }; |
|
|