From fdda358ab192ef169f6b15e10d2c45cc48d4aa29 Mon Sep 17 00:00:00 2001 From: Varun Raj Date: Sun, 5 Jan 2025 15:48:28 +0530 Subject: [PATCH] feat: option to bulk delete albums Signed-off-by: Varun Raj --- bun.lockb | Bin 456030 -> 474668 bytes package.json | 2 + src/components/layouts/RootLayout.tsx | 2 +- src/components/ui/alert-dialog.tsx | 207 ++++++++++++++++++++++++++ src/components/ui/toaster.tsx | 33 ---- src/config/routes.ts | 2 +- src/handlers/api/album.handler.ts | 6 +- src/pages/albums/index.tsx | 76 +++++++--- src/pages/api/albums/delete.ts | 50 +++++++ 9 files changed, 321 insertions(+), 57 deletions(-) create mode 100644 src/components/ui/alert-dialog.tsx delete mode 100644 src/components/ui/toaster.tsx create mode 100644 src/pages/api/albums/delete.ts diff --git a/bun.lockb b/bun.lockb index 2ad086aad25a7d3fabbfb7a111c626f668dc7d56..3d7d6135e457cfe889195692a1e2d0a496bf5f04 100755 GIT binary patch delta 103865 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 z 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 delta 93866 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 Vx?G|MIP4|*`-dD6i9SA-{{mU%1h@bI diff --git a/package.json b/package.json index ced96fc..d6f629f 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dependencies": { "@google/generative-ai": "^0.21.0", "@radix-ui/react-accordion": "^1.2.1", + "@radix-ui/react-alert-dialog": "^1.1.4", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-checkbox": "^1.1.2", "@radix-ui/react-dialog": "^1.1.1", @@ -60,6 +61,7 @@ "react-day-picker": "9.0.8", "react-dom": "^18", "react-grid-gallery": "^1.0.1", + "react-hot-toast": "^2.5.1", "react-leaflet": "^4.2.1", "react-mentions": "^4.4.10", "react-query": "^3.39.3", diff --git a/src/components/layouts/RootLayout.tsx b/src/components/layouts/RootLayout.tsx index 3eab240..8f56340 100644 --- a/src/components/layouts/RootLayout.tsx +++ b/src/components/layouts/RootLayout.tsx @@ -1,6 +1,5 @@ import { IUser } from "@/types/user"; import Sidebar from "../shared/Sidebar"; -import { Toaster } from "../ui/toaster"; import { ReactNode, useEffect, useState } from "react"; import { getMe } from "@/handlers/api/user.handler"; import UserContext from "@/contexts/CurrentUserContext"; @@ -12,6 +11,7 @@ import { LoginForm } from "../auth/LoginForm"; import { useConfig } from "@/contexts/ConfigContext"; import { queryClient } from "@/config/rQuery"; import { QueryClientProvider } from "react-query"; +import { Toaster } from "react-hot-toast"; type RootLayoutProps = { children: ReactNode; diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..d898f67 --- /dev/null +++ b/src/components/ui/alert-dialog.tsx @@ -0,0 +1,207 @@ +import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog' +import * as React from 'react' + +import { ButtonProps, buttonVariants } from '@/components/ui/button' +import { cn } from '@/lib/utils' +import { useImperativeHandle, useState } from 'react' + +const AlertDialogRoot = AlertDialogPrimitive.Root + +const AlertDialogTrigger = AlertDialogPrimitive.Trigger + +const AlertDialogPortal = AlertDialogPrimitive.Portal + +const AlertDialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName + +const AlertDialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + +)) +AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName + +const AlertDialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogHeader.displayName = 'AlertDialogHeader' + +const AlertDialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogFooter.displayName = 'AlertDialogFooter' + +const AlertDialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName + +const AlertDialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogDescription.displayName = + AlertDialogPrimitive.Description.displayName + +const AlertDialogAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + variant?: ButtonProps['variant'] + } +>(({ className, variant, ...props }, ref) => ( + +)) +AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName + +const AlertDialogCancel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName + + +export interface INewChangelogButtonActions { + open: () => void +} +interface AlertDialogProps extends AlertDialogPrimitive.AlertDialogProps { + children: React.ReactNode + title: string + description: string + onConfirm: () => void | Promise + onCancel: () => void | Promise + variant?: ButtonProps['variant'] + asChild?: boolean +} + +const AlertDialog = React.forwardRef>(({ + children, + title, + description, + onConfirm, + onCancel, + variant, + asChild, + ...props +}, ref) => { + const [loading, setLoading] = useState(false) + const [open, setOpen] = useState(false) + + useImperativeHandle(ref, () => ({ + open: () => setOpen(true) + })) + + const handleConfirm = async () => { + setLoading(true) + if (onConfirm) { + await onConfirm() + } + setLoading(false) + setOpen(false) + } + + return ( + + {children} + + + {title} + {description} + + + Cancel + + Confirm + + + + + ) +}) + +AlertDialog.displayName = 'AlertDialog' + +export { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogOverlay, + AlertDialogPortal, + AlertDialogTitle, + AlertDialogTrigger +} diff --git a/src/components/ui/toaster.tsx b/src/components/ui/toaster.tsx deleted file mode 100644 index a2209ba..0000000 --- a/src/components/ui/toaster.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - Toast, - ToastClose, - ToastDescription, - ToastProvider, - ToastTitle, - ToastViewport, -} from "@/components/ui/toast" -import { useToast } from "@/components/ui/use-toast" - -export function Toaster() { - const { toasts } = useToast() - - return ( - - {toasts.map(function ({ id, title, description, action, ...props }) { - return ( - -
- {title && {title}} - {description && ( - {description} - )} -
- {action} - -
- ) - })} - -
- ) -} diff --git a/src/config/routes.ts b/src/config/routes.ts index 4c417a2..ca1db88 100644 --- a/src/config/routes.ts +++ b/src/config/routes.ts @@ -26,7 +26,7 @@ export const ALBUM_ASSETS_PATH = (id: string) => BASE_API_ENDPOINT + "/albums/" export const CREATE_ALBUM_PATH = BASE_PROXY_ENDPOINT + "/albums"; export const ADD_ASSETS_ALBUMS_PATH = (id: string) => BASE_PROXY_ENDPOINT + "/albums/" + id + "/assets"; export const SHARE_ALBUMS_PATH = BASE_API_ENDPOINT + "/albums/share"; - +export const DELETE_ALBUMS_PATH = BASE_API_ENDPOINT + "/albums/delete"; // Assets export const LIST_MISSING_LOCATION_DATES_PATH = BASE_API_ENDPOINT + "/assets/missing-location-dates"; export const LIST_MISSING_LOCATION_ALBUMS_PATH = BASE_API_ENDPOINT + "/assets/missing-location-albums"; diff --git a/src/handlers/api/album.handler.ts b/src/handlers/api/album.handler.ts index 4554601..6cb08d7 100644 --- a/src/handlers/api/album.handler.ts +++ b/src/handlers/api/album.handler.ts @@ -1,4 +1,4 @@ -import { ADD_ASSETS_ALBUMS_PATH, ALBUM_ASSETS_PATH, ALBUM_INFO_PATH, ALBUM_PEOPLE_PATH, CREATE_ALBUM_PATH, LIST_ALBUMS_PATH, LIST_POTENTIAL_ALBUMS_ASSETS_PATH, LIST_POTENTIAL_ALBUMS_DATES_PATH, SHARE_ALBUMS_PATH } from "@/config/routes"; +import { ADD_ASSETS_ALBUMS_PATH, ALBUM_ASSETS_PATH, ALBUM_INFO_PATH, ALBUM_PEOPLE_PATH, CREATE_ALBUM_PATH, DELETE_ALBUMS_PATH, LIST_ALBUMS_PATH, LIST_POTENTIAL_ALBUMS_ASSETS_PATH, LIST_POTENTIAL_ALBUMS_DATES_PATH, SHARE_ALBUMS_PATH } from "@/config/routes"; import { cleanUpAsset } from "@/helpers/asset.helper"; import API from "@/lib/api"; import { IAlbumCreate } from "@/types/album"; @@ -48,4 +48,8 @@ export const createAlbum = async (albumData: IAlbumCreate) => { export const shareAlbums = async (albums: { albumId: string, allowDownload: boolean, allowUpload: boolean, showMetadata: boolean }[]) => { return API.post(SHARE_ALBUMS_PATH, { albums }); +} + +export const deleteAlbums = async (albumIds: string[]) => { + return API.delete(DELETE_ALBUMS_PATH, { albumIds }); } \ No newline at end of file diff --git a/src/pages/albums/index.tsx b/src/pages/albums/index.tsx index 182d2ff..1cc340b 100644 --- a/src/pages/albums/index.tsx +++ b/src/pages/albums/index.tsx @@ -2,16 +2,18 @@ import PageLayout from '@/components/layouts/PageLayout' import Header from '@/components/shared/Header' import Loader from '@/components/ui/loader' import { useConfig } from '@/contexts/ConfigContext' -import { listAlbums } from '@/handlers/api/album.handler' +import { deleteAlbums, listAlbums } from '@/handlers/api/album.handler' import { IAlbum } from '@/types/album' import React, { useEffect, useMemo, useRef, useState } from 'react' import AlbumThumbnail from '@/components/albums/list/AlbumThumbnail' import { Button } from '@/components/ui/button' import { Select, SelectItem, SelectContent, SelectTrigger, SelectValue } from '@/components/ui/select' import { useRouter } from 'next/router' -import { Share, SortAsc, SortDesc } from 'lucide-react' +import { Share, SortAsc, SortDesc, Trash } from 'lucide-react' import { Input } from '@/components/ui/input' import AlbumShareDialog, { IAlbumShareDialogRef } from '@/components/albums/share/AlbumShareDialog' +import { AlertDialog } from '@/components/ui/alert-dialog' +import toast from 'react-hot-toast' const SORT_BY_OPTIONS = [ { value: 'lastPhotoDate', label: 'Last Photo Date' }, @@ -33,10 +35,12 @@ export default function AlbumListPage() { const [errorMessage, setErrorMessage] = useState('') const [selectedAlbumsIds, setSelectedAlbumsIds] = useState([]) const albumShareDialogRef = useRef(null); + const [deleting, setDeleting] = useState(false) const selectedSortBy = useMemo(() => SORT_BY_OPTIONS.find((option) => option.value === sortBy), [sortBy]) - const searchedAlbums = useMemo(() => albums.filter((album) => album.albumName.toLowerCase().includes(search.toLowerCase())), [albums, search]) + const searchedAlbums = useMemo(() => albums.filter((album) => album.albumName.toLowerCase().includes(search.toLowerCase())), [albums, search]) + const fetchAlbums = async () => { setLoading(true) listAlbums({ @@ -67,6 +71,18 @@ export default function AlbumListPage() { } } + const handleDeleteAlbums = async () => { + setDeleting(true) + return deleteAlbums(selectedAlbumsIds).then(() => { + setSelectedAlbumsIds([]) + setAlbums(albums.filter((album) => !selectedAlbumsIds.includes(album.id))) + toast.success(`Deleted ${selectedAlbumsIds.length} albums`) + }).catch((error) => { + toast.error(error.message) + }).finally(() => { + setDeleting(false) + }) + } const renderContent = () => { if (loading) { @@ -78,11 +94,11 @@ export default function AlbumListPage() { return (
{searchedAlbums.map((album) => ( - handleSelect(checked, album.id)} + onSelect={(checked) => handleSelect(checked, album.id)} /> ))}
@@ -95,26 +111,44 @@ export default function AlbumListPage() { rightComponent={
{!!selectedAlbumsIds.length && ( - + <> + + + + + + )} setSearch(e.target.value)} />