From 34b5dc7f289dc9af0a87d3a795e681d2415da3c9 Mon Sep 17 00:00:00 2001 From: shrutip90 Date: Fri, 8 Aug 2025 11:02:27 -0700 Subject: Add FolderTrustDialog that shows on launch and enables folderTrust setting (#5815) --- packages/cli/src/ui/hooks/useFolderTrust.ts | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 packages/cli/src/ui/hooks/useFolderTrust.ts (limited to 'packages/cli/src/ui/hooks/useFolderTrust.ts') diff --git a/packages/cli/src/ui/hooks/useFolderTrust.ts b/packages/cli/src/ui/hooks/useFolderTrust.ts new file mode 100644 index 00000000..90a69132 --- /dev/null +++ b/packages/cli/src/ui/hooks/useFolderTrust.ts @@ -0,0 +1,31 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useState, useCallback } from 'react'; +import { LoadedSettings, SettingScope } from '../../config/settings.js'; +import { FolderTrustChoice } from '../components/FolderTrustDialog.js'; + +export const useFolderTrust = (settings: LoadedSettings) => { + const [isFolderTrustDialogOpen, setIsFolderTrustDialogOpen] = useState( + !!settings.merged.folderTrustFeature && + // TODO: Update to avoid showing dialog for folders that are trusted. + settings.merged.folderTrust === undefined, + ); + + const handleFolderTrustSelect = useCallback( + (_choice: FolderTrustChoice) => { + // TODO: Store folderPath in the trusted folders config file based on the choice. + settings.setValue(SettingScope.User, 'folderTrust', true); + setIsFolderTrustDialogOpen(false); + }, + [settings], + ); + + return { + isFolderTrustDialogOpen, + handleFolderTrustSelect, + }; +}; -- cgit v1.2.3