* 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>
37 lines
1.2 KiB
TypeScript
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);
|
|
};
|