Skip to content

Commit 42f6adc

Browse files
committed
feat: optimistic freeze and fix anonymous freezing thread from another session
1 parent b0fd47b commit 42f6adc

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

apps/backend-convex/convex/threads.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export const unfreeze = mutation({
176176
await assertThreadAccess(ctx, { thread, lockerKey: args.lockerKey })
177177

178178
await ctx.db.patch(args.threadId, {
179-
frozen: false,
179+
frozen: undefined,
180180
})
181181
},
182182
})

apps/frontend/app/components/chat/ChatSidebar.vue

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,22 @@ async function _shareThread(thread: Doc<'threads'>) {
133133
toast({ description: t('chat.toast.threadShareLinkCopied') })
134134
}
135135
136+
async function _freezeThread(thread: Doc<'threads'>) {
137+
const prevVal = thread.frozen
138+
thread.frozen = true
139+
140+
await freezeThread(convex, { threadId: thread._id, lockerKey: thread.lockerKey })
141+
.catch(() => { thread.frozen = prevVal })
142+
}
143+
144+
async function _unfreezeThread(thread: Doc<'threads'>) {
145+
const prevVal = thread.frozen
146+
thread.frozen = undefined
147+
148+
await unfreezeThread(convex, { threadId: thread._id, lockerKey: thread.lockerKey })
149+
.catch(() => { thread.frozen = prevVal })
150+
}
151+
136152
const [DefineDeleteBtn, ReuseDeleteBtn] = createReusableTemplate<{ thread: Doc<'threads'> }>()
137153
const [DefineThreadLiItem, ReuseThreadLiItem] = createReusableTemplate<{ thread: Doc<'threads'>, pinned?: boolean }>()
138154
</script>
@@ -279,8 +295,8 @@ const [DefineThreadLiItem, ReuseThreadLiItem] = createReusableTemplate<{ thread:
279295
</ContextMenuItem>
280296
<ContextMenuItem
281297
@click="thread.frozen
282-
? unfreezeThread(convex, { threadId: thread._id, lockerKey: thread.lockerKey })
283-
: freezeThread(convex, { threadId: thread._id, lockerKey: thread.lockerKey })"
298+
? _unfreezeThread(thread)
299+
: _freezeThread(thread)"
284300
>
285301
{{ thread.frozen ? $t('chat.thread.unfreeze') : $t('chat.thread.freeze') }}
286302
</ContextMenuItem>

0 commit comments

Comments
 (0)