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) => (
+
+ ),
}),
];