fix: Add folder names in permissions dialog similar to the launch dialog (#11278)

This commit is contained in:
shrutip90
2025-10-16 16:04:16 -07:00
committed by GitHub
parent 02241e9126
commit c71b749185
2 changed files with 35 additions and 18 deletions

View File

@@ -46,6 +46,7 @@ describe('PermissionsModifyTrustDialog', () => {
let mockCommitTrustLevelChange: Mock;
beforeEach(() => {
mockedCwd.mockReturnValue('/test/dir');
mockUpdateTrustLevel = vi.fn();
mockCommitTrustLevelChange = vi.fn();
vi.mocked(usePermissionsModifyTrust).mockReturnValue({
@@ -120,6 +121,17 @@ describe('PermissionsModifyTrustDialog', () => {
});
});
it('should render the labels with folder names', async () => {
const { lastFrame } = renderWithProviders(
<PermissionsModifyTrustDialog onExit={vi.fn()} addItem={vi.fn()} />,
);
await waitFor(() => {
expect(lastFrame()).toContain('Trust this folder (dir)');
expect(lastFrame()).toContain('Trust parent folder (test)');
});
});
it('should call onExit when escape is pressed', async () => {
const onExit = vi.fn();
const { stdin, lastFrame } = renderWithProviders(

View File

@@ -6,6 +6,8 @@
import { Box, Text } from 'ink';
import type React from 'react';
import * as process from 'node:process';
import * as path from 'node:path';
import { TrustLevel } from '../../config/trustedFolders.js';
import { useKeypress } from '../hooks/useKeypress.js';
import { usePermissionsModifyTrust } from '../hooks/usePermissionsModifyTrust.js';
@@ -19,28 +21,31 @@ interface PermissionsModifyTrustDialogProps {
addItem: UseHistoryManagerReturn['addItem'];
}
const TRUST_LEVEL_ITEMS = [
{
label: 'Trust this folder',
value: TrustLevel.TRUST_FOLDER,
key: TrustLevel.TRUST_FOLDER,
},
{
label: 'Trust parent folder',
value: TrustLevel.TRUST_PARENT,
key: TrustLevel.TRUST_PARENT,
},
{
label: "Don't trust",
value: TrustLevel.DO_NOT_TRUST,
key: TrustLevel.DO_NOT_TRUST,
},
];
export function PermissionsModifyTrustDialog({
onExit,
addItem,
}: PermissionsModifyTrustDialogProps): React.JSX.Element {
const dirName = path.basename(process.cwd());
const parentFolder = path.basename(path.dirname(process.cwd()));
const TRUST_LEVEL_ITEMS = [
{
label: `Trust this folder (${dirName})`,
value: TrustLevel.TRUST_FOLDER,
key: TrustLevel.TRUST_FOLDER,
},
{
label: `Trust parent folder (${parentFolder})`,
value: TrustLevel.TRUST_PARENT,
key: TrustLevel.TRUST_PARENT,
},
{
label: "Don't trust",
value: TrustLevel.DO_NOT_TRUST,
key: TrustLevel.DO_NOT_TRUST,
},
];
const {
cwd,
currentTrustLevel,