feat(EditChannelModal): persist advanced settings state in local storage
Some checks failed
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
Build Electron App / build (windows-latest) (push) Has been cancelled
Build Electron App / release (push) Has been cancelled
Release (Linux, macOS, Windows) / Linux Release (push) Has been cancelled
Release (Linux, macOS, Windows) / macOS Release (push) Has been cancelled
Release (Linux, macOS, Windows) / Windows Release (push) Has been cancelled

Added functionality to save and restore the state of advanced settings in the EditChannelModal using local storage. This enhancement allows users to maintain their preferences when editing channels, improving the overall user experience.
This commit is contained in:
CaIon 2026-04-02 00:13:51 +08:00
parent 7efb1922fe
commit a706f00287

View File

@ -103,6 +103,7 @@ const REGION_EXAMPLE = {
'claude-3-5-sonnet-20240620': 'europe-west1',
};
const UPSTREAM_DETECTED_MODEL_PREVIEW_LIMIT = 8;
const ADVANCED_SETTINGS_EXPANDED_KEY = 'channel-advanced-settings-expanded';
const PARAM_OVERRIDE_LEGACY_TEMPLATE = {
temperature: 0,
@ -404,6 +405,10 @@ const EditChannelModal = (props) => {
//
const [advancedSettingsOpen, setAdvancedSettingsOpen] = useState(false);
const toggleAdvancedSettings = (open) => {
setAdvancedSettingsOpen(open);
localStorage.setItem(ADVANCED_SETTINGS_EXPANDED_KEY, String(open));
};
const formContainerRef = useRef(null);
const doubaoApiClickCountRef = useRef(0);
const initialBaseUrlRef = useRef('');
@ -1318,8 +1323,10 @@ const EditChannelModal = (props) => {
fetchModelGroups();
//
setUseManualInput(false);
//
setAdvancedSettingsOpen(false);
//
setAdvancedSettingsOpen(
isEdit && localStorage.getItem(ADVANCED_SETTINGS_EXPANDED_KEY) === 'true'
);
} else {
//
resetModalState();
@ -3636,7 +3643,7 @@ const EditChannelModal = (props) => {
{isMobile ? (
<Collapse
activeKey={advancedSettingsOpen ? ['advanced'] : []}
onChange={(keys) => setAdvancedSettingsOpen(keys.includes('advanced'))}
onChange={(keys) => toggleAdvancedSettings(keys.includes('advanced'))}
>
<Collapse.Panel
header={
@ -3658,7 +3665,7 @@ const EditChannelModal = (props) => {
backgroundColor: advancedSettingsOpen ? 'var(--semi-color-primary-light-default)' : 'var(--semi-color-fill-0)',
border: '1px solid var(--semi-color-fill-2)',
}}
onClick={() => setAdvancedSettingsOpen(!advancedSettingsOpen)}
onClick={() => toggleAdvancedSettings(!advancedSettingsOpen)}
>
<div className='flex items-center gap-2'>
<IconSetting size={16} />