From ca802eab82181608bd7ac64282e60b2867524de2 Mon Sep 17 00:00:00 2001 From: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:02:33 +0300 Subject: [PATCH] Merge pull request #19892 from overleaf/ii-bs5-projects-geo-banners [web] BS5 projects page banners GitOrigin-RevId: f5ceccbb7009c010f2917e0c34b7d3f02d7511f1 --- .../notifications/ads/brl-banner.tsx | 35 ++++++++++-------- .../notifications/ads/inr-banner.tsx | 35 ++++++++++-------- .../notifications/ads/latam-banner.tsx | 35 ++++++++++-------- .../js/features/ui/components/ol/ol-modal.tsx | 37 ++++++++----------- 4 files changed, 76 insertions(+), 66 deletions(-) diff --git a/services/web/frontend/js/features/project-list/components/notifications/ads/brl-banner.tsx b/services/web/frontend/js/features/project-list/components/notifications/ads/brl-banner.tsx index c099f6c3fe..101497f5b4 100644 --- a/services/web/frontend/js/features/project-list/components/notifications/ads/brl-banner.tsx +++ b/services/web/frontend/js/features/project-list/components/notifications/ads/brl-banner.tsx @@ -1,8 +1,13 @@ import { useCallback, useEffect, useRef, useState } from 'react' import usePersistedState from '../../../../../shared/hooks/use-persisted-state' import * as eventTracking from '../../../../../infrastructure/event-tracking' -import { Modal, Button } from 'react-bootstrap' -import AccessibleModal from '../../../../../shared/components/accessible-modal' +import OLModal, { + OLModalBody, + OLModalFooter, + OLModalHeader, + OLModalTitle, +} from '@/features/ui/components/ol/ol-modal' +import OLButton from '@/features/ui/components/ol/ol-button' import { useTranslation } from 'react-i18next' export default function BRLBanner() { @@ -83,11 +88,11 @@ export default function BRLBanner() { } return ( - - - {t('latam_discount_modal_title')} - - + + + {t('latam_discount_modal_title')} + + - - - + + + {t('maybe_later')} - - + + {t('get_discounted_plan')} - - - + + + ) } diff --git a/services/web/frontend/js/features/project-list/components/notifications/ads/inr-banner.tsx b/services/web/frontend/js/features/project-list/components/notifications/ads/inr-banner.tsx index 4391dad30f..4a765e3dff 100644 --- a/services/web/frontend/js/features/project-list/components/notifications/ads/inr-banner.tsx +++ b/services/web/frontend/js/features/project-list/components/notifications/ads/inr-banner.tsx @@ -2,8 +2,13 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import usePersistedState from '../../../../../shared/hooks/use-persisted-state' import * as eventTracking from '../../../../../infrastructure/event-tracking' -import { Modal, Button } from 'react-bootstrap' -import AccessibleModal from '../../../../../shared/components/accessible-modal' +import OLModal, { + OLModalBody, + OLModalFooter, + OLModalHeader, + OLModalTitle, +} from '@/features/ui/components/ol/ol-modal' +import OLButton from '@/features/ui/components/ol/ol-button' export default function INRBanner() { const { t } = useTranslation() @@ -81,11 +86,11 @@ export default function INRBanner() { } return ( - - - {t('inr_discount_modal_title')} - - + + + {t('inr_discount_modal_title')} + + {t('inr_discount_modal_info')} - - - + + + {t('maybe_later')} - - + + {t('get_discounted_plan')} - - - + + + ) } diff --git a/services/web/frontend/js/features/project-list/components/notifications/ads/latam-banner.tsx b/services/web/frontend/js/features/project-list/components/notifications/ads/latam-banner.tsx index a8db73043c..9f1272fbe6 100644 --- a/services/web/frontend/js/features/project-list/components/notifications/ads/latam-banner.tsx +++ b/services/web/frontend/js/features/project-list/components/notifications/ads/latam-banner.tsx @@ -1,8 +1,13 @@ import { useCallback, useEffect, useRef, useState } from 'react' import usePersistedState from '../../../../../shared/hooks/use-persisted-state' import * as eventTracking from '../../../../../infrastructure/event-tracking' -import { Modal, Button } from 'react-bootstrap' -import AccessibleModal from '../../../../../shared/components/accessible-modal' +import OLModal, { + OLModalBody, + OLModalFooter, + OLModalHeader, + OLModalTitle, +} from '@/features/ui/components/ol/ol-modal' +import OLButton from '@/features/ui/components/ol/ol-button' import { useTranslation } from 'react-i18next' import getMeta from '@/utils/meta' @@ -123,11 +128,11 @@ export default function LATAMBanner() { } return ( - - - {t('latam_discount_modal_title')} - - + + + {t('latam_discount_modal_title')} + + - - - + + + {t('maybe_later')} - - + + {t('get_discounted_plan')} - - - + + + ) } diff --git a/services/web/frontend/js/features/ui/components/ol/ol-modal.tsx b/services/web/frontend/js/features/ui/components/ol/ol-modal.tsx index 39a79ef1c8..579e20cbfe 100644 --- a/services/web/frontend/js/features/ui/components/ol/ol-modal.tsx +++ b/services/web/frontend/js/features/ui/components/ol/ol-modal.tsx @@ -1,4 +1,11 @@ -import { Modal as BS5Modal } from 'react-bootstrap-5' +import { + Modal as BS5Modal, + ModalProps, + ModalHeaderProps, + ModalTitleProps, + ModalBody, + ModalFooterProps, +} from 'react-bootstrap-5' import { Modal as BS3Modal, ModalProps as BS3ModalProps, @@ -10,25 +17,25 @@ import { import BootstrapVersionSwitcher from '@/features/ui/components/bootstrap-5/bootstrap-version-switcher' import AccessibleModal from '@/shared/components/accessible-modal' -type OLModalProps = React.ComponentProps & { +type OLModalProps = ModalProps & { bs3Props?: Record size?: 'sm' | 'lg' onHide: () => void } -type OLModalHeaderProps = React.ComponentProps & { +type OLModalHeaderProps = ModalHeaderProps & { bs3Props?: Record } -type OLModalTitleProps = React.ComponentProps & { +type OLModalTitleProps = ModalTitleProps & { bs3Props?: Record } -type OLModalBodyProps = React.ComponentProps & { +type OLModalBodyProps = React.ComponentProps & { bs3Props?: Record } -type OLModalFooterProps = React.ComponentProps & { +type OLModalFooterProps = ModalFooterProps & { bs3Props?: Record } @@ -54,11 +61,7 @@ export default function OLModal({ children, ...props }: OLModalProps) { ) } -export function OLModalHeader({ - children, - closeButton, - ...props -}: OLModalHeaderProps) { +export function OLModalHeader({ children, ...props }: OLModalHeaderProps) { const { bs3Props, ...bs5Props } = props const bs3ModalProps: BS3ModalHeaderProps = { @@ -69,16 +72,8 @@ export function OLModalHeader({ } return ( - {children} - - } - bs5={ - - {children} - - } + bs3={{children}} + bs5={{children}} /> ) }
-
{t('inr_discount_modal_info')}