11import { useMemo , useState } from 'react'
2- import { useAtomValue , useSetAtom } from 'jotai'
32import { FileText , Folder } from 'lucide-react'
43
54import FileViewer from './file-viewer'
@@ -11,29 +10,18 @@ import { Label } from '@/components/ui/label'
1110import { Checkbox } from '@/components/ui/checkbox'
1211
1312import {
14- applicationMode ,
15- dryRunAtom ,
16- includeFiles ,
17- isInitialized ,
18- projectFiles ,
19- projectLocalFiles ,
13+ useApplicationMode ,
14+ useDryRun ,
15+ useFilters ,
16+ useOriginalOutput ,
17+ useProjectLocalFiles ,
18+ useReady ,
2019} from '@/store/project'
2120
2221import { getFileClass , twClasses } from '@/file-classes'
2322
2423export function Filters ( ) {
25- const includedFiles = useAtomValue ( includeFiles )
26- const setIncludeFiles = useSetAtom ( includeFiles )
27- function toggleFilter (
28- filter : 'unchanged' | 'added' | 'modified' | 'deleted' | 'overwritten' ,
29- ) {
30- setIncludeFiles ( ( state ) => {
31- if ( state . includes ( filter ) ) {
32- return state . filter ( ( file ) => file !== filter )
33- }
34- return [ ...state , filter ]
35- } )
36- }
24+ const { includedFiles, toggleFilter } = useFilters ( )
3725
3826 return (
3927 < div className = "p-2 rounded-md bg-gray-900 file-filters" >
@@ -104,19 +92,21 @@ export default function FileNavigator() {
10492 './package.json' ,
10593 )
10694
107- const originalOutput = useAtomValue ( projectFiles )
108- const localTree = useAtomValue ( projectLocalFiles )
109- const { data : output } = useAtomValue ( dryRunAtom )
95+ const projectFiles = useOriginalOutput ( )
96+ const localTree = useProjectLocalFiles ( )
97+ const dryRunOutput = useDryRun ( )
98+
99+ const mode = useApplicationMode ( )
110100
111- const mode = useAtomValue ( applicationMode )
112- const tree = output . files
113- const originalTree = mode === 'setup' ? output . files : originalOutput . files
114- const deletedFiles = output . deletedFiles
101+ const tree = dryRunOutput . files
102+ const originalTree =
103+ mode === 'setup' ? dryRunOutput . files : projectFiles . files
104+ const deletedFiles = dryRunOutput . deletedFiles
115105
116106 const [ originalFileContents , setOriginalFileContents ] = useState < string > ( )
117107 const [ modifiedFileContents , setModifiedFileContents ] = useState < string > ( )
118108
119- const includedFiles = useAtomValue ( includeFiles )
109+ const { includedFiles } = useFilters ( )
120110
121111 const fileTree = useMemo ( ( ) => {
122112 const treeData : Array < FileTreeItem > = [ ]
@@ -187,7 +177,7 @@ export default function FileNavigator() {
187177 return treeData
188178 } , [ tree , originalTree , localTree , includedFiles ] )
189179
190- const ready = useAtomValue ( isInitialized )
180+ const ready = useReady ( )
191181
192182 if ( ! ready ) {
193183 return null
0 commit comments