@mantine/hooks 5.0.0-alpha.2 → 5.0.0-alpha.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.
- package/cjs/index.js +0 -2
- package/cjs/index.js.map +1 -1
- package/cjs/use-click-outside/use-click-outside.js +3 -3
- package/cjs/use-clipboard/use-clipboard.js +4 -4
- package/cjs/use-counter/use-counter.js +2 -2
- package/cjs/use-debounced-value/use-debounced-value.js +7 -7
- package/cjs/use-did-update/use-did-update.js +3 -3
- package/cjs/use-disclosure/use-disclosure.js +2 -2
- package/cjs/use-document-visibility/use-document-visibility.js +3 -3
- package/cjs/use-event-listener/use-event-listener.js +3 -3
- package/cjs/use-focus-return/use-focus-return.js +2 -2
- package/cjs/use-focus-trap/use-focus-trap.js +5 -5
- package/cjs/use-focus-within/use-focus-within.js +5 -5
- package/cjs/use-force-update/use-force-update.js +2 -2
- package/cjs/use-fullscreen/use-fullscreen.js +8 -8
- package/cjs/use-hash/use-hash.js +2 -2
- package/cjs/use-hotkeys/use-hotkeys.js +2 -2
- package/cjs/use-hover/use-hover.js +6 -6
- package/cjs/use-id/use-id.js +21 -5
- package/cjs/use-id/use-id.js.map +1 -1
- package/cjs/use-idle/use-idle.js +4 -4
- package/cjs/use-input-state/use-input-state.js +2 -2
- package/cjs/use-intersection/use-intersection.js +4 -4
- package/cjs/use-interval/use-interval.js +3 -3
- package/cjs/use-isomorphic-effect/use-isomorphic-effect.js +2 -2
- package/cjs/use-list-state/use-list-state.js +2 -2
- package/cjs/use-list-state/use-list-state.js.map +1 -1
- package/cjs/use-local-storage/use-local-storage.js +5 -5
- package/cjs/use-logger/use-logger.js +2 -2
- package/cjs/use-media-query/use-media-query.js +4 -4
- package/cjs/use-merged-ref/use-merged-ref.js +2 -2
- package/cjs/use-mouse/use-mouse.js +4 -4
- package/cjs/use-move/use-move.js +8 -8
- package/cjs/use-network/use-network.js +4 -4
- package/cjs/use-page-leave/use-page-leave.js +2 -2
- package/cjs/use-pagination/use-pagination.js +3 -4
- package/cjs/use-pagination/use-pagination.js.map +1 -1
- package/cjs/use-queue/use-queue.js +2 -2
- package/cjs/use-resize-observer/use-resize-observer.js +6 -6
- package/cjs/use-scroll-into-view/use-scroll-into-view.js +8 -8
- package/cjs/use-scroll-lock/use-scroll-lock.js +7 -7
- package/cjs/use-set-state/use-set-state.js +2 -2
- package/cjs/use-shallow-effect/use-shallow-effect.js +4 -4
- package/cjs/use-toggle/use-toggle.js +2 -2
- package/cjs/use-uncontrolled/use-uncontrolled.js +8 -26
- package/cjs/use-uncontrolled/use-uncontrolled.js.map +1 -1
- package/cjs/use-validated-state/use-validated-state.js +4 -4
- package/cjs/use-viewport-size/use-viewport-size.js +3 -3
- package/cjs/use-window-event/use-window-event.js +2 -2
- package/cjs/use-window-scroll/use-window-scroll.js +2 -2
- package/esm/index.js +0 -1
- package/esm/index.js.map +1 -1
- package/esm/use-id/use-id.js +17 -5
- package/esm/use-id/use-id.js.map +1 -1
- package/esm/use-list-state/use-list-state.js.map +1 -1
- package/esm/use-pagination/use-pagination.js +1 -2
- package/esm/use-pagination/use-pagination.js.map +1 -1
- package/esm/use-uncontrolled/use-uncontrolled.js +8 -26
- package/esm/use-uncontrolled/use-uncontrolled.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/use-id/use-id.d.ts +1 -1
- package/lib/use-id/use-id.d.ts.map +1 -1
- package/lib/use-list-state/use-list-state.d.ts +2 -2
- package/lib/use-list-state/use-list-state.d.ts.map +1 -1
- package/lib/use-pagination/use-pagination.d.ts.map +1 -1
- package/lib/use-uncontrolled/use-uncontrolled.d.ts +11 -9
- package/lib/use-uncontrolled/use-uncontrolled.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var assignRef = require('../utils/assign-ref/assign-ref.js');
|
|
7
7
|
|
|
8
8
|
function mergeRefs(...refs) {
|
|
@@ -11,7 +11,7 @@ function mergeRefs(...refs) {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
function useMergedRef(...refs) {
|
|
14
|
-
return
|
|
14
|
+
return React.useCallback(mergeRefs(...refs), refs);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
exports.mergeRefs = mergeRefs;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -21,8 +21,8 @@ var __spreadValues = (a, b) => {
|
|
|
21
21
|
return a;
|
|
22
22
|
};
|
|
23
23
|
function useMouse() {
|
|
24
|
-
const [position, setPosition] =
|
|
25
|
-
const ref =
|
|
24
|
+
const [position, setPosition] = React.useState({ x: 0, y: 0 });
|
|
25
|
+
const ref = React.useRef();
|
|
26
26
|
const setMousePosition = (event) => {
|
|
27
27
|
if (ref.current) {
|
|
28
28
|
const rect = event.currentTarget.getBoundingClientRect();
|
|
@@ -33,7 +33,7 @@ function useMouse() {
|
|
|
33
33
|
setPosition({ x: event.clientX, y: event.clientY });
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
|
-
|
|
36
|
+
React.useEffect(() => {
|
|
37
37
|
const element = (ref == null ? void 0 : ref.current) ? ref.current : document;
|
|
38
38
|
element.addEventListener("mousemove", setMousePosition);
|
|
39
39
|
return () => element.removeEventListener("mousemove", setMousePosition);
|
package/cjs/use-move/use-move.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var clamp = require('../utils/clamp/clamp.js');
|
|
7
7
|
|
|
8
8
|
const clampUseMovePosition = (position) => ({
|
|
@@ -10,15 +10,15 @@ const clampUseMovePosition = (position) => ({
|
|
|
10
10
|
y: clamp.clamp({ min: 0, max: 1, value: position.y })
|
|
11
11
|
});
|
|
12
12
|
function useMove(onChange, handlers, dir = "ltr") {
|
|
13
|
-
const ref =
|
|
14
|
-
const mounted =
|
|
15
|
-
const isSliding =
|
|
16
|
-
const frame =
|
|
17
|
-
const [active, setActive] =
|
|
18
|
-
|
|
13
|
+
const ref = React.useRef();
|
|
14
|
+
const mounted = React.useRef(false);
|
|
15
|
+
const isSliding = React.useRef(false);
|
|
16
|
+
const frame = React.useRef(0);
|
|
17
|
+
const [active, setActive] = React.useState(false);
|
|
18
|
+
React.useEffect(() => {
|
|
19
19
|
mounted.current = true;
|
|
20
20
|
}, []);
|
|
21
|
-
|
|
21
|
+
React.useEffect(() => {
|
|
22
22
|
const onScrub = ({ x, y }) => {
|
|
23
23
|
cancelAnimationFrame(frame.current);
|
|
24
24
|
frame.current = requestAnimationFrame(() => {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
7
7
|
|
|
8
8
|
var __defProp = Object.defineProperty;
|
|
@@ -40,11 +40,11 @@ function getConnection() {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
function useNetwork() {
|
|
43
|
-
const [status, setStatus] =
|
|
44
|
-
const handleConnectionChange =
|
|
43
|
+
const [status, setStatus] = React.useState(__spreadValues({ online: true }, getConnection()));
|
|
44
|
+
const handleConnectionChange = React.useCallback(() => setStatus((current) => __spreadValues(__spreadValues({}, current), getConnection())), []);
|
|
45
45
|
useWindowEvent.useWindowEvent("online", () => setStatus(__spreadValues({ online: true }, getConnection())));
|
|
46
46
|
useWindowEvent.useWindowEvent("offline", () => setStatus(__spreadValues({ online: false }, getConnection())));
|
|
47
|
-
|
|
47
|
+
React.useEffect(() => {
|
|
48
48
|
if (navigator.connection) {
|
|
49
49
|
navigator.connection.addEventListener("change", handleConnectionChange);
|
|
50
50
|
return () => navigator.connection.removeEventListener("change", handleConnectionChange);
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function usePageLeave(onPageLeave) {
|
|
8
|
-
|
|
8
|
+
React.useEffect(() => {
|
|
9
9
|
document.documentElement.addEventListener("mouseleave", onPageLeave);
|
|
10
10
|
return () => document.documentElement.removeEventListener("mouseleave", onPageLeave);
|
|
11
11
|
}, []);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var useUncontrolled = require('../use-uncontrolled/use-uncontrolled.js');
|
|
7
7
|
var range = require('../utils/range/range.js');
|
|
8
8
|
|
|
@@ -19,8 +19,7 @@ function usePagination({
|
|
|
19
19
|
value: page,
|
|
20
20
|
onChange,
|
|
21
21
|
defaultValue: initialPage,
|
|
22
|
-
finalValue: initialPage
|
|
23
|
-
rule: (_page) => typeof _page === "number" && _page <= total
|
|
22
|
+
finalValue: initialPage
|
|
24
23
|
});
|
|
25
24
|
const setPage = (pageNumber) => {
|
|
26
25
|
if (pageNumber <= 0) {
|
|
@@ -35,7 +34,7 @@ function usePagination({
|
|
|
35
34
|
const previous = () => setPage(activePage - 1);
|
|
36
35
|
const first = () => setPage(1);
|
|
37
36
|
const last = () => setPage(total);
|
|
38
|
-
const paginationRange =
|
|
37
|
+
const paginationRange = React.useMemo(() => {
|
|
39
38
|
const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;
|
|
40
39
|
if (totalPageNumbers >= total) {
|
|
41
40
|
return range.range(1, total);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n
|
|
1
|
+
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n });\n\n const setPage = (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > total) {\n setActivePage(total);\n } else {\n setActivePage(pageNumber);\n }\n };\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n if (totalPageNumbers >= total) {\n return range(1, total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);\n\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(total - (boundaries - 1), total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(total - rightItemCount, total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(total - boundaries + 1, total),\n ];\n }, [total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n"],"names":["useUncontrolled","useMemo","range"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useQueue({ initialValues = [], limit }) {
|
|
8
|
-
const [{ state, queue }, setState] =
|
|
8
|
+
const [{ state, queue }, setState] = React.useState({
|
|
9
9
|
state: initialValues.slice(0, limit),
|
|
10
10
|
queue: initialValues.slice(limit)
|
|
11
11
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
const defaultState = {
|
|
8
8
|
x: 0,
|
|
@@ -16,10 +16,10 @@ const defaultState = {
|
|
|
16
16
|
};
|
|
17
17
|
const browser = typeof window !== "undefined";
|
|
18
18
|
function useResizeObserver() {
|
|
19
|
-
const frameID =
|
|
20
|
-
const ref =
|
|
21
|
-
const [rect, setRect] =
|
|
22
|
-
const observer =
|
|
19
|
+
const frameID = React.useRef(0);
|
|
20
|
+
const ref = React.useRef(null);
|
|
21
|
+
const [rect, setRect] = React.useState(defaultState);
|
|
22
|
+
const observer = React.useMemo(() => browser ? new ResizeObserver((entries) => {
|
|
23
23
|
const entry = entries[0];
|
|
24
24
|
if (entry) {
|
|
25
25
|
cancelAnimationFrame(frameID.current);
|
|
@@ -30,7 +30,7 @@ function useResizeObserver() {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}) : null, []);
|
|
33
|
-
|
|
33
|
+
React.useEffect(() => {
|
|
34
34
|
if (ref.current) {
|
|
35
35
|
observer.observe(ref.current);
|
|
36
36
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var useReducedMotion = require('../use-reduced-motion/use-reduced-motion.js');
|
|
7
7
|
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
8
8
|
var easeInOutQuad = require('./utils/ease-in-out-quad.js');
|
|
@@ -19,18 +19,18 @@ function useScrollIntoView({
|
|
|
19
19
|
cancelable = true,
|
|
20
20
|
isList = false
|
|
21
21
|
} = {}) {
|
|
22
|
-
const frameID =
|
|
23
|
-
const startTime =
|
|
24
|
-
const shouldStop =
|
|
25
|
-
const scrollableRef =
|
|
26
|
-
const targetRef =
|
|
22
|
+
const frameID = React.useRef(0);
|
|
23
|
+
const startTime = React.useRef(0);
|
|
24
|
+
const shouldStop = React.useRef(false);
|
|
25
|
+
const scrollableRef = React.useRef(null);
|
|
26
|
+
const targetRef = React.useRef(null);
|
|
27
27
|
const reducedMotion = useReducedMotion.useReducedMotion();
|
|
28
28
|
const cancel = () => {
|
|
29
29
|
if (frameID.current) {
|
|
30
30
|
cancelAnimationFrame(frameID.current);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
-
const scrollIntoView =
|
|
33
|
+
const scrollIntoView = React.useCallback(({ alignment = "start" } = {}) => {
|
|
34
34
|
var _a;
|
|
35
35
|
shouldStop.current = false;
|
|
36
36
|
if (frameID.current) {
|
|
@@ -80,7 +80,7 @@ function useScrollIntoView({
|
|
|
80
80
|
useWindowEvent.useWindowEvent("touchmove", handleStop, {
|
|
81
81
|
passive: true
|
|
82
82
|
});
|
|
83
|
-
|
|
83
|
+
React.useEffect(() => cancel, []);
|
|
84
84
|
return {
|
|
85
85
|
scrollableRef,
|
|
86
86
|
targetRef,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var getLockStyles = require('./utils/get-lock-styles.js');
|
|
7
7
|
var injectStyleTag = require('./utils/inject-style-tag.js');
|
|
8
8
|
var insertStyleTag = require('./utils/insert-style-tag.js');
|
|
@@ -11,10 +11,10 @@ var makeStyleTag = require('./utils/make-style-tag.js');
|
|
|
11
11
|
function useScrollLock(lock, options = {
|
|
12
12
|
disableBodyPadding: false
|
|
13
13
|
}) {
|
|
14
|
-
const [scrollLocked, setScrollLocked] =
|
|
15
|
-
const scrollTop =
|
|
14
|
+
const [scrollLocked, setScrollLocked] = React.useState(lock || false);
|
|
15
|
+
const scrollTop = React.useRef(0);
|
|
16
16
|
const { disableBodyPadding } = options;
|
|
17
|
-
const stylesheet =
|
|
17
|
+
const stylesheet = React.useRef(null);
|
|
18
18
|
const lockScroll = () => {
|
|
19
19
|
scrollTop.current = window.scrollY;
|
|
20
20
|
const styles = getLockStyles.getLockStyles({ disableBodyPadding });
|
|
@@ -29,7 +29,7 @@ function useScrollLock(lock, options = {
|
|
|
29
29
|
stylesheet.current.parentNode.removeChild(stylesheet.current);
|
|
30
30
|
stylesheet.current = null;
|
|
31
31
|
};
|
|
32
|
-
|
|
32
|
+
React.useEffect(() => {
|
|
33
33
|
if (scrollLocked) {
|
|
34
34
|
lockScroll();
|
|
35
35
|
} else {
|
|
@@ -37,12 +37,12 @@ function useScrollLock(lock, options = {
|
|
|
37
37
|
}
|
|
38
38
|
return unlockScroll;
|
|
39
39
|
}, [scrollLocked]);
|
|
40
|
-
|
|
40
|
+
React.useEffect(() => {
|
|
41
41
|
if (lock !== void 0) {
|
|
42
42
|
setScrollLocked(lock);
|
|
43
43
|
}
|
|
44
44
|
}, [lock]);
|
|
45
|
-
|
|
45
|
+
React.useEffect(() => {
|
|
46
46
|
if (lock === void 0 && typeof window !== "undefined") {
|
|
47
47
|
window.document.body.style.overflow === "hidden" && setScrollLocked(true);
|
|
48
48
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -21,7 +21,7 @@ var __spreadValues = (a, b) => {
|
|
|
21
21
|
return a;
|
|
22
22
|
};
|
|
23
23
|
function useSetState(initialState) {
|
|
24
|
-
const [state, _setState] =
|
|
24
|
+
const [state, _setState] = React.useState(initialState);
|
|
25
25
|
const setState = (statePartial) => _setState((current) => __spreadValues(__spreadValues({}, current), typeof statePartial === "function" ? statePartial(current) : statePartial));
|
|
26
26
|
return [state, setState];
|
|
27
27
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var shallowEqual = require('../utils/shallow-equal/shallow-equal.js');
|
|
7
7
|
|
|
8
8
|
function shallowCompare(prevValue, currValue) {
|
|
@@ -23,8 +23,8 @@ function shallowCompare(prevValue, currValue) {
|
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
function useShallowCompare(dependencies) {
|
|
26
|
-
const ref =
|
|
27
|
-
const updateRef =
|
|
26
|
+
const ref = React.useRef([]);
|
|
27
|
+
const updateRef = React.useRef(0);
|
|
28
28
|
if (!shallowCompare(ref.current, dependencies)) {
|
|
29
29
|
ref.current = dependencies;
|
|
30
30
|
updateRef.current += 1;
|
|
@@ -32,7 +32,7 @@ function useShallowCompare(dependencies) {
|
|
|
32
32
|
return [updateRef.current];
|
|
33
33
|
}
|
|
34
34
|
function useShallowEffect(cb, dependencies) {
|
|
35
|
-
|
|
35
|
+
React.useEffect(cb, useShallowCompare(dependencies));
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
exports.useShallowEffect = useShallowEffect;
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useToggle(initialValue, options) {
|
|
8
|
-
const [state, setState] =
|
|
8
|
+
const [state, setState] = React.useState(initialValue);
|
|
9
9
|
const toggle = (value) => {
|
|
10
10
|
if (typeof value !== "undefined") {
|
|
11
11
|
setState(value);
|
|
@@ -2,39 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useUncontrolled({
|
|
8
8
|
value,
|
|
9
9
|
defaultValue,
|
|
10
10
|
finalValue,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
onValueUpdate
|
|
11
|
+
onChange = () => {
|
|
12
|
+
}
|
|
14
13
|
}) {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let effectiveValue = shouldBeControlled ? value : uncontrolledValue;
|
|
20
|
-
if (!shouldBeControlled && modeRef.current === "controlled") {
|
|
21
|
-
effectiveValue = finalValue;
|
|
14
|
+
const controlled = React.useRef(value !== void 0);
|
|
15
|
+
const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue !== void 0 ? defaultValue : finalValue);
|
|
16
|
+
if (controlled.current) {
|
|
17
|
+
return [value, onChange, true];
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
const mode = modeRef.current;
|
|
25
|
-
const handleChange = (nextValue) => {
|
|
26
|
-
typeof onChange === "function" && onChange(nextValue);
|
|
27
|
-
if (mode === "uncontrolled") {
|
|
28
|
-
setUncontrolledValue(nextValue);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
react.useEffect(() => {
|
|
32
|
-
if (mode === "uncontrolled") {
|
|
33
|
-
setUncontrolledValue(effectiveValue);
|
|
34
|
-
}
|
|
35
|
-
typeof onValueUpdate === "function" && onValueUpdate(effectiveValue);
|
|
36
|
-
}, [mode, effectiveValue]);
|
|
37
|
-
return [effectiveValue, handleChange, modeRef.current];
|
|
19
|
+
return [uncontrolledValue, setUncontrolledValue, false];
|
|
38
20
|
}
|
|
39
21
|
|
|
40
22
|
exports.useUncontrolled = useUncontrolled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-uncontrolled.js","sources":["../../src/use-uncontrolled/use-uncontrolled.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"use-uncontrolled.js","sources":["../../src/use-uncontrolled/use-uncontrolled.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\ninterface UseUncontrolledInput<T> {\n /** Value for controlled state */\n value?: T;\n\n /** Initial value for uncontrolled state */\n defaultValue?: T;\n\n /** Final value for uncontrolled state when value and defaultValue are not provided */\n finalValue?: T;\n\n /** Controlled state onChange handler */\n onChange?(value: T): void;\n}\n\nexport function useUncontrolled<T>({\n value,\n defaultValue,\n finalValue,\n onChange = () => {},\n}: UseUncontrolledInput<T>): [T, (value: T) => void, boolean] {\n const controlled = useRef(value !== undefined);\n const [uncontrolledValue, setUncontrolledValue] = useState(\n defaultValue !== undefined ? defaultValue : finalValue\n );\n\n if (controlled.current) {\n return [value as T, onChange, true];\n }\n\n return [uncontrolledValue as T, setUncontrolledValue, false];\n}\n"],"names":["useRef","useState"],"mappings":";;;;;;AACO,SAAS,eAAe,CAAC;AAChC,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,QAAQ,GAAG,MAAM;AACnB,GAAG;AACH,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;AAC9C,EAAE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAGC,cAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;AAClH,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE;AAC1B,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAC1D;;;;"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useValidatedState(initialValue, validation) {
|
|
8
|
-
const [value, setValue] =
|
|
9
|
-
const [lastValidValue, setLastValidValue] =
|
|
10
|
-
const [valid, setValid] =
|
|
8
|
+
const [value, setValue] = React.useState(initialValue);
|
|
9
|
+
const [lastValidValue, setLastValidValue] = React.useState(validation(initialValue) ? initialValue : void 0);
|
|
10
|
+
const [valid, setValid] = React.useState(validation(initialValue));
|
|
11
11
|
const onChange = (val) => {
|
|
12
12
|
if (validation(val)) {
|
|
13
13
|
setLastValidValue(val);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
7
7
|
|
|
8
8
|
const eventListerOptions = {
|
|
@@ -10,11 +10,11 @@ const eventListerOptions = {
|
|
|
10
10
|
};
|
|
11
11
|
const browser = typeof window !== "undefined";
|
|
12
12
|
function useViewportSize() {
|
|
13
|
-
const [windowSize, setWindowSize] =
|
|
13
|
+
const [windowSize, setWindowSize] = React.useState({
|
|
14
14
|
width: browser ? window.innerWidth : 0,
|
|
15
15
|
height: browser ? window.innerHeight : 0
|
|
16
16
|
});
|
|
17
|
-
const setSize =
|
|
17
|
+
const setSize = React.useCallback(() => {
|
|
18
18
|
setWindowSize({
|
|
19
19
|
width: window.innerWidth || 0,
|
|
20
20
|
height: window.innerHeight || 0
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useWindowEvent(type, listener, options) {
|
|
8
|
-
|
|
8
|
+
React.useEffect(() => {
|
|
9
9
|
window.addEventListener(type, listener, options);
|
|
10
10
|
return () => window.removeEventListener(type, listener, options);
|
|
11
11
|
}, []);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var React = require('react');
|
|
6
6
|
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
7
7
|
|
|
8
8
|
function getScrollPosition() {
|
|
@@ -21,7 +21,7 @@ function scrollTo({ x, y }) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
function useWindowScroll() {
|
|
24
|
-
const [position, setPosition] =
|
|
24
|
+
const [position, setPosition] = React.useState(getScrollPosition());
|
|
25
25
|
useWindowEvent.useWindowEvent("scroll", () => setPosition(getScrollPosition()));
|
|
26
26
|
useWindowEvent.useWindowEvent("resize", () => setPosition(getScrollPosition()));
|
|
27
27
|
return [position, scrollTo];
|
package/esm/index.js
CHANGED
|
@@ -38,7 +38,6 @@ export { useHotkeys } from './use-hotkeys/use-hotkeys.js';
|
|
|
38
38
|
export { useFullscreen } from './use-fullscreen/use-fullscreen.js';
|
|
39
39
|
export { useLogger } from './use-logger/use-logger.js';
|
|
40
40
|
export { useHover } from './use-hover/use-hover.js';
|
|
41
|
-
export { useUuid } from './use-uuid/use-uuid.js';
|
|
42
41
|
export { useValidatedState } from './use-validated-state/use-validated-state.js';
|
|
43
42
|
export { useOs } from './use-os/use-os.js';
|
|
44
43
|
export { useSetState } from './use-set-state/use-set-state.js';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/esm/use-id/use-id.js
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { randomId } from '../utils/random-id/random-id.js';
|
|
1
|
+
import React, { useState, useLayoutEffect, useEffect } from 'react';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
const randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;
|
|
4
|
+
const useIsomorphicEffect = typeof document !== "undefined" ? useLayoutEffect : useEffect;
|
|
5
|
+
const useReactId = React["useId".toString()] || (() => void 0);
|
|
6
|
+
function useClientId() {
|
|
7
|
+
const [uuid, setUuid] = useState("");
|
|
8
|
+
useIsomorphicEffect(() => {
|
|
9
|
+
setUuid(randomId());
|
|
10
|
+
}, []);
|
|
11
|
+
return uuid;
|
|
12
|
+
}
|
|
13
|
+
function getReactId() {
|
|
14
|
+
const id = useReactId();
|
|
15
|
+
return id ? `mantine-${id.replaceAll(":", "")}` : "";
|
|
16
|
+
}
|
|
17
|
+
function useId(staticId) {
|
|
18
|
+
return typeof staticId === "string" ? staticId : getReactId() || useClientId();
|
|
7
19
|
}
|
|
8
20
|
|
|
9
21
|
export { useId };
|
package/esm/use-id/use-id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\n\nconst useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst useReactId: () => string | undefined =\n (React as any)['useId'.toString()] || (() => undefined);\n\nfunction useClientId() {\n const [uuid, setUuid] = useState('');\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n return uuid;\n}\n\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replaceAll(':', '')}` : '';\n}\n\nexport function useId(staticId?: string) {\n return typeof staticId === 'string' ? staticId : getReactId() || useClientId();\n}\n"],"names":[],"mappings":";;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;AAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;AAC/D,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,EAAE,mBAAmB,CAAC,MAAM;AAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,UAAU,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1B,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACM,SAAS,KAAK,CAAC,QAAQ,EAAE;AAChC,EAAE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;AACjF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-list-state.js","sources":["../../src/use-list-state/use-list-state.ts"],"sourcesContent":["import React, { useState } from 'react';\n\nexport interface
|
|
1
|
+
{"version":3,"file":"use-list-state.js","sources":["../../src/use-list-state/use-list-state.ts"],"sourcesContent":["import React, { useState } from 'react';\n\nexport interface UseListStateHandlers<T> {\n setState: React.Dispatch<React.SetStateAction<T[]>>;\n append: (...items: T[]) => void;\n prepend: (...items: T[]) => void;\n insert: (index: number, ...items: T[]) => void;\n pop: () => void;\n shift: () => void;\n apply: (fn: (item: T, index?: number) => T) => void;\n applyWhere: (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) => void;\n remove: (...indices: number[]) => void;\n reorder: ({ from, to }: { from: number; to: number }) => void;\n setItem: (index: number, item: T) => void;\n setItemProp: <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) => void;\n}\n\nexport type UseListState<T> = [T[], UseListStateHandlers<T>];\n\nexport function useListState<T>(initialValue: T[] = []): UseListState<T> {\n const [state, setState] = useState(initialValue);\n\n const append = (...items: T[]) => setState((current) => [...current, ...items]);\n const prepend = (...items: T[]) => setState((current) => [...items, ...current]);\n\n const insert = (index: number, ...items: T[]) =>\n setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);\n\n const apply = (fn: (item: T, index?: number) => T) =>\n setState((current) => current.map((item, index) => fn(item, index)));\n\n const remove = (...indices: number[]) =>\n setState((current) => current.filter((_, index) => !indices.includes(index)));\n\n const pop = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.pop();\n return cloned;\n });\n\n const shift = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.shift();\n return cloned;\n });\n\n const reorder = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const item = current[from];\n\n cloned.splice(from, 1);\n cloned.splice(to, 0, item);\n\n return cloned;\n });\n\n const setItem = (index: number, item: T) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = item;\n return cloned;\n });\n\n const setItemProp = <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = { ...cloned[index], [prop]: value };\n return cloned;\n });\n\n const applyWhere = (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) =>\n setState((current) =>\n current.map((item, index) => (condition(item, index) ? fn(item, index) : item))\n );\n\n return [\n state,\n {\n setState,\n append,\n prepend,\n insert,\n pop,\n shift,\n apply,\n applyWhere,\n remove,\n reorder,\n setItem,\n setItemProp,\n },\n ];\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,7 @@ function usePagination({
|
|
|
15
15
|
value: page,
|
|
16
16
|
onChange,
|
|
17
17
|
defaultValue: initialPage,
|
|
18
|
-
finalValue: initialPage
|
|
19
|
-
rule: (_page) => typeof _page === "number" && _page <= total
|
|
18
|
+
finalValue: initialPage
|
|
20
19
|
});
|
|
21
20
|
const setPage = (pageNumber) => {
|
|
22
21
|
if (pageNumber <= 0) {
|