diff --git a/frontend/src/components/Playlists.tsx b/frontend/src/components/Playlists.tsx index 2dc648a0..5870281f 100644 --- a/frontend/src/components/Playlists.tsx +++ b/frontend/src/components/Playlists.tsx @@ -21,8 +21,13 @@ import { import { CSS } from "@dnd-kit/utilities"; import { AlertTriangle, + ArrowDown, + ArrowDownToLine, + ArrowUp, + ArrowUpToLine, Check, ExternalLink, + FolderInput, GripVertical, ListPlus, Pencil, @@ -31,9 +36,10 @@ import { RotateCcw, Trash2, Upload, + X, Youtube, } from "lucide-react"; -import { api, HttpError, type Video } from "../lib/api"; +import { api, type Playlist, type Video } from "../lib/api"; import { notify } from "../lib/notifications"; import { notifyYouTubeActionError } from "../lib/youtubeErrors"; import { playlistName } from "../lib/playlistName"; @@ -43,10 +49,14 @@ import { formatRuntime } from "../lib/format"; import { applyView, sameOrder } from "../lib/playlistView"; const PlayerModal = lazy(() => import("./PlayerModal")); import { Button } from "./ui/Button"; +import { type ActionMenuItem } from "./ui/ActionMenu"; +import { ContextMenu } from "./ui/ContextMenu"; +import { useContextMenu } from "./ui/useContextMenu"; import UndoToolbar from "./ui/UndoToolbar"; import { PageToolbar } from "./ui/PageShell"; -import { useChoice, useConfirm } from "./ConfirmProvider"; -import { usePlaylists, usePlaylistsActions } from "./PlaylistsProvider"; +import { useConfirm } from "./ConfirmProvider"; +import { usePlaylistActions } from "./usePlaylistActions"; +import { usePlaylists } from "./PlaylistsProvider"; import { useMe } from "../lib/useMe"; import { ColumnHead, @@ -88,11 +98,16 @@ function Row({ columns, dragDisabled, dragHint, + menuProps, }: { video: Video; columns: Column