Skip to content

Commit

Permalink
♻️ refactor: refactor settingsSelectors to globalSelectors
Browse files Browse the repository at this point in the history
  • Loading branch information
arvinxx committed Sep 8, 2023
1 parent 614ec4b commit 38917e8
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 20 deletions.
4 changes: 2 additions & 2 deletions src/helpers/export.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { settingsSelectors, useGlobalStore } from '@/store/global';
import { globalSelectors, useGlobalStore } from '@/store/global';
import { useSessionStore } from '@/store/session';
import { sessionSelectors } from '@/store/session/selectors';
import { createConfigFile, exportConfigFile } from '@/utils/config';

const getSessions = () => sessionSelectors.exportSessions(useSessionStore.getState());
const getSession = (id: string) => sessionSelectors.getSessionById(id)(useSessionStore.getState());

const getSettings = () => settingsSelectors.exportSettings(useGlobalStore.getState());
const getSettings = () => globalSelectors.exportSettings(useGlobalStore.getState());

// ============= 导出所有角色 ============= //

Expand Down
4 changes: 2 additions & 2 deletions src/pages/chat/features/SessionList/List/Item/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { memo, useMemo, useRef, useState } from 'react';
import { Flexbox } from 'react-layout-kit';
import { shallow } from 'zustand/shallow';

import { settingsSelectors, useGlobalStore } from '@/store/global';
import { globalSelectors, useGlobalStore } from '@/store/global';
import { useSessionStore } from '@/store/session';
import { agentSelectors, sessionSelectors } from '@/store/session/selectors';

Expand Down Expand Up @@ -36,7 +36,7 @@ const SessionItem = memo<SessionItemProps>(({ id }) => {
const isHovering = useHover(ref);

const { styles } = useStyles();
const [defaultModel] = useGlobalStore((s) => [settingsSelectors.currentAgentConfig(s).model]);
const [defaultModel] = useGlobalStore((s) => [globalSelectors.defaultAgentConfig(s).model]);

const [
active,
Expand Down
6 changes: 3 additions & 3 deletions src/pages/settings/Settings/Agent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import isEqual from 'fast-deep-equal';
import { memo } from 'react';

import AgentSetting from '@/features/AgentSetting';
import { settingsSelectors, useGlobalStore } from '@/store/global';
import { globalSelectors, useGlobalStore } from '@/store/global';

const Agent = memo(() => {
const config = useGlobalStore(settingsSelectors.currentAgentConfig, isEqual);
const meta = useGlobalStore(settingsSelectors.currentAgentMeta, isEqual);
const config = useGlobalStore(globalSelectors.defaultAgentConfig, isEqual);
const meta = useGlobalStore(globalSelectors.defaultAgentMeta, isEqual);
const [updateAgent] = useGlobalStore((s) => [s.updateDefaultAgent]);

return (
Expand Down
4 changes: 2 additions & 2 deletions src/pages/settings/Settings/Common.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { FORM_STYLE } from '@/const/layoutTokens';
import { DEFAULT_SETTINGS } from '@/const/settings';
import AvatarWithUpload from '@/features/AvatarWithUpload';
import { options } from '@/locales/options';
import { settingsSelectors, useGlobalStore } from '@/store/global';
import { globalSelectors, useGlobalStore } from '@/store/global';
import { useSessionStore } from '@/store/session';
import { ConfigKeys } from '@/types/settings';

Expand All @@ -29,7 +29,7 @@ const Common = memo(() => {
const [form] = AntForm.useForm();
const clearSessions = useSessionStore((s) => s.clearSessions);

const settings = useGlobalStore(settingsSelectors.currentSettings, isEqual);
const settings = useGlobalStore(globalSelectors.currentSettings, isEqual);
const [setThemeMode, setSettings, resetSettings] = useGlobalStore((s) => [
s.switchThemeMode,
s.setSettings,
Expand Down
20 changes: 9 additions & 11 deletions src/store/global/selectors.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
import { merge } from 'lodash-es';

import { DEFAULT_AGENT_META } from '@/const/meta';
import { DEFAULT_AGENT, DEFAULT_AGENT_CONFIG, DEFAULT_SETTINGS } from '@/const/settings';
import { GlobalSettings } from '@/types/settings';
import { merge } from '@/utils/merge';

import { GlobalStore } from './store';

const currentSettings = (s: GlobalStore) => merge({}, DEFAULT_SETTINGS, s.settings);

const currentDefaultAgent = (s: GlobalStore) => merge({}, DEFAULT_AGENT, s.settings.defaultAgent);
const defaultAgent = (s: GlobalStore) => merge({}, DEFAULT_AGENT, s.settings.defaultAgent);

const currentAgentConfig = (s: GlobalStore) =>
merge({}, DEFAULT_AGENT_CONFIG, currentDefaultAgent(s).config);
const defaultAgentConfig = (s: GlobalStore) =>
merge({}, DEFAULT_AGENT_CONFIG, defaultAgent(s).config);

const currentAgentMeta = (s: GlobalStore) =>
merge({}, DEFAULT_AGENT_META, currentDefaultAgent(s).meta);
const defaultAgentMeta = (s: GlobalStore) => merge({}, DEFAULT_AGENT_META, defaultAgent(s).meta);

export const exportSettings = (s: GlobalStore) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
Expand All @@ -23,10 +21,10 @@ export const exportSettings = (s: GlobalStore) => {
return settings as GlobalSettings;
};

export const settingsSelectors = {
currentAgentConfig,
currentAgentMeta,
currentDefaultAgent,
export const globalSelectors = {
currentSettings,
defaultAgent,
defaultAgentConfig,
defaultAgentMeta,
exportSettings,
};

0 comments on commit 38917e8

Please sign in to comment.