chore: correctly close modals and show toast after creating note from shared text
This commit is contained in:
@@ -6,6 +6,7 @@ import MobileModalAction from '../Modal/MobileModalAction'
|
||||
import { useModalAnimation } from '../Modal/useModalAnimation'
|
||||
import MobileModalHeader from '../Modal/MobileModalHeader'
|
||||
import { mergeRefs } from '@/Hooks/mergeRefs'
|
||||
import { DialogWithClose } from '@/Utils/CloseOpenModalsAndPopovers'
|
||||
|
||||
const DisableScroll = () => {
|
||||
useDisableBodyScrollOnMobile()
|
||||
@@ -13,8 +14,6 @@ const DisableScroll = () => {
|
||||
return null
|
||||
}
|
||||
|
||||
type PopoverWithClose = HTMLDivElement & { close: () => void }
|
||||
|
||||
const MobilePopoverContent = ({
|
||||
open,
|
||||
requestClose,
|
||||
@@ -35,7 +34,7 @@ const MobilePopoverContent = ({
|
||||
const addCloseMethod = useCallback(
|
||||
(element: HTMLDivElement | null) => {
|
||||
if (element) {
|
||||
;(element as PopoverWithClose).close = requestClose
|
||||
;(element as DialogWithClose).close = requestClose
|
||||
}
|
||||
},
|
||||
[requestClose],
|
||||
|
||||
@@ -10,6 +10,8 @@ import { useDisableBodyScrollOnMobile } from '@/Hooks/useDisableBodyScrollOnMobi
|
||||
import { MediaQueryBreakpoints, useMediaQuery } from '@/Hooks/useMediaQuery'
|
||||
import { KeyboardKey } from '@standardnotes/ui-services'
|
||||
import { getAdjustedStylesForNonPortalPopover } from './Utils/getAdjustedStylesForNonPortal'
|
||||
import { DialogWithClose } from '@/Utils/CloseOpenModalsAndPopovers'
|
||||
import { mergeRefs } from '@/Hooks/mergeRefs'
|
||||
|
||||
const PositionedPopoverContent = ({
|
||||
align = 'end',
|
||||
@@ -82,6 +84,15 @@ const PositionedPopoverContent = ({
|
||||
correctInitialScrollForOverflowedContent()
|
||||
}, [popoverElement, correctInitialScrollForOverflowedContent])
|
||||
|
||||
const addCloseMethod = useCallback(
|
||||
(element: HTMLDivElement | null) => {
|
||||
if (element && togglePopover) {
|
||||
;(element as DialogWithClose).close = togglePopover
|
||||
}
|
||||
},
|
||||
[togglePopover],
|
||||
)
|
||||
|
||||
return (
|
||||
<Portal disabled={!portal}>
|
||||
<div
|
||||
@@ -100,7 +111,7 @@ const PositionedPopoverContent = ({
|
||||
...adjustedStyles,
|
||||
} as CSSProperties
|
||||
}
|
||||
ref={setPopoverElement}
|
||||
ref={mergeRefs([setPopoverElement, addCloseMethod])}
|
||||
data-popover={id}
|
||||
onKeyDown={(event) => {
|
||||
if (event.key === KeyboardKey.Escape) {
|
||||
|
||||
Reference in New Issue
Block a user