From ec561fcd7f8e49e46ef5aad8f4fe16ec5cb4003d Mon Sep 17 00:00:00 2001
From: Danny Avila <110412045+danny-avila@users.noreply.github.com>
Date: Fri, 19 May 2023 16:02:41 -0400
Subject: [PATCH] Fixes all Nav Menu related errors and bugs (#331)
* chore(client): update lucide-react package to version 0.220.0
style(client): change color of MessageHeader component text to gray-500
style(client): change color of nav-close-button to gray-400 and nav-open-button to gray-500
feat(client): add Panel component to replace svg icons in Nav component
* fix: forwardRef errors in Nav Menu
* refactor(SearchBar.jsx): change clearSearch prop destructuring to props destructuring
refactor(SearchBar.jsx): add ref prop to SearchBar component
refactor(getIcon.jsx): remove unused imports
refactor(getIcon.jsx): add nullish coalescing operator to user.name and user.avatar properties
* fix (NavLinks): modals no longer close on nav menu close
* style(ExportModel.jsx): remove unnecessary z-index property from a div element
* style(ExportModel.jsx): remove trailing whitespace in input element
* refactor(Message.jsx): remove unused cancelled variable
fix(Message.jsx): fix error message length exceeding 512 characters
refactor(MenuItem.jsx): remove unused MenuItem component
---
client/package.json | 2 +-
client/src/components/Messages/Message.jsx | 9 +-
.../src/components/Messages/MessageHeader.jsx | 2 +-
client/src/components/Nav/ClearConvos.jsx | 17 +-
client/src/components/Nav/DarkMode.jsx | 8 +-
.../Nav/ExportConversation/ExportModel.jsx | 4 +-
.../Nav/ExportConversation/index.jsx | 8 +-
client/src/components/Nav/Logout.jsx | 8 +-
client/src/components/Nav/NavLink.jsx | 25 +--
client/src/components/Nav/NavLinks.jsx | 151 +++++++++++-------
client/src/components/Nav/SearchBar.jsx | 13 +-
client/src/components/Nav/index.jsx | 50 +-----
client/src/components/svg/Panel.jsx | 47 ++++++
client/src/components/ui/DialogTemplate.jsx | 28 ++--
client/src/utils/getIcon.jsx | 10 +-
package-lock.json | 13 +-
16 files changed, 230 insertions(+), 165 deletions(-)
create mode 100644 client/src/components/svg/Panel.jsx
diff --git a/client/package.json b/client/package.json
index 4fcf2f4a9..5d9a60fd7 100644
--- a/client/package.json
+++ b/client/package.json
@@ -53,7 +53,7 @@
"filenamify": "^6.0.0",
"html2canvas": "^1.4.1",
"lodash": "^4.17.21",
- "lucide-react": "^0.113.0",
+ "lucide-react": "^0.220.0",
"pino": "^8.12.1",
"rc-input-number": "^7.4.2",
"react": "^18.2.0",
diff --git a/client/src/components/Messages/Message.jsx b/client/src/components/Messages/Message.jsx
index 223804f5d..613e28219 100644
--- a/client/src/components/Messages/Message.jsx
+++ b/client/src/components/Messages/Message.jsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useRef } from 'react';
+import { useState, useEffect, useRef } from 'react';
import { useRecoilValue, useSetRecoilState } from 'recoil';
import copy from 'copy-to-clipboard';
import SubRow from './Content/SubRow';
@@ -31,7 +31,7 @@ export default function Message({
siblingCount,
setSiblingIdx
}) {
- const { text, searchResult, isCreatedByUser, error, submitting, unfinished, cancelled } = message;
+ const { text, searchResult, isCreatedByUser, error, submitting, unfinished } = message;
const isSubmitting = useRecoilValue(store.isSubmitting);
const setLatestMessage = useSetRecoilState(store.latestMessage);
const [abortScroll, setAbort] = useState(false);
@@ -74,6 +74,7 @@ export default function Message({
};
const getError = (text) => {
+ const errorMessage = text.length > 512 ? text.slice(0, 512) + '...' : text;
const match = text.match(/\{[^{}]*\}/);
var json = match ? match[0] : '';
if (isJson(json)) {
@@ -83,10 +84,10 @@ export default function Message({
} else if (json.type === 'insufficient_quota') {
return "We're sorry, but the default API key has reached its limit. To continue using this service, please set up your own API key. You can do this by clicking on the model logo in the top-left corner of the textbox.";
} else {
- return `Oops! Something went wrong. Please try again in a few moments. Here's the specific error message we encountered: ${text}`;
+ return `Oops! Something went wrong. Please try again in a few moments. Here's the specific error message we encountered: ${errorMessage}`;
}
} else {
- return `Oops! Something went wrong. Please try again in a few moments. Here's the specific error message we encountered: ${text}`;
+ return `Oops! Something went wrong. Please try again in a few moments. Here's the specific error message we encountered: ${errorMessage}`;
}
};
diff --git a/client/src/components/Messages/MessageHeader.jsx b/client/src/components/Messages/MessageHeader.jsx
index a907cefbe..238ca6e01 100644
--- a/client/src/components/Messages/MessageHeader.jsx
+++ b/client/src/components/Messages/MessageHeader.jsx
@@ -45,7 +45,7 @@ const MessageHeader = ({ isSearchView = false }) => {
<>
(endpoint === 'chatGPTBrowser' ? null : setSaveAsDialogShow(true))}
diff --git a/client/src/components/Nav/ClearConvos.jsx b/client/src/components/Nav/ClearConvos.jsx
index 7eac1e1ff..770eaacd9 100644
--- a/client/src/components/Nav/ClearConvos.jsx
+++ b/client/src/components/Nav/ClearConvos.jsx
@@ -1,11 +1,10 @@
import { useEffect } from 'react';
import store from '~/store';
-import TrashIcon from '../svg/TrashIcon';
-import { Dialog, DialogTrigger } from '../ui/Dialog.tsx';
+import { Dialog } from '../ui/Dialog.tsx';
import DialogTemplate from '../ui/DialogTemplate';
import { useClearConversationsMutation } from '~/data-provider';
-export default function ClearConvos() {
+const ClearConvos = ({ open, onOpenChange}) => {
const { newConversation } = store.useConversation();
const { refreshConversations } = store.useConversations();
const clearConvosMutation = useClearConversationsMutation();
@@ -23,13 +22,7 @@ export default function ClearConvos() {
}, [clearConvosMutation.isSuccess]);
return (
-