From 1ff489bd407df9cd064a6f4208d4905a4381b8fd Mon Sep 17 00:00:00 2001 From: Tusha Date: Wed, 2 Oct 2024 23:28:56 +0300 Subject: [PATCH] (fix) O3-3896: Tutorials modal should use a standard Carbon modal component (#20) --- e2e/specs/onboarding-test.spec.ts | 2 +- src/tutorial/modal.component.tsx | 10 +++++---- src/tutorial/styles.scss | 34 +++++++++++++++++++++++++++++++ src/tutorial/tutorial.tsx | 1 + 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/e2e/specs/onboarding-test.spec.ts b/e2e/specs/onboarding-test.spec.ts index 7c9903e..5e60b85 100644 --- a/e2e/specs/onboarding-test.spec.ts +++ b/e2e/specs/onboarding-test.spec.ts @@ -28,7 +28,7 @@ test('Basic Walkthrough', async ({ page }) => { await page .locator('li') .filter({ hasText: 'Basic Overview' }) - .locator('button', { hasText: 'Walkthrough' }) + .locator('a', { hasText: 'Walkthrough' }) .click(); }); diff --git a/src/tutorial/modal.component.tsx b/src/tutorial/modal.component.tsx index ccdf306..3f597cd 100644 --- a/src/tutorial/modal.component.tsx +++ b/src/tutorial/modal.component.tsx @@ -3,7 +3,8 @@ import { useTranslation } from 'react-i18next'; import { useConfig, useAppContext, navigate } from '@openmrs/esm-framework'; import styles from './styles.scss'; import { type TutorialContext } from '../types'; -import { ModalHeader, ModalBody, Button } from '@carbon/react'; +import { ModalHeader, ModalBody, Link } from '@carbon/react'; +import { ArrowRight } from '@carbon/react/icons'; const TutorialModal = ({ open, onClose }) => { const { t } = useTranslation(); @@ -39,7 +40,7 @@ const TutorialModal = ({ open, onClose }) => { return ( - +

{t('modalDescription', 'Find walkthroughs and video tutorials on some of the core features of OpenMRS.')}

@@ -50,9 +51,10 @@ const TutorialModal = ({ open, onClose }) => {
  • {tutorial.title}

    {tutorial.description}

    - +
  • ))} diff --git a/src/tutorial/styles.scss b/src/tutorial/styles.scss index 1c13945..594a3e5 100644 --- a/src/tutorial/styles.scss +++ b/src/tutorial/styles.scss @@ -1,5 +1,6 @@ @use '@carbon/styles/scss/spacing'; @use '@carbon/styles/scss/type'; +@use '@carbon/layout'; @import '~@openmrs/esm-styleguide/src/vars'; .description { @@ -26,5 +27,38 @@ @include type.type-style('body-compact-01'); } + .tutorialLink { + margin-bottom: spacing.$spacing-04; + margin-top: spacing.$spacing-04; + cursor: pointer; + } + } +} + +.modalHeader { + :global { + .cds--modal-close-button { + position: absolute; + inset-block-start: 0; + inset-inline-end: 0; + margin: 0; + margin-top: calc(-1 * #{layout.$spacing-05}); + } + + .cds--modal-close { + background-color: rgba(0, 0, 0, 0); + + &:hover { + background-color: var(--cds-layer-hover); + } + } + + .cds--popover--left > .cds--popover > .cds--popover-content { + transform: translate(-4rem, 0.85rem); + } + + .cds--popover--left > .cds--popover > .cds--popover-caret { + transform: translate(-3.75rem, 1.25rem); + } } } diff --git a/src/tutorial/tutorial.tsx b/src/tutorial/tutorial.tsx index e02e8d0..a148bf2 100644 --- a/src/tutorial/tutorial.tsx +++ b/src/tutorial/tutorial.tsx @@ -8,6 +8,7 @@ const Tutorial = () => { const handleOpenModal = () => { const dispose = showModal('tutorial-modal', { onClose: () => dispose(), + size: 'sm', }); };