Skip to content

Commit

Permalink
feat: close ChatGPTNextWeb#1615 pin messages to contextual prompts
Browse files Browse the repository at this point in the history
  • Loading branch information
Yidadaa committed Jun 25, 2023
1 parent 25ce6af commit 7893693
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 6 deletions.
11 changes: 6 additions & 5 deletions app/components/chat.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -279,19 +279,22 @@
min-width: 0;

&:hover {
min-width: 300px;
min-width: 330px;

.chat-message-actions {
height: 40px;
opacity: 1;
transform: translateY(0px);

.chat-message-action-date {
opacity: 0.3;
}
}
}

.chat-message-actions {
display: flex;
width: 100%;
padding-top: 5px;
box-sizing: border-box;
font-size: 12px;
align-items: flex-end;
Expand All @@ -304,7 +307,7 @@

.chat-message-action-date {
color: var(--black);
opacity: 0.3;
opacity: 0;
}
}

Expand All @@ -323,8 +326,6 @@
padding-top: 10px;
box-sizing: border-box;
flex-direction: column;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-top: var(--border-in-light);
box-shadow: var(--card-shadow);
}
Expand Down
27 changes: 26 additions & 1 deletion app/components/chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import ResetIcon from "../icons/reload.svg";
import BreakIcon from "../icons/break.svg";
import SettingsIcon from "../icons/chat-settings.svg";
import DeleteIcon from "../icons/clear.svg";
import PinIcon from "../icons/pin.svg";

import LightIcon from "../icons/light.svg";
import DarkIcon from "../icons/dark.svg";
Expand Down Expand Up @@ -60,7 +61,7 @@ import Locale from "../locales";
import { IconButton } from "./button";
import styles from "./chat.module.scss";

import { ListItem, Modal } from "./ui-lib";
import { ListItem, Modal, showToast } from "./ui-lib";
import { useLocation, useNavigate } from "react-router-dom";
import { LAST_INPUT_KEY, Path, REQUEST_TIMEOUT_MS } from "../constant";
import { Avatar } from "./emoji";
Expand Down Expand Up @@ -696,6 +697,24 @@ export function Chat() {
inputRef.current?.focus();
};

const onPinMessage = (botMessage: ChatMessage) => {
if (!botMessage.id) return;
const userMessageIndex = findLastUserIndex(botMessage.id);
if (!userMessageIndex) return;

const userMessage = session.messages[userMessageIndex];
chatStore.updateCurrentSession((session) =>
session.mask.context.push(userMessage, botMessage),
);

showToast(Locale.Chat.Actions.PinToastContent, {
text: Locale.Chat.Actions.PinToastAction,
onClick: () => {
setShowPromptModal(true);
},
});
};

const context: RenderMessage[] = session.mask.hideContext
? []
: session.mask.context.slice();
Expand Down Expand Up @@ -922,6 +941,12 @@ export function Chat() {
icon={<ResetIcon />}
onClick={() => onResend(message.id ?? i)}
/>

<ChatAction
text={Locale.Chat.Actions.Pin}
icon={<PinIcon />}
onClick={() => onPinMessage(message)}
/>
</>
)}
<ChatAction
Expand Down
1 change: 1 addition & 0 deletions app/icons/pin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/locales/cn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ const cn = {
Copy: "复制",
Stop: "停止",
Retry: "重试",
Pin: "固定",
PinToastContent: "已将 2 条对话固定至预设提示词",
PinToastAction: "查看",
Delete: "删除",
},
Commands: {
Expand Down
3 changes: 3 additions & 0 deletions app/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ const en: LocaleType = {
Copy: "Copy",
Stop: "Stop",
Retry: "Retry",
Pin: "Pin",
PinToastContent: "Pinned 2 messages to contextual prompts",
PinToastAction: "View",
Delete: "Delete",
},
Commands: {
Expand Down

0 comments on commit 7893693

Please sign in to comment.