Files
openchamber/packages/ui/src/components/chat/permissionAutoAccept.ts
T
Leonidandbashrusakh 9bfc5bf0be fix(chat): enable draft auto-accept before first message (#2045)
* fix(chat): enable draft auto-accept before first message

* fix(test): use supported bun assertions

* fix(chat): apply draft auto-accept before session switch

---------

Co-authored-by: bashrusakh <bashrusakh@users.noreply.github.com>
2026-07-11 15:15:02 +03:00

37 lines
1.2 KiB
TypeScript

export type PermissionAutoAcceptToggleArgs = {
permissionScopeSessionId: string | null;
newSessionDraftOpen: boolean;
draftPermissionAutoAcceptEnabled: boolean;
permissionAutoAcceptEnabled: boolean;
setDraftPermissionAutoAcceptEnabled: (enabled: boolean) => void;
setSessionAutoAccept: (sessionId: string, enabled: boolean) => Promise<void>;
onOpenSessionFirst: () => void;
onToggleFailed: () => void;
};
export const togglePermissionAutoAccept = (args: PermissionAutoAcceptToggleArgs): void => {
const {
permissionScopeSessionId,
newSessionDraftOpen,
draftPermissionAutoAcceptEnabled,
permissionAutoAcceptEnabled,
setDraftPermissionAutoAcceptEnabled,
setSessionAutoAccept,
onOpenSessionFirst,
onToggleFailed,
} = args;
if (!permissionScopeSessionId) {
if (!newSessionDraftOpen) {
onOpenSessionFirst();
return;
}
setDraftPermissionAutoAcceptEnabled(!draftPermissionAutoAcceptEnabled);
return;
}
const nextEnabled = !permissionAutoAcceptEnabled;
void setSessionAutoAccept(permissionScopeSessionId, nextEnabled).catch(onToggleFailed);
};