From 473859b0e2cb767f720f8194a749c58af6bbda49 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Fri, 9 Aug 2024 02:11:56 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20chore:=20pre-release=20cleanup?= =?UTF-8?q?=20(#3595)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Update health endpoint URL * refactor: use Constants for saved tag default value, do not place Saved as first always * refactor: check trimmed currentText before appending parsedText in useSubmitMessage * refactor: move `scrollToEnd()` to `createdHandler` and increase delay before execution slightly * chore: Add back TypeScript linting rules for unnecessary conditions and strict boolean expressions * chore: Update librechat-data-provider package.json version to 0.7.4.0 --- .eslintrc.js | 2 ++ api/models/ConversationTag.js | 17 +---------------- .../src/components/Chat/Menus/BookmarkMenu.tsx | 3 +-- client/src/data-provider/mutations.ts | 3 ++- client/src/hooks/Chat/useChatFunctions.ts | 3 +-- client/src/hooks/Messages/useSubmitMessage.ts | 2 +- client/src/hooks/SSE/useEventHandlers.ts | 3 +++ client/src/utils/messages.ts | 2 +- packages/data-provider/package.json | 2 +- packages/data-provider/src/api-endpoints.ts | 2 +- packages/data-provider/src/config.ts | 2 ++ 11 files changed, 16 insertions(+), 25 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 92e259cf38..cbb34c74f2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -120,6 +120,8 @@ module.exports = { ], rules: { '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-unnecessary-condition': 'warn', + '@typescript-eslint/strict-boolean-expressions': 'warn', }, }, { diff --git a/api/models/ConversationTag.js b/api/models/ConversationTag.js index 144aeb18dc..0293ea83c3 100644 --- a/api/models/ConversationTag.js +++ b/api/models/ConversationTag.js @@ -2,8 +2,6 @@ const ConversationTag = require('./schema/conversationTagSchema'); const Conversation = require('./schema/convoSchema'); const logger = require('~/config/winston'); -const SAVED_TAG = 'Saved'; - /** * Retrieves all conversation tags for a user. * @param {string} user - The user ID. @@ -11,19 +9,7 @@ const SAVED_TAG = 'Saved'; */ const getConversationTags = async (user) => { try { - const cTags = await ConversationTag.find({ user }).sort({ position: 1 }).lean(); - - cTags.sort((a, b) => { - if (a.tag === SAVED_TAG) { - return -1; - } - if (b.tag === SAVED_TAG) { - return 1; - } - return 0; - }); - - return cTags; + return await ConversationTag.find({ user }).sort({ position: 1 }).lean(); } catch (error) { logger.error('[getConversationTags] Error getting conversation tags', error); throw new Error('Error getting conversation tags'); @@ -248,7 +234,6 @@ const updateTagsForConversation = async (user, conversationId, tags) => { }; module.exports = { - SAVED_TAG, getConversationTags, createConversationTag, updateConversationTag, diff --git a/client/src/components/Chat/Menus/BookmarkMenu.tsx b/client/src/components/Chat/Menus/BookmarkMenu.tsx index ee798523e6..80735262ea 100644 --- a/client/src/components/Chat/Menus/BookmarkMenu.tsx +++ b/client/src/components/Chat/Menus/BookmarkMenu.tsx @@ -11,7 +11,6 @@ import { Spinner } from '~/components'; import { cn } from '~/utils'; import store from '~/store'; -const SAVED_TAG = 'Saved'; const BookmarkMenu: FC = () => { const localize = useLocalize(); @@ -47,7 +46,7 @@ const BookmarkMenu: FC = () => { if (conversation && conversationId) { await mutateAsync( { - tags: [SAVED_TAG], + tags: [Constants.SAVED_TAG as 'Saved'], }, { onSuccess: (newTags: string[]) => { diff --git a/client/src/data-provider/mutations.ts b/client/src/data-provider/mutations.ts index 9e036914b7..c45dc2793c 100644 --- a/client/src/data-provider/mutations.ts +++ b/client/src/data-provider/mutations.ts @@ -1,4 +1,5 @@ import { + Constants, EToolResources, LocalStorageKeys, InfiniteCollections, @@ -322,9 +323,9 @@ export const useConversationTagMutation = ( if (!data) { return [ { - tag: 'Saved', count: 1, position: 0, + tag: Constants.SAVED_TAG, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), }, diff --git a/client/src/hooks/Chat/useChatFunctions.ts b/client/src/hooks/Chat/useChatFunctions.ts index e230113b2f..fd9ef09832 100644 --- a/client/src/hooks/Chat/useChatFunctions.ts +++ b/client/src/hooks/Chat/useChatFunctions.ts @@ -18,8 +18,8 @@ import type { import type { SetterOrUpdater } from 'recoil'; import type { TAskFunction, ExtendedFile } from '~/common'; import useSetFilesToDelete from '~/hooks/Files/useSetFilesToDelete'; -import { getEndpointField, logger, scrollToEnd } from '~/utils'; import useGetSender from '~/hooks/Conversations/useGetSender'; +import { getEndpointField, logger } from '~/utils'; import useUserKey from '~/hooks/Input/useUserKey'; import store from '~/store'; @@ -250,7 +250,6 @@ export default function useChatFunctions({ setLatestMessage(initialResponse); } - scrollToEnd(); setSubmission(submission); logger.log('Submission:'); logger.dir(submission, { depth: null }); diff --git a/client/src/hooks/Messages/useSubmitMessage.ts b/client/src/hooks/Messages/useSubmitMessage.ts index f04ea8a37c..551b0ec170 100644 --- a/client/src/hooks/Messages/useSubmitMessage.ts +++ b/client/src/hooks/Messages/useSubmitMessage.ts @@ -86,7 +86,7 @@ export default function useSubmitMessage(helpers?: { clearDraft?: () => void }) } const currentText = methods.getValues('text'); - const newText = currentText ? `\n${parsedText}` : parsedText; + const newText = currentText?.trim()?.length > 1 ? `\n${parsedText}` : parsedText; setActivePrompt(newText); }, [autoSendPrompts, submitMessage, setActivePrompt, methods, user], diff --git a/client/src/hooks/SSE/useEventHandlers.ts b/client/src/hooks/SSE/useEventHandlers.ts index cf30667bba..ea3f42b8e5 100644 --- a/client/src/hooks/SSE/useEventHandlers.ts +++ b/client/src/hooks/SSE/useEventHandlers.ts @@ -19,6 +19,7 @@ import type { import type { SetterOrUpdater, Resetter } from 'recoil'; import type { TResData, ConvoGenerator } from '~/common'; import { + scrollToEnd, addConversation, deleteConversation, updateConversation, @@ -291,6 +292,8 @@ export default function useEventHandlers({ if (resetLatestMessage) { resetLatestMessage(); } + + scrollToEnd(); }, [setMessages, setConversation, queryClient, isAddedRequest, resetLatestMessage], ); diff --git a/client/src/utils/messages.ts b/client/src/utils/messages.ts index e7abf1320b..bb16cd6bbb 100644 --- a/client/src/utils/messages.ts +++ b/client/src/utils/messages.ts @@ -50,5 +50,5 @@ export const scrollToEnd = () => { if (messagesEndElement) { messagesEndElement.scrollIntoView({ behavior: 'instant' }); } - }, 500); + }, 750); }; diff --git a/packages/data-provider/package.json b/packages/data-provider/package.json index 7d438bd556..2d5bf06f9a 100644 --- a/packages/data-provider/package.json +++ b/packages/data-provider/package.json @@ -1,6 +1,6 @@ { "name": "librechat-data-provider", - "version": "0.7.4", + "version": "0.7.4.0", "description": "data services for librechat apps", "main": "dist/index.js", "module": "dist/index.es.js", diff --git a/packages/data-provider/src/api-endpoints.ts b/packages/data-provider/src/api-endpoints.ts index f91d768ec9..208a8fbc30 100644 --- a/packages/data-provider/src/api-endpoints.ts +++ b/packages/data-provider/src/api-endpoints.ts @@ -1,6 +1,6 @@ import type { AssistantsEndpoint } from './schemas'; -export const health = () => '/api/health'; +export const health = () => '/health'; export const user = () => '/api/user'; export const balance = () => '/api/balance'; diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts index b9a6cfadf8..af5f207541 100644 --- a/packages/data-provider/src/config.ts +++ b/packages/data-provider/src/config.ts @@ -957,6 +957,8 @@ export enum Constants { COMMANDS_MAX_LENGTH = 56, /** Default Stream Rate (ms) */ DEFAULT_STREAM_RATE = 1, + /** Saved Tag */ + SAVED_TAG = 'Saved', } export enum LocalStorageKeys {