From c66510f473d2320fa0d3fe41b446cd963e1e6191 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 27 Jun 2025 12:29:30 +0530 Subject: [PATCH] feat: completed the product sidebar --- .../utilities/ShouldWrapComponent.tsx | 20 + .../src/components/v2/Divider/Divider.tsx | 2 +- frontend/src/components/v2/Lottie/Lottie.tsx | 47 +- frontend/src/components/v2/Menu/Menu.tsx | 36 +- frontend/src/components/v2/index.tsx | 1 + frontend/src/hooks/index.ts | 1 + frontend/src/hooks/useLocalStorageState.ts | 70 ++ .../components/OrgSidebar/OrgSidebar.tsx | 18 +- .../layouts/ProjectLayout/ProjectLayout.tsx | 632 ++++++++---------- .../components/MenuIconButton/Copy.tsx | 121 ++++ .../MenuIconButton/MenuIconButton.tsx | 65 ++ .../components/MenuIconButton/index.tsx | 1 + .../SecretManagerLayout.tsx | 137 ++++ .../src/layouts/SecretManagerLayout/index.tsx | 1 + .../ProjectsPage/components/MyProjectView.tsx | 2 +- .../secret-manager/OverviewPage/route.tsx | 22 +- frontend/src/pages/secret-manager/layout.tsx | 8 +- 17 files changed, 749 insertions(+), 435 deletions(-) create mode 100644 frontend/src/components/utilities/ShouldWrapComponent.tsx create mode 100644 frontend/src/hooks/useLocalStorageState.ts create mode 100644 frontend/src/layouts/ProjectLayout/components/MenuIconButton/Copy.tsx create mode 100644 frontend/src/layouts/ProjectLayout/components/MenuIconButton/MenuIconButton.tsx create mode 100644 frontend/src/layouts/ProjectLayout/components/MenuIconButton/index.tsx create mode 100644 frontend/src/layouts/SecretManagerLayout/SecretManagerLayout.tsx create mode 100644 frontend/src/layouts/SecretManagerLayout/index.tsx diff --git a/frontend/src/components/utilities/ShouldWrapComponent.tsx b/frontend/src/components/utilities/ShouldWrapComponent.tsx new file mode 100644 index 000000000..f6503d35d --- /dev/null +++ b/frontend/src/components/utilities/ShouldWrapComponent.tsx @@ -0,0 +1,20 @@ +import { ReactNode, ComponentType } from "react"; + +type ShouldWrapProps> = { + children: ReactNode; + wrapper: ComponentType; + isWrapped?: boolean; +} & T; + +export const ShouldWrap = >({ + children, + wrapper: Wrapper, + isWrapped = false, + ...wrapperProps +}: ShouldWrapProps) => { + if (isWrapped) { + return {children}; + } + + return children; +}; diff --git a/frontend/src/components/v2/Divider/Divider.tsx b/frontend/src/components/v2/Divider/Divider.tsx index 39b0f84c5..a5b755eeb 100644 --- a/frontend/src/components/v2/Divider/Divider.tsx +++ b/frontend/src/components/v2/Divider/Divider.tsx @@ -7,7 +7,7 @@ interface IProps { export const Divider = ({ className }: IProps): JSX.Element => { return (
-