@charcoal-ui/react 3.3.0-beta.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_lib/useForwardedRef.d.ts +3 -0
- package/dist/_lib/useForwardedRef.d.ts.map +1 -0
- package/dist/components/Checkbox/index.d.ts +1 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.story.d.ts +1 -0
- package/dist/components/Checkbox/index.story.d.ts.map +1 -1
- package/dist/components/Clickable/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/DropdownPopover.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Popover/usePreventScroll.d.ts +2 -0
- package/dist/components/DropdownSelector/Popover/usePreventScroll.d.ts.map +1 -0
- package/dist/components/DropdownSelector/index.story.d.ts +1 -0
- package/dist/components/DropdownSelector/index.story.d.ts.map +1 -1
- package/dist/components/Icon/index.story.d.ts +1 -1
- package/dist/components/Modal/Dialog/index.d.ts +26 -0
- package/dist/components/Modal/Dialog/index.d.ts.map +1 -0
- package/dist/components/Modal/ModalBackgroundContext.d.ts +6 -0
- package/dist/components/Modal/ModalBackgroundContext.d.ts.map +1 -0
- package/dist/components/Modal/ModalPlumbing.d.ts.map +1 -1
- package/dist/components/Modal/__stories__/InternalScrollStory.d.ts +4 -0
- package/dist/components/Modal/__stories__/InternalScrollStory.d.ts.map +1 -0
- package/dist/components/Modal/index.d.ts +12 -2
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index.story.d.ts +3 -2
- package/dist/components/Modal/index.story.d.ts.map +1 -1
- package/dist/index.cjs.js +392 -301
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +354 -264
- package/dist/index.esm.js.map +1 -1
- package/package.json +6 -6
- package/src/_lib/useForwardedRef.tsx +16 -0
- package/src/components/Button/__snapshots__/index.story.storyshot +1971 -0
- package/src/components/Checkbox/__snapshots__/index.story.storyshot +390 -0
- package/src/components/Checkbox/index.story.tsx +3 -0
- package/src/components/Checkbox/index.tsx +7 -4
- package/src/components/Clickable/__snapshots__/index.story.storyshot +100 -0
- package/src/components/Clickable/index.tsx +17 -35
- package/src/components/DropdownSelector/DropdownPopover.tsx +0 -1
- package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +245 -0
- package/src/components/DropdownSelector/MenuList/__snapshots__/index.story.storyshot +555 -0
- package/src/components/DropdownSelector/Popover/__snapshots__/index.story.storyshot +174 -0
- package/src/components/DropdownSelector/Popover/index.tsx +17 -2
- package/src/components/DropdownSelector/Popover/usePreventScroll.tsx +18 -0
- package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +1241 -0
- package/src/components/DropdownSelector/index.story.tsx +69 -13
- package/src/components/Icon/__snapshots__/index.story.storyshot +12 -0
- package/src/components/{Button/__snapshots__/index.test.tsx.snap → IconButton/__snapshots__/index.story.storyshot} +94 -91
- package/src/components/LoadingSpinner/__snapshots__/index.story.storyshot +81 -0
- package/src/components/Modal/Dialog/index.tsx +82 -0
- package/src/components/Modal/ModalBackgroundContext.tsx +8 -0
- package/src/components/Modal/ModalPlumbing.tsx +16 -4
- package/src/components/Modal/__snapshots__/index.story.storyshot +533 -0
- package/src/components/Modal/__stories__/InternalScrollStory.tsx +75 -0
- package/src/components/Modal/index.story.tsx +57 -38
- package/src/components/Modal/index.tsx +63 -94
- package/src/components/MultiSelect/__snapshots__/index.story.storyshot +511 -0
- package/src/components/Radio/__snapshots__/index.story.storyshot +319 -0
- package/src/components/SegmentedControl/__snapshots__/index.story.storyshot +483 -0
- package/src/components/Switch/__snapshots__/index.story.storyshot +454 -0
- package/src/components/TagItem/__snapshots__/index.story.storyshot +1181 -0
- package/src/components/TextArea/__snapshots__/TextArea.story.storyshot +1271 -0
- package/src/components/TextField/__snapshots__/TextField.story.storyshot +1800 -0
- package/dist/components/Button/index.test.d.ts +0 -4
- package/dist/components/Button/index.test.d.ts.map +0 -1
- package/src/components/Button/index.test.tsx +0 -24
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { RefObject, useRef } from 'react'
|
|
1
|
+
import { RefObject, useContext, useRef } from 'react'
|
|
2
2
|
import { ReactNode } from 'react'
|
|
3
3
|
import { DismissButton, Overlay, usePopover } from '@react-aria/overlays'
|
|
4
4
|
import styled from 'styled-components'
|
|
5
5
|
import { theme } from '../../../styled'
|
|
6
|
+
import { ModalBackgroundContext } from '../../Modal/ModalBackgroundContext'
|
|
7
|
+
import { usePreventScroll } from './usePreventScroll'
|
|
6
8
|
|
|
7
9
|
export type PopoverProps = {
|
|
8
10
|
isOpen: boolean
|
|
@@ -40,11 +42,24 @@ export default function Popover(props: PopoverProps) {
|
|
|
40
42
|
}
|
|
41
43
|
)
|
|
42
44
|
|
|
45
|
+
const modalBackground = useContext(ModalBackgroundContext)
|
|
46
|
+
usePreventScroll(modalBackground, props.isOpen)
|
|
47
|
+
|
|
43
48
|
if (!props.isOpen) return null
|
|
44
49
|
|
|
45
50
|
return (
|
|
46
51
|
<Overlay portalContainer={document.body}>
|
|
47
|
-
<div
|
|
52
|
+
<div
|
|
53
|
+
{...underlayProps}
|
|
54
|
+
style={{
|
|
55
|
+
position: 'fixed',
|
|
56
|
+
zIndex:
|
|
57
|
+
typeof popoverProps.style?.zIndex === 'number'
|
|
58
|
+
? popoverProps.style.zIndex - 1
|
|
59
|
+
: 99999,
|
|
60
|
+
inset: 0,
|
|
61
|
+
}}
|
|
62
|
+
/>
|
|
48
63
|
<DropdownPopoverDiv {...popoverProps} ref={finalPopoverRef}>
|
|
49
64
|
<DismissButton onDismiss={() => props.onClose()} />
|
|
50
65
|
{props.children}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect } from 'react'
|
|
2
|
+
|
|
3
|
+
export function usePreventScroll(element: HTMLElement | null, isOpen: boolean) {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
if (isOpen && element) {
|
|
6
|
+
const defaultPaddingRight = element.style.paddingRight
|
|
7
|
+
const defaultOverflow = element.style.overflow
|
|
8
|
+
element.style.paddingRight = `${
|
|
9
|
+
window.innerWidth - element.clientWidth
|
|
10
|
+
}px`
|
|
11
|
+
element.style.overflow = 'hidden'
|
|
12
|
+
return () => {
|
|
13
|
+
element.style.paddingRight = defaultPaddingRight
|
|
14
|
+
element.style.overflow = defaultOverflow
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}, [element, isOpen])
|
|
18
|
+
}
|