@jobber/components 4.79.1 → 4.79.2-JOB-88844-.5
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.
|
@@ -4,4 +4,4 @@ export interface UseMakeComboboxHandlersReturn {
|
|
|
4
4
|
handleClose: () => void;
|
|
5
5
|
handleSelection: (selection: ComboboxOption) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void): UseMakeComboboxHandlersReturn;
|
|
7
|
+
export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void, onSearch?: (searchValue: string) => void): UseMakeComboboxHandlersReturn;
|
package/dist/Combobox/index.js
CHANGED
|
@@ -351,15 +351,16 @@ var css_248z = ".W8qMZnORYxI- {\n position: fixed;\n top: 0;\n right: 0;\n b
|
|
|
351
351
|
var styles = {"overlay":"W8qMZnORYxI-","wrapper":"_-0dkolvLF-Y-"};
|
|
352
352
|
styleInject_es.styleInject(css_248z);
|
|
353
353
|
|
|
354
|
-
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose) {
|
|
354
|
+
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose, onSearch) {
|
|
355
355
|
const handleClose = React.useCallback(() => {
|
|
356
356
|
setOpen(false);
|
|
357
357
|
setSearchValue("");
|
|
358
|
+
onSearch && onSearch("");
|
|
358
359
|
onClose && onClose();
|
|
359
360
|
if (selectedOptions.length > 0) {
|
|
360
361
|
shouldScroll.current = true;
|
|
361
362
|
}
|
|
362
|
-
}, [setOpen, setSearchValue, onClose, selectedOptions.length]);
|
|
363
|
+
}, [setOpen, setSearchValue, onClose, onSearch, selectedOptions.length]);
|
|
363
364
|
const handleSelection = React.useCallback((selection) => {
|
|
364
365
|
if (multiSelect) {
|
|
365
366
|
handleMultiSelect(selectedStateSetter, selectedOptions, selection);
|
|
@@ -392,7 +393,7 @@ function useCombobox(selected, onSelect, options, onClose, multiSelect, onSearch
|
|
|
392
393
|
const [open, setOpen] = React.useState(false);
|
|
393
394
|
const [searchValue, setSearchValue] = React.useState("");
|
|
394
395
|
const searchCallback = React.useCallback(debounce__default["default"]((value) => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value), debounceTime), [onSearch, debounceTime]);
|
|
395
|
-
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose);
|
|
396
|
+
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose, onSearch);
|
|
396
397
|
const internalFilteredOptions = options.filter(option => option.label.toLowerCase().includes(searchValue.toLowerCase()));
|
|
397
398
|
return {
|
|
398
399
|
wrapperRef,
|
|
@@ -15,6 +15,7 @@ export declare const SEARCH_DEBOUNCE_DELAY: number;
|
|
|
15
15
|
export declare const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
16
16
|
export declare const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
17
17
|
export declare const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
18
|
+
export declare const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
18
19
|
export declare const TRANSITION_DURATION_IN_SECONDS: number;
|
|
19
20
|
export declare const TRANSITION_DELAY_IN_SECONDS: number;
|
|
20
21
|
export {};
|
package/dist/DataList/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var ReactDOM = require('react-dom');
|
|
|
26
26
|
var Checkbox = require('../Checkbox-99f6297f.js');
|
|
27
27
|
var reactRouterDom = require('react-router-dom');
|
|
28
28
|
var AnimatedSwitcher = require('../AnimatedSwitcher-3d45ec5d.js');
|
|
29
|
-
var Combobox = require('../Combobox-
|
|
29
|
+
var Combobox = require('../Combobox-6edd91fa.js');
|
|
30
30
|
var Chip = require('../Chip-c91fd6c8.js');
|
|
31
31
|
var debounce = require('lodash/debounce');
|
|
32
32
|
var InputText = require('../InputText-6e356985.js');
|
|
@@ -145,6 +145,7 @@ const SEARCH_DEBOUNCE_DELAY = design.tokens["timing-slowest"];
|
|
|
145
145
|
const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
146
146
|
const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
147
147
|
const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
148
|
+
const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
148
149
|
const TRANSITION_DURATION_IN_SECONDS = design.tokens["timing-base"] / 1000;
|
|
149
150
|
const TRANSITION_DELAY_IN_SECONDS = design.tokens["timing-quick"] / 1000;
|
|
150
151
|
|
|
@@ -1017,7 +1018,7 @@ function DataListStickyHeader({ children }) {
|
|
|
1017
1018
|
ref.current && observer.unobserve(ref.current);
|
|
1018
1019
|
};
|
|
1019
1020
|
}, [handleObserver, ref.current]);
|
|
1020
|
-
return (React__default["default"].createElement("div", { ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1021
|
+
return (React__default["default"].createElement("div", { "data-testid": DATA_LIST_STICKY_HEADER_TEST_ID, ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1021
1022
|
}
|
|
1022
1023
|
|
|
1023
1024
|
var css_248z$4 = ".tj0MOMhLEEY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.SaPMOnvw-3c- {\n --transition-properties: var(--timing-base) ease-in-out;\n --button-offset: calc(var(--space-largest) - var(--space-smaller));\n\n position: absolute;\n top: 50%;\n right: calc((16px * 3) - (16px / 4));\n right: calc(calc(16px * 3) - calc(16px / 4));\n right: var(--button-offset);\n visibility: hidden;\n width: 0;\n padding: calc(16px / 4) 0;\n padding: var(--space-smaller) 0;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n opacity: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n transition: opacity 200ms ease-in-out,\n width 200ms ease-in-out, visibility 200ms ease-in-out;\n transition: opacity var(--transition-properties),\n width var(--transition-properties), visibility var(--transition-properties);\n}\n\n._3S1-91v2SYI- {\n visibility: visible;\n width: calc(100% - var(--button-offset));\n opacity: 1;\n}\n\n@media (min-width: 768px) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n._9GlBktsUALw- {\n display: block;\n}\n\n@media (min-width: 768px) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n/*\n * No Filters Styling\n *\n * When there are no filters, the search input is always visible.\n * ------------------------------------------------------------------------- */\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n position: static;\n visibility: visible;\n width: auto;\n opacity: 1;\n transition: none;\n}\n\n@media (min-width: 768px) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n._3Pjrt42x454- ._9GlBktsUALw- {\n display: none;\n}\n";
|
|
@@ -1231,6 +1232,7 @@ function DataList(_a) {
|
|
|
1231
1232
|
const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
|
|
1232
1233
|
const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
|
|
1233
1234
|
const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
|
|
1235
|
+
const shouldRenderStickyHeader = !!filterComponent || !!searchComponent;
|
|
1234
1236
|
return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
|
|
1235
1237
|
filterComponent,
|
|
1236
1238
|
layoutComponents,
|
|
@@ -1243,7 +1245,7 @@ function DataList(_a) {
|
|
|
1243
1245
|
registerLayout }, props), { selected,
|
|
1244
1246
|
// T !== DataListObject
|
|
1245
1247
|
sorting: sorting }) },
|
|
1246
|
-
React__default["default"].createElement(InternalDataList,
|
|
1248
|
+
React__default["default"].createElement(InternalDataList, { shouldRenderStickyHeader: shouldRenderStickyHeader })));
|
|
1247
1249
|
function registerLayoutBreakpoints(size) {
|
|
1248
1250
|
setLayoutBreakpoints(prev => sortBreakpoints([...prev, size]));
|
|
1249
1251
|
}
|
|
@@ -1251,7 +1253,7 @@ function DataList(_a) {
|
|
|
1251
1253
|
setLayouts(prev => (Object.assign(Object.assign({}, prev), { [size]: children })));
|
|
1252
1254
|
}
|
|
1253
1255
|
}
|
|
1254
|
-
function InternalDataList() {
|
|
1256
|
+
function InternalDataList({ shouldRenderStickyHeader, }) {
|
|
1255
1257
|
const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
|
|
1256
1258
|
const backToTopRef = React.useRef(null);
|
|
1257
1259
|
const initialLoading = loadingState === "initial";
|
|
@@ -1262,12 +1264,12 @@ function InternalDataList() {
|
|
|
1262
1264
|
title && React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
|
|
1263
1265
|
React__default["default"].createElement(DataListTotalCount, { totalCount: totalCount, loading: initialLoading })),
|
|
1264
1266
|
React__default["default"].createElement("div", { ref: backToTopRef }),
|
|
1265
|
-
React__default["default"].createElement(DataListStickyHeader, null,
|
|
1267
|
+
shouldRenderStickyHeader && (React__default["default"].createElement(DataListStickyHeader, null,
|
|
1266
1268
|
React__default["default"].createElement("div", { className: styles$g.headerFilters },
|
|
1267
1269
|
React__default["default"].createElement(InternalDataListFilters, null),
|
|
1268
1270
|
React__default["default"].createElement(InternalDataListSearch, null)),
|
|
1269
1271
|
React__default["default"].createElement(InternalDataListStatusBar, null),
|
|
1270
|
-
React__default["default"].createElement(DataListHeader, null)),
|
|
1272
|
+
React__default["default"].createElement(DataListHeader, null))),
|
|
1271
1273
|
initialLoading && React__default["default"].createElement(DataListLoadingState, null),
|
|
1272
1274
|
showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
|
|
1273
1275
|
layoutComponents,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.79.
|
|
3
|
+
"version": "4.79.2-JOB-88844-.5+b7447611",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@jobber/design": "^0.53.0",
|
|
23
|
-
"@jobber/formatters": "
|
|
23
|
+
"@jobber/formatters": "^0.2.2",
|
|
24
24
|
"@jobber/hooks": "^2.8.2",
|
|
25
25
|
"@popperjs/core": "^2.0.6",
|
|
26
26
|
"@std-proposal/temporal": "0.0.1",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"> 1%",
|
|
85
85
|
"IE 10"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "b74476111dae7c641dcd2acae08dbf2aa4c45e69"
|
|
88
88
|
}
|