From b7aaa53a8a61d9348dac2acabaec3b987d9b5f0c Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 31 Jan 2023 21:02:20 -0500 Subject: [PATCH] chore: adds default drawer header --- .../elements/DocumentDrawer/index.tsx | 2 + .../components/elements/Drawer/index.scss | 38 ++++++++ .../components/elements/Drawer/index.tsx | 30 ++++++- src/admin/components/elements/Drawer/types.ts | 3 + .../elements/ListDrawer/DrawerContent.tsx | 38 ++++---- .../components/elements/ListDrawer/index.tsx | 2 + .../Blocks/BlocksDrawer/index.scss | 9 -- .../field-types/Blocks/BlocksDrawer/index.tsx | 87 +++++++++---------- 8 files changed, 134 insertions(+), 75 deletions(-) diff --git a/src/admin/components/elements/DocumentDrawer/index.tsx b/src/admin/components/elements/DocumentDrawer/index.tsx index c9f7c96248..1693e43bff 100644 --- a/src/admin/components/elements/DocumentDrawer/index.tsx +++ b/src/admin/components/elements/DocumentDrawer/index.tsx @@ -59,6 +59,8 @@ export const DocumentDrawer: React.FC = (props) => { diff --git a/src/admin/components/elements/Drawer/index.scss b/src/admin/components/elements/Drawer/index.scss index cedaa7983a..5a19c07945 100644 --- a/src/admin/components/elements/Drawer/index.scss +++ b/src/admin/components/elements/Drawer/index.scss @@ -72,8 +72,46 @@ } } + &__header { + display: flex; + margin-top: base(2.5); + margin-bottom: base(1); + width: 100%; + + &__title { + margin: 0; + flex-grow: 1; + } + + &__close { + border: 0; + background-color: transparent; + padding: 0; + cursor: pointer; + overflow: hidden; + width: base(1); + height: base(1); + + svg { + width: base(2.75); + height: base(2.75); + position: relative; + left: base(-.825); + top: base(-.825); + + .stroke { + stroke-width: 2px; + vector-effect: non-scaling-stroke; + } + } + } + } @include mid-break { + &__header { + margin-top: base(1.5); + } + &__close { width: base(1); } diff --git a/src/admin/components/elements/Drawer/index.tsx b/src/admin/components/elements/Drawer/index.tsx index 053f98ca7c..b2c37c0d86 100644 --- a/src/admin/components/elements/Drawer/index.tsx +++ b/src/admin/components/elements/Drawer/index.tsx @@ -4,7 +4,9 @@ import { useWindowInfo } from '@faceless-ui/window-info'; import { useTranslation } from 'react-i18next'; import { Props, TogglerProps } from './types'; import { EditDepthContext, useEditDepth } from '../../utilities/EditDepth'; +import { Gutter } from '../Gutter'; import './index.scss'; +import X from '../../icons/X'; const baseClass = 'drawer'; @@ -50,6 +52,9 @@ export const Drawer: React.FC = ({ slug, children, className, + header, + title, + gutter = true, }) => { const { t } = useTranslation('general'); const { closeModal, modalState } = useModal(); @@ -95,11 +100,32 @@ export const Drawer: React.FC = ({ aria-label={t('close')} />
-
+ + {header && header} + {header === undefined && ( +
+

+ {title} +

+ +
+ )} {children}
-
+
); diff --git a/src/admin/components/elements/Drawer/types.ts b/src/admin/components/elements/Drawer/types.ts index 65e58ccbb1..5df8340177 100644 --- a/src/admin/components/elements/Drawer/types.ts +++ b/src/admin/components/elements/Drawer/types.ts @@ -4,6 +4,9 @@ export type Props = { slug: string children: React.ReactNode className?: string + title?: string + header?: React.ReactNode + gutter?: boolean } export type TogglerProps = HTMLAttributes & { diff --git a/src/admin/components/elements/ListDrawer/DrawerContent.tsx b/src/admin/components/elements/ListDrawer/DrawerContent.tsx index 112fb3f1c9..1751db6540 100644 --- a/src/admin/components/elements/ListDrawer/DrawerContent.tsx +++ b/src/admin/components/elements/ListDrawer/DrawerContent.tsx @@ -252,13 +252,13 @@ const DrawerContent: React.FC {hasCreatePermission && ( - - - {t('general:createNew')} - - + + + {t('general:createNew')} + + )}