@@ -5,19 +5,10 @@ import loadDirectory, { FileObject } from '@/api/server/files/loadDirectory';
55import { Actions , useStoreActions } from 'easy-peasy' ;
66import { ApplicationStore } from '@/state' ;
77import { httpErrorToHuman } from '@/api/http' ;
8- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' ;
9- import { faFolder } from '@fortawesome/free-solid-svg-icons/faFolder' ;
10- import { faFileAlt } from '@fortawesome/free-solid-svg-icons/faFileAlt' ;
11- import format from 'date-fns/format' ;
12- import differenceInHours from 'date-fns/difference_in_hours' ;
13- import distanceInWordsToNow from 'date-fns/distance_in_words_to_now' ;
14- import { bytesToHuman } from '@/helpers' ;
158import { CSSTransition } from 'react-transition-group' ;
169import { Link } from 'react-router-dom' ;
1710import Spinner from '@/components/elements/Spinner' ;
18- import { faEllipsisH } from '@fortawesome/free-solid-svg-icons/faEllipsisH' ;
19- import { faFile } from '@fortawesome/free-solid-svg-icons/faFile' ;
20- import { faFileImport } from '@fortawesome/free-solid-svg-icons/faFileImport' ;
11+ import FileObjectRow from '@/components/server/files/FileObjectRow' ;
2112
2213export default ( ) => {
2314 const [ loading , setLoading ] = useState ( true ) ;
@@ -98,48 +89,7 @@ export default () => {
9889 < div >
9990 {
10091 files . map ( file => (
101- < a
102- key = { file . name }
103- href = { file . isFile ? undefined : `#${ currentDirectory } /${ file . name } ` }
104- className = { `
105- flex px-4 py-3 bg-neutral-700 text-neutral-300 rounded-sm mb-px text-sm
106- hover:text-neutral-100 cursor-pointer items-center no-underline hover:bg-neutral-600
107- ` }
108- onClick = { ( e ) => {
109- if ( file . isFile ) {
110- return e . preventDefault ( ) ;
111- }
112- } }
113- >
114- < div className = { 'flex-none text-neutral-400 mr-4 text-lg' } >
115- { file . isFile ?
116- < FontAwesomeIcon icon = { file . isSymlink ? faFileImport : faFileAlt } />
117- :
118- < FontAwesomeIcon icon = { faFolder } />
119- }
120- </ div >
121- < div className = { 'flex-1' } >
122- { file . name }
123- </ div >
124- { file . isFile &&
125- < div className = { 'w-1/6 text-right mr-4' } >
126- { bytesToHuman ( file . size ) }
127- </ div >
128- }
129- < div
130- className = { 'w-1/5 text-right mr-4' }
131- title = { file . modifiedAt . toString ( ) }
132- >
133- { Math . abs ( differenceInHours ( file . modifiedAt , new Date ( ) ) ) > 48 ?
134- format ( file . modifiedAt , 'MMM Do, YYYY h:mma' )
135- :
136- distanceInWordsToNow ( file . modifiedAt , { includeSeconds : true } )
137- }
138- </ div >
139- < div >
140- < FontAwesomeIcon icon = { faEllipsisH } />
141- </ div >
142- </ a >
92+ < FileObjectRow key = { file . name } directory = { currentDirectory } file = { file } />
14393 ) )
14494 }
14595 </ div >
0 commit comments