diff --git a/apps/web/src/context/Chats/useGetChat.ts b/apps/web/src/context/Chats/useGetChat.ts index dbddd5203..c08ab0c2d 100644 --- a/apps/web/src/context/Chats/useGetChat.ts +++ b/apps/web/src/context/Chats/useGetChat.ts @@ -3,9 +3,9 @@ import { useGetChat } from '../../api/buster_rest/chats'; const stableHasLoadedChat = (x: IBusterChat) => !!x.id; export const useHasLoadedChat = ({ chatId }: { chatId: string }) => { - const { data: hasLoadedChat } = useGetChat( + const { data: hasLoadedChat, isFetched } = useGetChat( { id: chatId }, - { select: stableHasLoadedChat, notifyOnChangeProps: ['data'] } + { select: stableHasLoadedChat, notifyOnChangeProps: ['data', 'isFetched'] } ); - return hasLoadedChat; + return hasLoadedChat && isFetched; }; diff --git a/apps/web/src/controllers/DatasetsListController/DatasetsHeader.tsx b/apps/web/src/controllers/DatasetsListController/DatasetsHeader.tsx index 06291823a..2d93765a7 100644 --- a/apps/web/src/controllers/DatasetsListController/DatasetsHeader.tsx +++ b/apps/web/src/controllers/DatasetsListController/DatasetsHeader.tsx @@ -37,8 +37,6 @@ export const DatasetHeader: React.FC<{ setOpenNewDatasetModal(true); }; - useHotkeys('d', onOpenNewDatasetModal); - return ( <>
diff --git a/apps/web/src/controllers/HomePage/NewChatInput.tsx b/apps/web/src/controllers/HomePage/NewChatInput.tsx index e025c2edb..4d9ddbbf9 100644 --- a/apps/web/src/controllers/HomePage/NewChatInput.tsx +++ b/apps/web/src/controllers/HomePage/NewChatInput.tsx @@ -30,6 +30,8 @@ export const NewChatInput: React.FC<{ }); const onChange = useMemoizedFn((e: ChangeEvent) => { + e.preventDefault(); + e.stopPropagation(); setInputValue(e.target.value); }); diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image1.png b/apps/web/src/integrations/tanstack-dev-tools/images/image1.png new file mode 100644 index 000000000..e7038b18f Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image1.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image2.png b/apps/web/src/integrations/tanstack-dev-tools/images/image2.png new file mode 100644 index 000000000..63d95516b Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image2.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image3.png b/apps/web/src/integrations/tanstack-dev-tools/images/image3.png new file mode 100644 index 000000000..165807329 Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image3.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image4.png b/apps/web/src/integrations/tanstack-dev-tools/images/image4.png new file mode 100644 index 000000000..f7f0b4936 Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image4.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image5.png b/apps/web/src/integrations/tanstack-dev-tools/images/image5.png new file mode 100644 index 000000000..719328f73 Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image5.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image6.png b/apps/web/src/integrations/tanstack-dev-tools/images/image6.png new file mode 100644 index 000000000..ab62ead4f Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image6.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/images/image7.png b/apps/web/src/integrations/tanstack-dev-tools/images/image7.png new file mode 100644 index 000000000..a68e0de6c Binary files /dev/null and b/apps/web/src/integrations/tanstack-dev-tools/images/image7.png differ diff --git a/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools-impl.tsx b/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools-impl.tsx index 88a7c01b3..7311cde4e 100644 --- a/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools-impl.tsx +++ b/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools-impl.tsx @@ -1,10 +1,22 @@ import { ClientOnly } from '@tanstack/react-router'; -import React, { lazy, Suspense } from 'react'; +import sample from 'lodash/sample'; +import React, { lazy, Suspense, useState } from 'react'; import { useMount } from '@/hooks/useMount'; import { isServer } from '@/lib/window'; +import image1 from './images/image1.png'; +import image2 from './images/image2.png'; +import image3 from './images/image3.png'; +import image4 from './images/image4.png'; +import image5 from './images/image5.png'; +import image6 from './images/image6.png'; +import image7 from './images/image7.png'; const isProduction = import.meta.env.PROD; +const arrayOfImages = [image1, image2, image3, image4, image5, image6, image7]; + +const randomImage = sample(arrayOfImages); + // Only create lazy components if we're in the browser const LazyTanstackDevtools = !import.meta.env.SSR ? lazy(() => @@ -80,7 +92,8 @@ const TanstackDevtoolsImpl: React.FC = React.memo(() => { position: 'bottom-left', hideUntilHover: true, defaultOpen: false, - openHotkey: ['Shift', 'D', 'T'], + openHotkey: ['Meta', 'D'], + triggerImage: randomImage, }} plugins={[ { diff --git a/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools.tsx b/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools.tsx index bf615740b..bf401db29 100644 --- a/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools.tsx +++ b/apps/web/src/integrations/tanstack-dev-tools/tanstack-devtools.tsx @@ -34,7 +34,7 @@ export const TanstackDevtools: React.FC = React.memo(() => { console.log('🐓 Setting useDevTools to true'); setUseDevTools(true); }, - { enabled: ENABLE_TANSTACK_PANEL } + { enabled: ENABLE_TANSTACK_PANEL, preventDefault: true } ); if (!ENABLE_TANSTACK_PANEL || !mounted || !useDevTools) { diff --git a/apps/web/src/layouts/ChatLayout/ChatContent/ChatInput/ChatInput.tsx b/apps/web/src/layouts/ChatLayout/ChatContent/ChatInput/ChatInput.tsx index 61b40ca3e..3518bf071 100644 --- a/apps/web/src/layouts/ChatLayout/ChatContent/ChatInput/ChatInput.tsx +++ b/apps/web/src/layouts/ChatLayout/ChatContent/ChatInput/ChatInput.tsx @@ -33,6 +33,8 @@ export const ChatInput: React.FC = React.memo(() => { }); const onChange = (e: ChangeEvent) => { + e.preventDefault(); + e.stopPropagation(); setInputValue(e.target.value); }; diff --git a/apps/web/src/layouts/ChatLayout/ChatLayoutContext/useAutoRedirectStreaming.ts b/apps/web/src/layouts/ChatLayout/ChatLayoutContext/useAutoRedirectStreaming.ts index 7926f7bd4..1ab5d48db 100644 --- a/apps/web/src/layouts/ChatLayout/ChatLayoutContext/useAutoRedirectStreaming.ts +++ b/apps/web/src/layouts/ChatLayout/ChatLayoutContext/useAutoRedirectStreaming.ts @@ -20,7 +20,6 @@ export const useAutoRedirectStreaming = ({ }) => { const navigate = useNavigate(); const getChatMessageMemoized = useGetChatMessageMemoized(); - const location = useLocation(); const isStreamFinished = useGetChatMessageCompleted({ messageId: lastMessageId }); const lastReasoningMessageId = useGetChatMessageLastReasoningMessageId({ messageId: lastMessageId, @@ -40,7 +39,7 @@ export const useAutoRedirectStreaming = ({ //streaming logic to redirect useEffect(() => { - if (!hasLoadedChat || !chatId || isStreamFinished) { + if (!hasLoadedChat || !chatId) { return; }