mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-03 16:34:31 -07:00
Force restart on trust level change to reload settings (#6713)
This commit is contained in:
@@ -20,6 +20,7 @@ export const useFolderTrust = (
|
||||
) => {
|
||||
const [isTrusted, setIsTrusted] = useState<boolean | undefined>(undefined);
|
||||
const [isFolderTrustDialogOpen, setIsFolderTrustDialogOpen] = useState(false);
|
||||
const [isRestarting, setIsRestarting] = useState(false);
|
||||
|
||||
const { folderTrust, folderTrustFeature } = settings.merged;
|
||||
useEffect(() => {
|
||||
@@ -38,6 +39,8 @@ export const useFolderTrust = (
|
||||
const cwd = process.cwd();
|
||||
let trustLevel: TrustLevel;
|
||||
|
||||
const wasTrusted = isTrusted ?? true;
|
||||
|
||||
switch (choice) {
|
||||
case FolderTrustChoice.TRUST_FOLDER:
|
||||
trustLevel = TrustLevel.TRUST_FOLDER;
|
||||
@@ -53,20 +56,27 @@ export const useFolderTrust = (
|
||||
}
|
||||
|
||||
trustedFolders.setValue(cwd, trustLevel);
|
||||
const trusted = isWorkspaceTrusted({
|
||||
folderTrust,
|
||||
folderTrustFeature,
|
||||
} as Settings);
|
||||
setIsTrusted(trusted);
|
||||
setIsFolderTrustDialogOpen(false);
|
||||
onTrustChange(trusted);
|
||||
const newIsTrusted =
|
||||
trustLevel === TrustLevel.TRUST_FOLDER ||
|
||||
trustLevel === TrustLevel.TRUST_PARENT;
|
||||
setIsTrusted(newIsTrusted);
|
||||
onTrustChange(newIsTrusted);
|
||||
|
||||
const needsRestart = wasTrusted !== newIsTrusted;
|
||||
if (needsRestart) {
|
||||
setIsRestarting(true);
|
||||
setIsFolderTrustDialogOpen(true);
|
||||
} else {
|
||||
setIsFolderTrustDialogOpen(false);
|
||||
}
|
||||
},
|
||||
[onTrustChange, folderTrust, folderTrustFeature],
|
||||
[onTrustChange, isTrusted],
|
||||
);
|
||||
|
||||
return {
|
||||
isTrusted,
|
||||
isFolderTrustDialogOpen,
|
||||
handleFolderTrustSelect,
|
||||
isRestarting,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user