From 7a0d89fa4e7c320e3f8eb5ab7df48cfb3c3a3956 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Thu, 4 Jun 2026 10:04:46 +0200 Subject: [PATCH] feat: Enhance Content, Media, and Snippets dashboards --- .gitignore | 2 + src/components/shadcn/Dropdown.tsx | 12 +- .../components/Common/ChoiceButton.tsx | 7 +- .../components/Common/DateField.tsx | 5 +- .../components/Contents/ContentActions.tsx | 144 +++++------ .../components/Contents/Contents.tsx | 20 ++ .../components/Contents/CustomActions.tsx | 8 +- .../components/Contents/FooterActions.tsx | 68 +++-- .../components/Contents/Item.tsx | 238 +++++++++++------- .../components/Contents/List.tsx | 9 +- .../components/Contents/Overview.tsx | 40 +-- .../components/Contents/PinnedItem.tsx | 93 ++++--- .../components/Contents/Status.tsx | 57 +++-- .../components/Contents/Tag.tsx | 19 +- .../components/Contents/Tags.tsx | 44 +++- .../components/Filters/LanguageFilter.tsx | 9 +- .../components/Header/ActionsBar.tsx | 7 +- .../components/Header/Breadcrumb.tsx | 8 +- .../components/Header/Filter.tsx | 9 +- .../components/Header/FoldersFilter.tsx | 6 +- .../components/Header/Grouping.tsx | 6 +- .../components/Header/Header.tsx | 83 +++--- .../components/Header/Navigation.tsx | 62 +++-- .../components/Header/Pagination.tsx | 69 +++-- .../components/Header/PaginationStatus.tsx | 20 +- .../Header/RefreshDashboardData.tsx | 2 +- .../components/Header/Searchbox.tsx | 2 +- .../components/Header/Sorting.tsx | 1 + .../components/Header/Tab.tsx | 2 +- .../components/Header/ViewSwitch.tsx | 44 ++-- .../components/Layout/SponsorMsg.tsx | 63 +++-- .../components/Media/CustomActions.tsx | 6 +- .../components/Media/FolderCreation.tsx | 9 +- .../components/Media/FooterActions.tsx | 31 +-- .../components/Media/Item.tsx | 113 +++++---- .../components/Media/ItemMenu.tsx | 38 ++- .../components/Media/Media.tsx | 13 + .../components/Media/MediaHeaderBottom.tsx | 7 +- .../components/Media/MediaHeaderTop.tsx | 27 +- .../components/Menu/MenuButton.tsx | 47 ++++ .../components/SnippetsView/FooterActions.tsx | 18 +- .../components/SnippetsView/Item.tsx | 18 +- .../components/SnippetsView/ItemMenu.tsx | 32 ++- .../components/SnippetsView/Snippets.tsx | 35 ++- src/dashboardWebView/hooks/usePages.tsx | 3 + .../hooks/useRelativeTime.tsx | 37 +++ .../state/atom/LastSyncAtom.ts | 6 + src/dashboardWebView/state/atom/index.ts | 1 + src/dashboardWebView/styles.css | 81 ++++++ src/panelWebView/components/Actions.tsx | 1 + 50 files changed, 1073 insertions(+), 609 deletions(-) create mode 100644 src/dashboardWebView/hooks/useRelativeTime.tsx create mode 100644 src/dashboardWebView/state/atom/LastSyncAtom.ts diff --git a/.gitignore b/.gitignore index 94035d25..8838637e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ e2e/sample localization.log localization.md .env + +.claude \ No newline at end of file diff --git a/src/components/shadcn/Dropdown.tsx b/src/components/shadcn/Dropdown.tsx index 1161f034..26e6c77d 100644 --- a/src/components/shadcn/Dropdown.tsx +++ b/src/components/shadcn/Dropdown.tsx @@ -25,7 +25,7 @@ const DropdownMenuSubTrigger = React.forwardRef< (({ className, ...props }, ref) => ( )) diff --git a/src/dashboardWebView/components/Common/ChoiceButton.tsx b/src/dashboardWebView/components/Common/ChoiceButton.tsx index 215ea934..aec49e20 100644 --- a/src/dashboardWebView/components/Common/ChoiceButton.tsx +++ b/src/dashboardWebView/components/Common/ChoiceButton.tsx @@ -1,4 +1,4 @@ -import { ChevronDownIcon } from '@heroicons/react/24/outline'; +import { ChevronDownIcon, PlusIcon } from '@heroicons/react/24/outline'; import * as React from 'react'; import { MenuItem } from '../Menu'; import * as l10n from '@vscode/l10n'; @@ -28,11 +28,12 @@ export const ChoiceButton: React.FunctionComponent = ({ @@ -40,7 +41,7 @@ export const ChoiceButton: React.FunctionComponent = ({ {choices.length > 0 && ( {l10n.t(LocalizationKey.dashboardCommonChoiceButtonOpen)}