Skip to content

Commit 983fabf

Browse files
committed
chat: fix menu issue and make unpinning chats work
1 parent a9d8a27 commit 983fabf

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/packages/frontend/chat/actions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ export class ChatActions extends Actions<ChatState> {
585585
if (pinned) {
586586
entry.doc.pin = true;
587587
} else {
588-
delete entry.doc.pin;
588+
entry.doc.pin = false;
589589
}
590590
this.syncdb.set(entry.doc);
591591
this.syncdb.commit();

src/packages/frontend/chat/chatroom.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@ export function ChatPanel({
214214
const [renamingThread, setRenamingThread] = useState<string | null>(null);
215215
const [renameValue, setRenameValue] = useState<string>("");
216216
const [hoveredThread, setHoveredThread] = useState<string | null>(null);
217+
const [openThreadMenuKey, setOpenThreadMenuKey] = useState<string | null>(
218+
null,
219+
);
217220
const [allowAutoSelectThread, setAllowAutoSelectThread] =
218221
useState<boolean>(true);
219222
const submitMentionsRef = useRef<SubmitMentionsFn | undefined>(undefined);
@@ -497,7 +500,8 @@ export function ChatPanel({
497500
thread;
498501
const plainLabel = stripHtml(displayLabel);
499502
const isHovered = hoveredThread === key;
500-
const showMenu = isHovered || selectedThreadKey === key;
503+
const isMenuOpen = openThreadMenuKey === key;
504+
const showMenu = isHovered || selectedThreadKey === key || isMenuOpen;
501505
return {
502506
key,
503507
label: (
@@ -530,6 +534,13 @@ export function ChatPanel({
530534
<Dropdown
531535
menu={threadMenuProps(key, plainLabel, hasCustomName, isPinned)}
532536
trigger={["click"]}
537+
open={openThreadMenuKey === key}
538+
onOpenChange={(open) => {
539+
setOpenThreadMenuKey(open ? key : null);
540+
if (!open) {
541+
setHoveredThread((prev) => (prev === key ? null : prev));
542+
}
543+
}}
533544
>
534545
<Button
535546
type="text"

0 commit comments

Comments
 (0)