mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-10 03:24:24 +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
|
|
@ -106,10 +106,13 @@ const conversationByIndex = atomFamily<TConversation | null, string | number>({
|
|||
JSON.stringify(newValue),
|
||||
);
|
||||
|
||||
const disableParams = newValue.disableParams === true;
|
||||
const shouldUpdateParams =
|
||||
index === 0 &&
|
||||
!disableParams &&
|
||||
newValue.createdAt === '' &&
|
||||
JSON.stringify(newValue) !== JSON.stringify(oldValue) &&
|
||||
(oldValue as TConversation)?.conversationId === 'new';
|
||||
(oldValue as TConversation)?.conversationId === Constants.NEW_CONVO;
|
||||
|
||||
if (shouldUpdateParams) {
|
||||
const newParams = createChatSearchParams(newValue);
|
||||
|
|
@ -299,10 +302,10 @@ const conversationByKeySelector = selectorFamily({
|
|||
key: 'conversationByKeySelector',
|
||||
get:
|
||||
(index: string | number) =>
|
||||
({ get }) => {
|
||||
const conversation = get(conversationByIndex(index));
|
||||
return conversation;
|
||||
},
|
||||
({ get }) => {
|
||||
const conversation = get(conversationByIndex(index));
|
||||
return conversation;
|
||||
},
|
||||
});
|
||||
|
||||
function useClearSubmissionState() {
|
||||
|
|
@ -361,24 +364,24 @@ const updateConversationSelector = selectorFamily({
|
|||
get: () => () => null as Partial<TConversation> | null,
|
||||
set:
|
||||
(conversationId: string) =>
|
||||
({ set, get }, newPartialConversation) => {
|
||||
if (newPartialConversation instanceof DefaultValue) {
|
||||
return;
|
||||
}
|
||||
({ set, get }, newPartialConversation) => {
|
||||
if (newPartialConversation instanceof DefaultValue) {
|
||||
return;
|
||||
}
|
||||
|
||||
const keys = get(conversationKeysAtom);
|
||||
keys.forEach((key) => {
|
||||
set(conversationByIndex(key), (prevConversation) => {
|
||||
if (prevConversation && prevConversation.conversationId === conversationId) {
|
||||
return {
|
||||
...prevConversation,
|
||||
...newPartialConversation,
|
||||
};
|
||||
}
|
||||
return prevConversation;
|
||||
});
|
||||
const keys = get(conversationKeysAtom);
|
||||
keys.forEach((key) => {
|
||||
set(conversationByIndex(key), (prevConversation) => {
|
||||
if (prevConversation && prevConversation.conversationId === conversationId) {
|
||||
return {
|
||||
...prevConversation,
|
||||
...newPartialConversation,
|
||||
};
|
||||
}
|
||||
return prevConversation;
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
export default {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue