@a24z/dynamic-file-tree
Version:
React component for selective directory filtering and file tree visualization
44 lines • 2.02 kB
TypeScript
import { Theme } from '@a24z/industry-theme';
import type { FileTreeSource, LoadedFileTreeSource } from '@principal-ai/repository-abstraction';
import { DirectoryFilter } from '../DirectoryFilterInput';
export interface MultiFileTreeCoreProps {
/** Array of loaded file tree sources to display */
sources: LoadedFileTreeSource[];
/** Theme for styling the component */
theme: Theme;
/** Currently selected directory paths */
selectedDirectories?: string[];
/** Current directory filters */
filters?: DirectoryFilter[];
/** View mode: 'all' shows all files, 'selected' shows only filtered directories */
viewMode?: 'all' | 'selected';
/** Callback when a file is selected */
onFileSelect?: (source: FileTreeSource, filePath: string) => void;
/** Callback when directory filters change */
onFiltersChange?: (filters: DirectoryFilter[]) => void;
/** Callback when view mode changes */
onViewModeChange?: (mode: 'all' | 'selected') => void;
/** Initial open state for tree nodes (map of node ID to boolean) */
initialOpenState?: Record<string, boolean>;
/** Default to opening all nodes (default: false - closed) */
defaultOpen?: boolean;
/** Optional padding for the file tree container */
padding?: string;
}
export interface MultiFileTreeProps extends Omit<MultiFileTreeCoreProps, 'filters' | 'viewMode' | 'onFiltersChange' | 'onViewModeChange'> {
/** Show the header with title and view mode toggle */
showHeader?: boolean;
/** Show the directory filter input */
showFilters?: boolean;
/** Show the view mode toggle buttons */
showViewModeToggle?: boolean;
/** Show the selected file indicator */
showSelectedFileIndicator?: boolean;
/** Initial view mode */
initialViewMode?: 'all' | 'selected';
/** Custom root directory name (default: "Repositories") */
rootDirectoryName?: string;
/** Custom title for the header */
title?: string;
}
//# sourceMappingURL=types.d.ts.map