From 0f2f53d3dbb1bee500308f7911f98a4c859cad43 Mon Sep 17 00:00:00 2001 From: gmeigniez-pass <139768952+gmeigniez-pass@users.noreply.github.com> Date: Thu, 6 Feb 2025 11:35:02 +0100 Subject: [PATCH] (PC-34260)[PRO] feat: Add title and footer props to Dialog and prevent closing when clicking on an eleemnt on top of the content. --- .../DialogBuilder/DialogBuilder.module.scss | 19 ++++- .../DialogBuilder/DialogBuilder.spec.tsx | 76 +++++++++++++++++ .../DialogBuilder/DialogBuilder.stories.tsx | 82 ++++++++++++++++++- .../ui-kit/DialogBuilder/DialogBuilder.tsx | 51 +++++++++++- 4 files changed, 221 insertions(+), 7 deletions(-) create mode 100644 pro/src/ui-kit/DialogBuilder/DialogBuilder.spec.tsx diff --git a/pro/src/ui-kit/DialogBuilder/DialogBuilder.module.scss b/pro/src/ui-kit/DialogBuilder/DialogBuilder.module.scss index 912af8c366f..47f5d2e4c8b 100644 --- a/pro/src/ui-kit/DialogBuilder/DialogBuilder.module.scss +++ b/pro/src/ui-kit/DialogBuilder/DialogBuilder.module.scss @@ -1,6 +1,7 @@ @use "styles/mixins/_rem.scss" as rem; @use "styles/variables/_z-index.scss" as zIndex; @use "styles/mixins/_size.scss" as size; +@use "styles/mixins/_fonts.scss" as fonts; $drawer-width: rem.torem(684px); $animation-duration: 0.15s; @@ -26,6 +27,22 @@ $animation-timing-function: ease-in-out; } } +.dialog-builder-title { + @include fonts.title3; +} + +.dialog-builder-section { + min-height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.dialog-builder-footer { + border-top: rem.torem(1px) solid var(--color-grey-medium); + padding-top: rem.torem(24px); +} + .dialog-builder-overlay { background-color: rgb(0 0 0 / 33%); display: grid; @@ -61,10 +78,10 @@ $animation-timing-function: ease-in-out; .dialog-builder-overlay-drawer > .dialog-builder-content { border-radius: 0; - height: 100vh; width: $drawer-width; max-width: 100vw; margin: 0; + height: 100%; @media not (prefers-reduced-motion) { &[data-state="open"] { diff --git a/pro/src/ui-kit/DialogBuilder/DialogBuilder.spec.tsx b/pro/src/ui-kit/DialogBuilder/DialogBuilder.spec.tsx new file mode 100644 index 00000000000..62602127256 --- /dev/null +++ b/pro/src/ui-kit/DialogBuilder/DialogBuilder.spec.tsx @@ -0,0 +1,76 @@ +import * as Dialog from '@radix-ui/react-dialog' +import { render, screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' + +import { Button } from 'ui-kit/Button/Button' +import { ButtonVariant } from 'ui-kit/Button/types' + +import { DialogBuilder, DialogBuilderProps } from './DialogBuilder' + +const defaultProps: DialogBuilderProps = { + children:
Dialog content
, + title: 'Dialog title', + trigger: , + footer: ( +lorem ipsum dolor sit amet
> ), }, } + +export const DrawerWithLongContent: StoryObj+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam + blandit blandit purus, at suscipit arcu euismod lacinia. Suspendisse + sed porttitor arcu, nec consequat sem. Integer eget tincidunt lacus. + Nam luctus varius est a aliquam. Maecenas congue turpis a libero + pellentesque commodo a in nulla. Aliquam erat volutpat. Morbi non arcu + elit. Maecenas dictum at nunc nec dapibus. Donec sollicitudin nisi sed + cursus lobortis. Ut arcu odio, varius at elit a, pellentesque + scelerisque elit. Suspendisse potenti. Nullam malesuada dolor non + iaculis euismod. Praesent vel enim ac eros consectetur tempus. Donec + eget nibh nisl. +
++ Praesent tempor elementum enim vitae dapibus. Nunc consectetur finibus + orci, vel venenatis nisi commodo lacinia. Donec suscipit nibh non + pharetra porttitor. In nec arcu ultrices, consequat ex vel, + scelerisque eros. Integer porttitor ipsum et urna suscipit, vel + hendrerit orci lacinia. In ut facilisis tortor. Suspendisse luctus + neque a odio vulputate malesuada ut sit amet nulla. Nam nec ipsum non + mauris mollis rutrum. Phasellus vel sem volutpat, pellentesque augue + ut, rhoncus eros. Quisque eu tellus ac lorem ornare iaculis. +
++ Morbi accumsan maximus justo, eu varius nunc posuere a. Fusce sed + lacus a neque rutrum laoreet. Fusce varius bibendum interdum. Nunc + consequat ex ac nisi porta ultricies. Curabitur sodales cursus purus, + id efficitur orci condimentum eget. Etiam luctus massa id velit + volutpat tincidunt. Ut at risus arcu. Nunc semper lacus in sem rhoncus + elementum. Cras imperdiet vitae magna scelerisque ornare. Nam nec + cursus urna. +
++ Aliquam dictum luctus lectus ac dignissim. Cras elementum interdum + scelerisque. Cras consectetur purus ex, vel rutrum ante tincidunt non. + Sed sapien purus, dignissim non odio sed, efficitur convallis libero. + Proin tristique tellus fermentum nisl posuere, sed accumsan dui + vulputate. Curabitur consequat rhoncus lacus sit amet consequat. + Aliquam maximus, massa quis auctor lacinia, ipsum magna finibus quam, + id hendrerit tortor tortor sit amet tortor. Mauris sit amet + scelerisque dolor. Nulla facilisi. Cras a sapien vitae dolor euismod + posuere in ut sem. Suspendisse vel nibh tortor. Quisque tempus a ex + vitae auctor. Donec in viverra leo. Nam eu gravida quam, et feugiat + metus. Proin egestas ipsum eget augue porttitor lobortis. Donec vitae + quam dui. +
+