diff --git a/apps/web/src/components/ContextMenu/ContextMenu.tsx b/apps/web/src/components/ContextMenu/ContextMenu.tsx index 84430483..11e34a28 100644 --- a/apps/web/src/components/ContextMenu/ContextMenu.tsx +++ b/apps/web/src/components/ContextMenu/ContextMenu.tsx @@ -1,11 +1,149 @@ +import { Folder2, MusicNoteBeamed } from "@styled-icons/bootstrap"; import { EllipsisHorizontal } from "@styled-icons/ionicons-sharp"; +import { NestedMenus, StatefulMenu } from "baseui/menu"; +import { StatefulPopover } from "baseui/popover"; -function ContextMenu() { +export type ContextMenuProps = { + file: { + id: string; + name: string; + type: string; + }; +}; + +function ContextMenu(props: ContextMenuProps) { + const { file } = props; return ( <> -
- -
+ ( +
+
+
+ {file.type == "folder" && ( +
+ +
+ )} + {file.type !== "folder" && ( +
+ +
+ )} +
+
+ {file.name} +
+
+ + { + console.log(`Selected item: ${item.label}`); + close(); + }} + overrides={{ + List: { + style: { + boxShadow: "none", + backgroundColor: "var(--color-background)", + }, + }, + ListItem: { + style: { + backgroundColor: "var(--color-background)", + color: "var(--color-text)", + ":hover": { + backgroundColor: "var(--color-menu-hover)", + }, + }, + }, + Option: { + props: { + getChildMenu: (item: { label: string }) => { + if (item.label === "Add to Playlist") { + return ( +
+ +
+ ); + } + return null; + }, + }, + }, + }} + /> +
+
+ )} + overrides={{ + Inner: { + style: { + backgroundColor: "var(--color-background)", + }, + }, + }} + > +
+ +
+
); } diff --git a/apps/web/src/pages/dropbox/Dropbox.tsx b/apps/web/src/pages/dropbox/Dropbox.tsx index cb6d2971..23d244ed 100644 --- a/apps/web/src/pages/dropbox/Dropbox.tsx +++ b/apps/web/src/pages/dropbox/Dropbox.tsx @@ -70,7 +70,15 @@ const Dropbox = (props: DropboxProps) => { }), columnHelper.accessor("name", { header: "", - cell: () => , + cell: (info) => ( + + ), }), ]; diff --git a/apps/web/src/pages/googledrive/GoogleDrive.tsx b/apps/web/src/pages/googledrive/GoogleDrive.tsx index d9422607..124635f8 100644 --- a/apps/web/src/pages/googledrive/GoogleDrive.tsx +++ b/apps/web/src/pages/googledrive/GoogleDrive.tsx @@ -57,7 +57,15 @@ const GoogleDrive = (props: GoogleDriveProps) => { }), columnHelper.accessor("name", { header: "", - cell: () => , + cell: (info) => ( + + ), }), ];