mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-28 21:26:13 +01:00
🛡️ fix: Preset and Validation Logic for URL Query Params (#7407)
* chore(store/families): linting * refactor: Update `createChatSearchParams` to use `tQueryParamsSchema` for allowed parameters and add `modelLabel` to schema * refactor: Enhance `useQueryParams` to streamline parameter processing and improve submission handling * chore: linting * fix: Add `disableParams` option to conversation handling and related schemas to prevent search params from updating due to use of default preset * fix: Update `createChatSearchParams` to correctly ignore `agent_id` when it matches `EPHEMERAL_AGENT_ID` * chore: revert modelLabel addition to query params, as no longer necessary due to `disableParams` * fix: Refine logic for `disableParams` to ensure correct handling of active preset comparison * fix: Add `disableParams` option to `NewConversationParams` and update related hooks for preset handling * fix: Refactor validation logic in `validateSettingDefinitions` to improve handling of `includeInput` and update conversation schema * fix: Bump version of `librechat-data-provider` to 0.7.83
This commit is contained in:
parent
7a91f6ca62
commit
2f4a03b581
13 changed files with 126 additions and 112 deletions
|
|
@ -58,10 +58,11 @@ export default function usePresets() {
|
|||
}
|
||||
setDefaultPreset(defaultPreset);
|
||||
if (!conversation?.conversationId || conversation.conversationId === 'new') {
|
||||
newConversation({ preset: defaultPreset, modelsData });
|
||||
newConversation({ preset: defaultPreset, modelsData, disableParams: true });
|
||||
}
|
||||
hasLoaded.current = true;
|
||||
// dependencies are stable and only needed once
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [presetsQuery.data, user, modelsData]);
|
||||
|
||||
const setPresets = useCallback(
|
||||
|
|
@ -102,7 +103,7 @@ export default function usePresets() {
|
|||
if (data.defaultPreset && data.presetId !== _defaultPreset?.presetId) {
|
||||
message = `${toastTitle} ${localize('com_endpoint_preset_default')}`;
|
||||
setDefaultPreset(data);
|
||||
newConversation({ preset: data });
|
||||
newConversation({ preset: data, disableParams: true });
|
||||
} else if (preset.defaultPreset === false) {
|
||||
setDefaultPreset(null);
|
||||
message = `${toastTitle} ${localize('com_endpoint_preset_default_removed')}`;
|
||||
|
|
@ -185,6 +186,7 @@ export default function usePresets() {
|
|||
newPreset.iconURL = newPreset.iconURL ?? null;
|
||||
newPreset.modelLabel = newPreset.modelLabel ?? null;
|
||||
const isModular = isCurrentModular && isNewModular && shouldSwitch;
|
||||
const disableParams = newPreset.defaultPreset === true;
|
||||
if (isExistingConversation && isModular) {
|
||||
const currentConvo = getDefaultConversation({
|
||||
/* target endpointType is necessary to avoid endpoint mixing */
|
||||
|
|
@ -205,11 +207,12 @@ export default function usePresets() {
|
|||
preset: currentConvo,
|
||||
keepLatestMessage: true,
|
||||
keepAddedConvos: true,
|
||||
disableParams,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
newConversation({ preset: newPreset, keepAddedConvos: isModular });
|
||||
newConversation({ preset: newPreset, keepAddedConvos: isModular, disableParams });
|
||||
};
|
||||
|
||||
const onChangePreset = (preset: TPreset) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue