summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useFolderTrust.ts
blob: 90a69132ceea83091b8683ed230d2e6df4a13298 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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,
  };
};