import type { SelectProps } from 'antd'; import type { NeutralColor, PrimaryColor } from '@/components/Setting/data'; import { DEFAULT_LOCALE_OPTIONS, DEFAULT_VERSION } from '@/store/api'; import type { I18n } from '@/types'; export interface WebuiSetting { enableExtraNetworkSidebar: boolean; enableHighlight: boolean; enableSidebar: boolean; enableWebFont: boolean; extraNetworkCardSize: number; extraNetworkFixedMode: 'fixed' | 'float'; extraNetworkSidebarExpand: boolean; extraNetworkSidebarWidth: number; i18n: I18n; layoutHideFooter: boolean; layoutSplitPreview: boolean; liteAnimation: boolean; logoCustomTitle: string | undefined; logoCustomUrl: string | undefined; logoType: 'lobe' | 'kitchen' | 'custom'; neutralColor: NeutralColor | undefined; primaryColor: PrimaryColor | undefined; promptEditor: boolean; promptTextareaType: 'scroll' | 'resizable'; sidebarExpand: boolean; sidebarFixedMode: 'fixed' | 'float'; sidebarWidth: number; svgIcon: boolean; } export type WebuiSettingKeys = keyof WebuiSetting; export const DEFAULT_SETTING: WebuiSetting = { enableExtraNetworkSidebar: true, enableHighlight: false, enableSidebar: true, enableWebFont: true, extraNetworkCardSize: 86, extraNetworkFixedMode: 'fixed', extraNetworkSidebarExpand: true, extraNetworkSidebarWidth: 340, i18n: 'en_US', layoutHideFooter: false, layoutSplitPreview: false, liteAnimation: false, logoCustomTitle: '', logoCustomUrl: '', logoType: 'lobe', neutralColor: undefined, primaryColor: undefined, promptEditor: false, promptTextareaType: 'resizable', sidebarExpand: true, sidebarFixedMode: 'fixed', sidebarWidth: 280, svgIcon: true, }; export interface StroeState { currentTab: string; latestVersion: string; loading: boolean; localeOptions: SelectProps['options']; setting: WebuiSetting; themeMode: 'light' | 'dark'; version: string; } export const initialState: StroeState = { currentTab: 'tab_txt2img', latestVersion: DEFAULT_VERSION, loading: true, localeOptions: DEFAULT_LOCALE_OPTIONS, setting: DEFAULT_SETTING, themeMode: 'dark', version: DEFAULT_VERSION, };