npm package diff
Package: @chakra-ui/react
Versions: 2.10.1 - 2.10.2
File: package/dist/esm/descendant/use-descendant.mjs
Index: package/dist/esm/descendant/use-descendant.mjs
===================================================================
--- package/dist/esm/descendant/use-descendant.mjs
+++ package/dist/esm/descendant/use-descendant.mjs
@@ -1,63 +1,59 @@
'use client';
import { mergeRefs } from '@chakra-ui/hooks';
import { createContext } from '@chakra-ui/utils';
-import { useRef, useState } from 'react';
+import { useState, useRef } from 'react';
import { DescendantsManager } from './descendant.mjs';
-import { cast, useSafeLayoutEffect } from './utils.mjs';
+import { useSafeLayoutEffect, cast } from './utils.mjs';
-function useDescendants() {
- const descendants = useRef(new DescendantsManager());
- useSafeLayoutEffect(() => {
- return () => descendants.current.destroy();
+function createDescendantContext() {
+ const [DescendantsContextProvider, useDescendantsContext] = createContext({
+ name: "DescendantsProvider",
+ errorMessage: "useDescendantsContext must be used within DescendantsProvider"
});
- return descendants.current;
-}
-const [DescendantsContextProvider, useDescendantsContext] = createContext({
- name: "DescendantsProvider",
- errorMessage: "useDescendantsContext must be used within DescendantsProvider"
-});
-function useDescendant(options) {
- const descendants = useDescendantsContext();
- const [index, setIndex] = useState(-1);
- const ref = useRef(null);
- useSafeLayoutEffect(() => {
- return () => {
+ const useDescendant = (options) => {
+ const descendants = useDescendantsContext();
+ const [index, setIndex] = useState(-1);
+ const ref = useRef(null);
+ useSafeLayoutEffect(() => {
+ return () => {
+ if (!ref.current)
+ return;
+ descendants.unregister(ref.current);
+ };
+ }, []);
+ useSafeLayoutEffect(() => {
if (!ref.current)
return;
- descendants.unregister(ref.current);
+ const dataIndex = Number(ref.current.dataset["index"]);
+ if (index != dataIndex && !Number.isNaN(dataIndex)) {
+ setIndex(dataIndex);
+ }
+ });
+ const refCallback = options ? cast(descendants.register(options)) : cast(descendants.register);
+ return {
+ descendants,
+ index,
+ enabledIndex: descendants.enabledIndexOf(ref.current),
+ register: mergeRefs(refCallback, ref)
};
- }, []);
- useSafeLayoutEffect(() => {
- if (!ref.current)
- return;
- const dataIndex = Number(ref.current.dataset["index"]);
- if (index != dataIndex && !Number.isNaN(dataIndex)) {
- setIndex(dataIndex);
- }
- });
- const refCallback = options ? cast(descendants.register(options)) : cast(descendants.register);
- return {
- descendants,
- index,
- enabledIndex: descendants.enabledIndexOf(ref.current),
- register: mergeRefs(refCallback, ref)
};
-}
-function createDescendantContext() {
- const ContextProvider = cast(DescendantsContextProvider);
- const _useDescendantsContext = () => cast(useDescendantsContext());
- const _useDescendant = (options) => useDescendant(options);
- const _useDescendants = () => useDescendants();
+ const useDescendants = () => {
+ const descendants = useRef(new DescendantsManager());
+ useSafeLayoutEffect(() => {
+ return () => descendants.current.destroy();
+ });
+ return descendants.current;
+ };
return [
// context provider
- ContextProvider,
+ DescendantsContextProvider,
// call this when you need to read from context
- _useDescendantsContext,
+ useDescendantsContext,
// descendants state information, to be called and passed to `ContextProvider`
- _useDescendants,
+ useDescendants,
// descendant index information
- _useDescendant
+ useDescendant
];
}
export { createDescendantContext };