mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
⌛ feat: Add Default Temporary Chat User Setting (#10731)
This commit is contained in:
parent
6b5847d6b7
commit
65cb5d18da
4 changed files with 18 additions and 4 deletions
|
|
@ -77,6 +77,13 @@ const toggleSwitchConfigs = [
|
||||||
hoverCardText: undefined,
|
hoverCardText: undefined,
|
||||||
key: 'modularChat',
|
key: 'modularChat',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
stateAtom: store.defaultTemporaryChat,
|
||||||
|
localizationKey: 'com_nav_default_temporary_chat',
|
||||||
|
switchId: 'defaultTemporaryChat',
|
||||||
|
hoverCardText: 'com_nav_info_default_temporary_chat',
|
||||||
|
key: 'defaultTemporaryChat',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
function Chat() {
|
function Chat() {
|
||||||
|
|
|
||||||
|
|
@ -447,6 +447,7 @@
|
||||||
"com_nav_conversation_mode": "Conversation Mode",
|
"com_nav_conversation_mode": "Conversation Mode",
|
||||||
"com_nav_convo_menu_options": "Conversation Menu Options",
|
"com_nav_convo_menu_options": "Conversation Menu Options",
|
||||||
"com_nav_db_sensitivity": "Decibel sensitivity",
|
"com_nav_db_sensitivity": "Decibel sensitivity",
|
||||||
|
"com_nav_default_temporary_chat": "Temporary Chat by default",
|
||||||
"com_nav_delete_account": "Delete account",
|
"com_nav_delete_account": "Delete account",
|
||||||
"com_nav_delete_account_button": "Permanently delete my account",
|
"com_nav_delete_account_button": "Permanently delete my account",
|
||||||
"com_nav_delete_account_confirm": "Delete account - are you sure?",
|
"com_nav_delete_account_confirm": "Delete account - are you sure?",
|
||||||
|
|
@ -480,6 +481,7 @@
|
||||||
"com_nav_info_code_artifacts": "Enables the display of experimental code artifacts next to the chat",
|
"com_nav_info_code_artifacts": "Enables the display of experimental code artifacts next to the chat",
|
||||||
"com_nav_info_code_artifacts_agent": "Enables the use of code artifacts for this agent. By default, additional instructions specific to the use of artifacts are added, unless \"Custom Prompt Mode\" is enabled.",
|
"com_nav_info_code_artifacts_agent": "Enables the use of code artifacts for this agent. By default, additional instructions specific to the use of artifacts are added, unless \"Custom Prompt Mode\" is enabled.",
|
||||||
"com_nav_info_custom_prompt_mode": "When enabled, the default artifacts system prompt will not be included. All artifact-generating instructions must be provided manually in this mode.",
|
"com_nav_info_custom_prompt_mode": "When enabled, the default artifacts system prompt will not be included. All artifact-generating instructions must be provided manually in this mode.",
|
||||||
|
"com_nav_info_default_temporary_chat": "When enabled, new chats will start with temporary chat mode activated by default. Temporary chats are not saved to your history.",
|
||||||
"com_nav_info_enter_to_send": "When enabled, pressing `ENTER` will send your message. When disabled, pressing Enter will add a new line, and you'll need to press `CTRL + ENTER` / `⌘ + ENTER` to send your message.",
|
"com_nav_info_enter_to_send": "When enabled, pressing `ENTER` will send your message. When disabled, pressing Enter will add a new line, and you'll need to press `CTRL + ENTER` / `⌘ + ENTER` to send your message.",
|
||||||
"com_nav_info_fork_change_default": "`Visible messages only` includes just the direct path to the selected message. `Include related branches` adds branches along the path. `Include all to/from here` includes all connected messages and branches.",
|
"com_nav_info_fork_change_default": "`Visible messages only` includes just the direct path to the selected message. `Include related branches` adds branches along the path. `Include all to/from here` includes all connected messages and branches.",
|
||||||
"com_nav_info_fork_split_target_setting": "When enabled, forking will commence from the target message to the latest message in the conversation, according to the behavior selected.",
|
"com_nav_info_fork_split_target_setting": "When enabled, forking will commence from the target message to the latest message in the conversation, according to the behavior selected.",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { Spinner } from '@librechat/client';
|
import { Spinner } from '@librechat/client';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
|
import { useRecoilCallback, useRecoilValue } from 'recoil';
|
||||||
import { Constants, EModelEndpoint } from 'librechat-data-provider';
|
import { Constants, EModelEndpoint } from 'librechat-data-provider';
|
||||||
import { useGetModelsQuery } from 'librechat-data-provider/react-query';
|
import { useGetModelsQuery } from 'librechat-data-provider/react-query';
|
||||||
import type { TPreset } from 'librechat-data-provider';
|
import type { TPreset } from 'librechat-data-provider';
|
||||||
|
|
@ -11,13 +12,13 @@ import { ToolCallsMapProvider } from '~/Providers';
|
||||||
import ChatView from '~/components/Chat/ChatView';
|
import ChatView from '~/components/Chat/ChatView';
|
||||||
import useAuthRedirect from './useAuthRedirect';
|
import useAuthRedirect from './useAuthRedirect';
|
||||||
import temporaryStore from '~/store/temporary';
|
import temporaryStore from '~/store/temporary';
|
||||||
import { useRecoilCallback } from 'recoil';
|
|
||||||
import store from '~/store';
|
import store from '~/store';
|
||||||
|
|
||||||
export default function ChatRoute() {
|
export default function ChatRoute() {
|
||||||
const { data: startupConfig } = useGetStartupConfig();
|
const { data: startupConfig } = useGetStartupConfig();
|
||||||
const { isAuthenticated, user } = useAuthRedirect();
|
const { isAuthenticated, user } = useAuthRedirect();
|
||||||
|
|
||||||
|
const defaultTemporaryChat = useRecoilValue(temporaryStore.defaultTemporaryChat);
|
||||||
const setIsTemporary = useRecoilCallback(
|
const setIsTemporary = useRecoilCallback(
|
||||||
({ set }) =>
|
({ set }) =>
|
||||||
(value: boolean) => {
|
(value: boolean) => {
|
||||||
|
|
@ -47,12 +48,14 @@ export default function ChatRoute() {
|
||||||
const isTemporaryChat = conversation && conversation.expiredAt ? true : false;
|
const isTemporaryChat = conversation && conversation.expiredAt ? true : false;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (conversationId !== Constants.NEW_CONVO && !isTemporaryChat) {
|
if (conversationId === Constants.NEW_CONVO) {
|
||||||
setIsTemporary(false);
|
setIsTemporary(defaultTemporaryChat);
|
||||||
} else if (isTemporaryChat) {
|
} else if (isTemporaryChat) {
|
||||||
setIsTemporary(isTemporaryChat);
|
setIsTemporary(isTemporaryChat);
|
||||||
|
} else {
|
||||||
|
setIsTemporary(false);
|
||||||
}
|
}
|
||||||
}, [conversationId, isTemporaryChat, setIsTemporary]);
|
}, [conversationId, isTemporaryChat, setIsTemporary, defaultTemporaryChat]);
|
||||||
|
|
||||||
/** This effect is mainly for the first conversation state change on first load of the page.
|
/** This effect is mainly for the first conversation state change on first load of the page.
|
||||||
* Adjusting this may have unintended consequences on the conversation state.
|
* Adjusting this may have unintended consequences on the conversation state.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
import { atomWithLocalStorage } from '~/store/utils';
|
import { atomWithLocalStorage } from '~/store/utils';
|
||||||
|
|
||||||
const isTemporary = atomWithLocalStorage('isTemporary', false);
|
const isTemporary = atomWithLocalStorage('isTemporary', false);
|
||||||
|
const defaultTemporaryChat = atomWithLocalStorage('defaultTemporaryChat', false);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
isTemporary,
|
isTemporary,
|
||||||
|
defaultTemporaryChat,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue