@patternfly/react-core 6.5.0-prerelease.69 → 6.5.0-prerelease.70
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/CHANGELOG.md +7 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Compass/package.json +1 -1
- package/dist/dynamic/components/Content/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hero/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
- package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/SSRSafeIds/SSRSafeIds/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useSSRSafeId/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts +8 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +2 -2
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.d.ts +7 -1
- package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js +3 -3
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts +8 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +2 -2
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/Pagination/Pagination.d.ts +7 -1
- package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/js/components/Pagination/Pagination.js +3 -3
- package/dist/js/components/Pagination/Pagination.js.map +1 -1
- package/dist/umd/assets/{output-DZ3cC0Ec.css → output-DYPjwi6W.css} +21458 -21386
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +6 -6
- package/src/components/CalendarMonth/CalendarMonth.tsx +9 -1
- package/src/components/Pagination/Pagination.tsx +13 -3
- package/src/components/Pagination/__tests__/Pagination.test.tsx +21 -0
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +42 -42
- package/src/components/Pagination/examples/Pagination.md +27 -1
- package/src/components/Pagination/examples/PaginationDynamicStickyBottom.tsx +86 -0
- package/src/components/Pagination/examples/PaginationDynamicStickyTop.tsx +85 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useLayoutEffect, useState, useRef } from 'react';
|
|
2
|
+
import { Pagination, PaginationVariant, Gallery, GalleryItem, Card, CardBody } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
const useIsStuckFromScrollParent = ({
|
|
5
|
+
shouldTrack,
|
|
6
|
+
scrollParentRef
|
|
7
|
+
}: {
|
|
8
|
+
/** Indicates whether to track the scroll top position of the scroll parent element */
|
|
9
|
+
shouldTrack: boolean;
|
|
10
|
+
/** Reference to the scroll parent element */
|
|
11
|
+
scrollParentRef: React.RefObject<any>;
|
|
12
|
+
}): boolean => {
|
|
13
|
+
const [isStuck, setIsStuck] = useState(false);
|
|
14
|
+
|
|
15
|
+
useLayoutEffect(() => {
|
|
16
|
+
if (!shouldTrack) {
|
|
17
|
+
setIsStuck(false);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const scrollElement = scrollParentRef.current;
|
|
22
|
+
if (!scrollElement) {
|
|
23
|
+
setIsStuck(false);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const syncFromScroll = () => {
|
|
28
|
+
setIsStuck(scrollElement.scrollTop + scrollElement.clientHeight < scrollElement.scrollHeight);
|
|
29
|
+
};
|
|
30
|
+
syncFromScroll();
|
|
31
|
+
scrollElement.addEventListener('scroll', syncFromScroll, { passive: true });
|
|
32
|
+
return () => scrollElement.removeEventListener('scroll', syncFromScroll);
|
|
33
|
+
}, [shouldTrack, scrollParentRef]);
|
|
34
|
+
|
|
35
|
+
return isStuck;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const PaginationDynamicStickyBottom: React.FunctionComponent = () => {
|
|
39
|
+
const scrollParentRef = useRef<HTMLDivElement>(null);
|
|
40
|
+
const isStickyStuck = useIsStuckFromScrollParent({ shouldTrack: true, scrollParentRef });
|
|
41
|
+
const [page, setPage] = useState(1);
|
|
42
|
+
const [perPage, setPerPage] = useState(50);
|
|
43
|
+
const itemCount = 523;
|
|
44
|
+
|
|
45
|
+
const onSetPage = (_event: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPage: number) => {
|
|
46
|
+
setPage(newPage);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const onPerPageSelect = (
|
|
50
|
+
_event: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
51
|
+
newPerPage: number,
|
|
52
|
+
newPage: number
|
|
53
|
+
) => {
|
|
54
|
+
setPerPage(newPerPage);
|
|
55
|
+
setPage(newPage);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const buildCards = () => {
|
|
59
|
+
const numberOfCards = (page - 1) * perPage + perPage - 1 >= itemCount ? itemCount - (page - 1) * perPage : perPage;
|
|
60
|
+
|
|
61
|
+
return Array.from({ length: numberOfCards }).map((_value, index) => (
|
|
62
|
+
<GalleryItem key={index}>
|
|
63
|
+
<Card>
|
|
64
|
+
<CardBody>This is card {(page - 1) * perPage + index + 1}</CardBody>
|
|
65
|
+
</Card>
|
|
66
|
+
</GalleryItem>
|
|
67
|
+
));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
<div ref={scrollParentRef} style={{ overflowY: 'scroll', height: '400px' }}>
|
|
72
|
+
<Gallery hasGutter>{buildCards()}</Gallery>
|
|
73
|
+
<Pagination
|
|
74
|
+
itemCount={itemCount}
|
|
75
|
+
perPage={perPage}
|
|
76
|
+
page={page}
|
|
77
|
+
onSetPage={onSetPage}
|
|
78
|
+
widgetId="dynamic-sticky-bottom-example"
|
|
79
|
+
onPerPageSelect={onPerPageSelect}
|
|
80
|
+
variant={PaginationVariant.bottom}
|
|
81
|
+
isStickyBase
|
|
82
|
+
isStickyStuck={isStickyStuck}
|
|
83
|
+
/>
|
|
84
|
+
</div>
|
|
85
|
+
);
|
|
86
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { useLayoutEffect, useState, useRef } from 'react';
|
|
2
|
+
import { Pagination, Gallery, GalleryItem, Card, CardBody } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
const useIsStuckFromScrollParent = ({
|
|
5
|
+
shouldTrack,
|
|
6
|
+
scrollParentRef
|
|
7
|
+
}: {
|
|
8
|
+
/** Indicates whether to track the scroll top position of the scroll parent element */
|
|
9
|
+
shouldTrack: boolean;
|
|
10
|
+
/** Reference to the scroll parent element */
|
|
11
|
+
scrollParentRef: React.RefObject<any>;
|
|
12
|
+
}): boolean => {
|
|
13
|
+
const [isStuck, setIsStuck] = useState(false);
|
|
14
|
+
|
|
15
|
+
useLayoutEffect(() => {
|
|
16
|
+
if (!shouldTrack) {
|
|
17
|
+
setIsStuck(false);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const scrollElement = scrollParentRef.current;
|
|
22
|
+
if (!scrollElement) {
|
|
23
|
+
setIsStuck(false);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const syncFromScroll = () => {
|
|
28
|
+
setIsStuck(scrollElement.scrollTop > 0);
|
|
29
|
+
};
|
|
30
|
+
syncFromScroll();
|
|
31
|
+
scrollElement.addEventListener('scroll', syncFromScroll, { passive: true });
|
|
32
|
+
return () => scrollElement.removeEventListener('scroll', syncFromScroll);
|
|
33
|
+
}, [shouldTrack, scrollParentRef]);
|
|
34
|
+
|
|
35
|
+
return isStuck;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const PaginationDynamicStickyTop: React.FunctionComponent = () => {
|
|
39
|
+
const scrollParentRef = useRef<HTMLDivElement>(null);
|
|
40
|
+
const isStickyStuck = useIsStuckFromScrollParent({ shouldTrack: true, scrollParentRef });
|
|
41
|
+
const [page, setPage] = useState(1);
|
|
42
|
+
const [perPage, setPerPage] = useState(50);
|
|
43
|
+
const itemCount = 523;
|
|
44
|
+
|
|
45
|
+
const onSetPage = (_event: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPage: number) => {
|
|
46
|
+
setPage(newPage);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const onPerPageSelect = (
|
|
50
|
+
_event: React.MouseEvent | React.KeyboardEvent | MouseEvent,
|
|
51
|
+
newPerPage: number,
|
|
52
|
+
newPage: number
|
|
53
|
+
) => {
|
|
54
|
+
setPerPage(newPerPage);
|
|
55
|
+
setPage(newPage);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const buildCards = () => {
|
|
59
|
+
const numberOfCards = (page - 1) * perPage + perPage - 1 >= itemCount ? itemCount - (page - 1) * perPage : perPage;
|
|
60
|
+
|
|
61
|
+
return Array.from({ length: numberOfCards }).map((_value, index) => (
|
|
62
|
+
<GalleryItem key={index}>
|
|
63
|
+
<Card>
|
|
64
|
+
<CardBody>This is card {(page - 1) * perPage + index + 1}</CardBody>
|
|
65
|
+
</Card>
|
|
66
|
+
</GalleryItem>
|
|
67
|
+
));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
<div ref={scrollParentRef} style={{ overflowY: 'scroll', height: '400px' }}>
|
|
72
|
+
<Pagination
|
|
73
|
+
itemCount={itemCount}
|
|
74
|
+
perPage={perPage}
|
|
75
|
+
page={page}
|
|
76
|
+
onSetPage={onSetPage}
|
|
77
|
+
widgetId="dynamic-sticky-top-example"
|
|
78
|
+
onPerPageSelect={onPerPageSelect}
|
|
79
|
+
isStickyBase
|
|
80
|
+
isStickyStuck={isStickyStuck}
|
|
81
|
+
/>
|
|
82
|
+
<Gallery hasGutter>{buildCards()}</Gallery>
|
|
83
|
+
</div>
|
|
84
|
+
);
|
|
85
|
+
};
|