Roo-Code/webview-ui/src/hooks/useAutoApprovalState.ts

26 lines
691 B
TypeScript

import { useMemo } from "react"
interface AutoApprovalToggles {
alwaysAllowReadOnly?: boolean
alwaysAllowWrite?: boolean
alwaysAllowExecute?: boolean
alwaysAllowMcp?: boolean
alwaysAllowModeSwitch?: boolean
alwaysAllowSubtasks?: boolean
alwaysAllowFollowupQuestions?: boolean
}
export function useAutoApprovalState(toggles: AutoApprovalToggles, autoApprovalEnabled?: boolean) {
const hasEnabledOptions = useMemo(() => {
return Object.values(toggles).some((value) => !!value)
}, [toggles])
const effectiveAutoApprovalEnabled = useMemo(() => {
return autoApprovalEnabled ?? false
}, [autoApprovalEnabled])
return {
hasEnabledOptions,
effectiveAutoApprovalEnabled,
}
}