• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agentic-dev-library / thumbcode / 21935229190

12 Feb 2026 05:49AM UTC coverage: 64.742%. First build
21935229190

Pull #127

github

web-flow
Merge 4a7599785 into af48ebeae
Pull Request #127: refactor: decompose 8 large files into focused components

1379 of 2375 branches covered (58.06%)

Branch coverage included in aggregate %.

55 of 103 new or added lines in 19 files covered. (53.4%)

2253 of 3235 relevant lines covered (69.64%)

22.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/src/components/project/ProjectFileExplorer.tsx
1
/**
2
 * ProjectFileExplorer
3
 *
4
 * Displays a file tree for the project's local working directory.
5
 */
6

7
import { View } from 'react-native';
8
import { FileTree, type FileNode as FileTreeNode } from '@/components/code';
9
import { Badge } from '@/components/display';
10
import { HStack, VStack } from '@/components/layout';
11
import { Text } from '@/components/ui';
12
import { organicBorderRadius } from '@/lib/organic-styles';
13

14
interface ProjectFileExplorerProps {
15
  fileNodes: FileTreeNode[];
16
  isLoading: boolean;
17
  selectedFile: string | null;
18
  onSelectFile: (path: string) => void;
19
}
20

21
export function ProjectFileExplorer({
22
  fileNodes,
23
  isLoading,
24
  selectedFile,
25
  onSelectFile,
26
}: Readonly<ProjectFileExplorerProps>) {
27
  return (
4✔
28
    <VStack spacing="md">
29
      <View className="bg-surface p-4" style={organicBorderRadius.card}>
30
        <HStack justify="between" align="center" className="mb-3">
31
          <Text weight="semibold" className="text-white">
32
            Files
33
          </Text>
34
          {selectedFile && <Badge variant="secondary">Selected</Badge>}
4!
35
        </HStack>
36

37
        {isLoading ? (
4✔
38
          <Text className="text-neutral-500">Loading files…</Text>
39
        ) : (
40
          <FileTree
41
            data={fileNodes}
42
            selectedPath={selectedFile || undefined}
4✔
NEW
43
            onSelectFile={(path) => onSelectFile(path)}
×
44
            showStatus={false}
45
          />
46
        )}
47
      </View>
48
    </VStack>
49
  );
50
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc