@@ -44,8 +44,8 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
4444 }
4545
4646 const isDemo = serverUrl . startsWith ( "demo://" )
47- const hasWritePermission = ! isDemo && ( data ?. perms . includes ( "write" ) || false )
48- const hasDeletePermission = ! isDemo && ( data ?. perms . includes ( "delete" ) || false )
47+ const hasWritePermission = data ?. perms . includes ( "write" ) || false
48+ const hasDeletePermission = data ?. perms . includes ( "delete" ) || false
4949
5050 const fetchDirectory = async ( path : string ) => {
5151 setIsLoading ( true )
@@ -59,7 +59,7 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
5959 taglist : [ ] ,
6060 srvinf : "demo" ,
6161 acct : "demo" ,
62- perms : [ "read" ] ,
62+ perms : [ "read" ] , // Only read permissions in demo mode
6363 cfg : {
6464 idx : true ,
6565 itag : false ,
@@ -312,9 +312,16 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
312312
313313 { /* Main Content */ }
314314 < main className = "container mx-auto px-3 sm:px-4 py-4 sm:py-6 safe-px" >
315- < Button variant = "default" onClick = { ( ) => setShowUpload ( true ) }
316- className = "cursor-pointer rounded-full gap-2 w-14 h-14 absolute
317- right-10 bottom-10 shadow-md" >
315+ < Button variant = "default" onClick = { ( ) => {
316+ if ( isDemo ) {
317+ alert ( "Demo mode: uploads are disabled." ) ;
318+ return ;
319+ }
320+ setShowUpload ( true ) ;
321+ } }
322+ className = "cursor-pointer rounded-full gap-2 w-14 h-14 absolute
323+ right-10 bottom-10 shadow-md"
324+ disabled = { isDemo } >
318325 < UploadIcon className = "h-5 w-5 sm:h-6 sm:w-6" />
319326 </ Button >
320327 { /* Breadcrumbs and Actions */ }
@@ -351,7 +358,7 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
351358 </ div >
352359 </ div >
353360
354- { hasWritePermission && (
361+ { ( hasWritePermission && ! isDemo ) && (
355362 < div className = "flex flex-col sm:flex-row gap-3" >
356363 < div className = "relative flex-1" >
357364 < Input
@@ -368,6 +375,24 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
368375 </ div >
369376 </ div >
370377 ) }
378+ { isDemo && (
379+ < div className = "flex flex-col sm:flex-row gap-3" >
380+ < div className = "relative flex-1" >
381+ < Input
382+ placeholder = "New folder name"
383+ value = ""
384+ onChange = { ( ) => { } }
385+ disabled
386+ />
387+ </ div >
388+ < div className = "flex items-center gap-2" >
389+ < Button onClick = { ( ) => alert ( "Demo mode: creating folders is disabled." ) } className = "gap-2" disabled >
390+ < FolderPlusIcon className = "h-4 w-4" />
391+ Create folder
392+ </ Button >
393+ </ div >
394+ </ div >
395+ ) }
371396 </ div >
372397
373398 { /* File List */ }
@@ -381,8 +406,8 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
381406 files = { data . files . filter ( ( f ) => f . href . toLowerCase ( ) . includes ( searchQuery . toLowerCase ( ) ) ) }
382407 onNavigate = { ( href : string ) => handleNavigate ( href ) }
383408 onDownload = { handleDownload }
384- onDelete = { hasDeletePermission ? handleDelete : undefined }
385- onRename = { hasWritePermission ? handleRename : undefined }
409+ onDelete = { hasDeletePermission && ! isDemo ? handleDelete : undefined }
410+ onRename = { hasWritePermission && ! isDemo ? handleRename : undefined }
386411 currentPath = { currentPath }
387412 serverUrl = { serverUrl }
388413 />
@@ -392,8 +417,8 @@ export function FileManager({ serverUrl, onLogout, initialData }: FileManagerPro
392417 files = { data . files . filter ( ( f ) => f . href . toLowerCase ( ) . includes ( searchQuery . toLowerCase ( ) ) ) }
393418 onNavigate = { ( href : string ) => handleNavigate ( href ) }
394419 onDownload = { handleDownload }
395- onDelete = { hasDeletePermission ? handleDelete : undefined }
396- onRename = { hasWritePermission ? handleRename : undefined }
420+ onDelete = { hasDeletePermission && ! isDemo ? handleDelete : undefined }
421+ onRename = { hasWritePermission && ! isDemo ? handleRename : undefined }
397422 currentPath = { currentPath }
398423 serverUrl = { serverUrl }
399424 />
0 commit comments