|
@@ -53,7 +53,7 @@ import chatStyle from "./chat.module.scss";
|
|
|
|
|
|
import { ListItem, Modal, showModal } from "./ui-lib";
|
|
|
import { useLocation, useNavigate } from "react-router-dom";
|
|
|
-import { Path } from "../constant";
|
|
|
+import { LAST_INPUT_KEY, Path } from "../constant";
|
|
|
import { Avatar } from "./emoji";
|
|
|
import { MaskAvatar, MaskConfig } from "./mask";
|
|
|
import { useMaskStore } from "../store/mask";
|
|
@@ -404,7 +404,6 @@ export function Chat() {
|
|
|
|
|
|
const inputRef = useRef<HTMLTextAreaElement>(null);
|
|
|
const [userInput, setUserInput] = useState("");
|
|
|
- const [beforeInput, setBeforeInput] = useState("");
|
|
|
const [isLoading, setIsLoading] = useState(false);
|
|
|
const { submitKey, shouldSubmit } = useSubmitHandler();
|
|
|
const { scrollRef, setAutoScroll, scrollToBottom } = useScrollToBottom();
|
|
@@ -477,7 +476,7 @@ export function Chat() {
|
|
|
if (userInput.trim() === "") return;
|
|
|
setIsLoading(true);
|
|
|
chatStore.onUserInput(userInput).then(() => setIsLoading(false));
|
|
|
- setBeforeInput(userInput);
|
|
|
+ localStorage.setItem(LAST_INPUT_KEY, userInput);
|
|
|
setUserInput("");
|
|
|
setPromptHints([]);
|
|
|
if (!isMobileScreen) inputRef.current?.focus();
|
|
@@ -491,9 +490,9 @@ export function Chat() {
|
|
|
|
|
|
// check if should send message
|
|
|
const onInputKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
|
|
- // if ArrowUp and no userInput
|
|
|
+ // if ArrowUp and no userInput, fill with last input
|
|
|
if (e.key === "ArrowUp" && userInput.length <= 0) {
|
|
|
- setUserInput(beforeInput);
|
|
|
+ setUserInput(localStorage.getItem(LAST_INPUT_KEY) ?? "");
|
|
|
e.preventDefault();
|
|
|
return;
|
|
|
}
|
|
@@ -503,11 +502,6 @@ export function Chat() {
|
|
|
}
|
|
|
};
|
|
|
const onRightClick = (e: any, message: Message) => {
|
|
|
- // auto fill user input
|
|
|
- if (message.role === "user") {
|
|
|
- setUserInput(message.content);
|
|
|
- }
|
|
|
-
|
|
|
// copy to clipboard
|
|
|
if (selectOrCopy(e.currentTarget, message.content)) {
|
|
|
e.preventDefault();
|