From 876ec492906f77ee4c18ee236ba2f30ddddb5d10 Mon Sep 17 00:00:00 2001 From: diogo464 Date: Sun, 24 Aug 2025 22:14:12 +0100 Subject: feat: add authentication checks for upload and create folder buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Check user authentication before opening file picker or create folder dialog - Display error toast message when user is not authenticated - Maintain existing functionality for authenticated users 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- frontend/components/drive/DriveDirectoryClient.tsx | 34 ++++++++++++++++++++-- frontend/components/drive/DriveDirectoryView.tsx | 3 ++ 2 files changed, 34 insertions(+), 3 deletions(-) (limited to 'frontend') diff --git a/frontend/components/drive/DriveDirectoryClient.tsx b/frontend/components/drive/DriveDirectoryClient.tsx index d238065..330c7a0 100644 --- a/frontend/components/drive/DriveDirectoryClient.tsx +++ b/frontend/components/drive/DriveDirectoryClient.tsx @@ -36,6 +36,7 @@ import { formatFileSize } from "@/lib/utils" import { DriveMoveDialog } from "./DriveMoveDialog" import { StorageUsage } from "./StorageUsage" import type { StorageData } from "@/lib/storage" +import type { UserAuth } from "@/lib/auth_types" function formatDate(timestamp: number): string { return new Date(timestamp * 1000).toISOString().split('T')[0] @@ -64,9 +65,10 @@ interface DriveDirectoryClientProps { files: DriveLsEntry[] breadcrumbs: Breadcrumb[] storageData: StorageData + userAuth: UserAuth } -export function DriveDirectoryClient({ path, files, breadcrumbs, storageData }: DriveDirectoryClientProps) { +export function DriveDirectoryClient({ path, files, breadcrumbs, storageData, userAuth }: DriveDirectoryClientProps) { const [selectedFiles, setSelectedFiles] = useState>(new Set()) const [renameDialogOpen, setRenameDialogOpen] = useState(false) const [infoDialogOpen, setInfoDialogOpen] = useState(false) @@ -414,6 +416,32 @@ export function DriveDirectoryClient({ path, files, breadcrumbs, storageData }: } } + const handleUploadButtonClick = () => { + if (!userAuth.isLoggedIn) { + toast({ + title: "Authentication required", + description: "User is not authenticated. Please log in to upload files.", + variant: "destructive" + }) + return + } + + fileInputRef.current?.click() + } + + const handleCreateFolderButtonClick = () => { + if (!userAuth.isLoggedIn) { + toast({ + title: "Authentication required", + description: "User is not authenticated. Please log in to create folders.", + variant: "destructive" + }) + return + } + + setCreateFolderDialogOpen(true) + } + return (
{/* Storage Info */} @@ -443,14 +471,14 @@ export function DriveDirectoryClient({ path, files, breadcrumbs, storageData }: