UNPKG

@zohodesk/hooks

Version:

Unified Component Library - Hooks

206 lines (178 loc) 4.66 kB
# #UNIFIED COMPONENTS LIBRARY - Hooks In this package, We provide below react hooks for components development. - useAccordion - useAccordionHeight - useAdaptiveRenderer - useAvatar - useDateTime - useCalendar - useTime - useEventListener - useFileUpload - useFloating - useMediaViewer - useModal - useMultiselect - useMultiselectCategory - useNotificationBadge - usePagination - usePopup - useAdvancedPopup - useRadio - useSelect - useSelectSearch - useSelectControl - useSwitch - useSelectTab - useTextArea - useTextBox - useClickOutside - useCommonReducer - useContainerQuery - useEffectCallOnlyAfterState - useElementResize - useEscape - useEscapeEffect - useEvent - useId - useMediaQuery - useMergeState - useMergeStyle - usePrevious - useIntersectionObserver - useResizeObserver - useScrollEnd - useScrollParents - useScrollStopper - useTimeout - useWindowResize # 2.0.5 - `useAdaptiveRenderer` - New hook added # 2.0.4 - `useEventListener` - New hook added # 2.0.3 - `useMergeState` - New hook added # 2.0.2 - `useEffectCallOnlyAfterState` - Cleanup option provided as third argument - `useIntersectionObserver` - Changing isStartIntersecting will reinitiate the observer - `useIntersectionObserverGroup` - New hook added # 2.0.1 - `useResizeObserver` issue fix - `useList` deprecated - `useMultiselectCatogory` arguments and return values has been updated ```js // Before const { selectedValues, searchStr, ...otherData } = useMultiselectCatogory({ options: [], selectedValues: [], selectedGroup: '' }); // After const { selectedOptions, searchString, ...otherData } = useMultiselectCatogory({ options: [], selectedOptions: [], selectedGroup: '' }); ``` - `useFileUpload` **"getRef"** argument removed. handleFocus method added. - `useElementResize` will not return **"width"**. Introduced **"resizeType"** and **"needContainerSizeChange"** props. ```js // Before const { setContainerRef, setBarRef, width } = useElementResize({ minWidth: 300, handleResizeCallback: () => {} }); // After const { setContainerRef, setBarRef } = useElementResize({ minHeight: 100, maxHeight: 500, minWidth: 100, maxWidth: 500, resizeType: 'both' || 'height' || 'width', handleResizeCallback: () => {}, needContainerSizeChange: true || false }); ``` # 2.0.0 ### Newly Introduced - useAdvancedPopup - useSelectSearch - useIntersectionObserver ### Removed - useGlobalEscape - EscapeContext - EscapeProvider - ResizeObserverProvider - useVisibleOnPage ### Updated - `useEscape` arguments structure has been updated. And No provider is needed to use the escape functionalities with the order. ```js // Before useEscape(callback, isRegister); // After useEscape({ callback: () => {}, isRegister: true }); ``` - `useFloating` arguments is updated. Now you have to give a function which should return element ref. - `useFloating` return value is also updated. Now, this returns a function that will returns the popup position related data. ```js // Before const { ...floatingData, handlePosition } = useFloating(containerEleRef, floatingEleRef, options); // After const getFloating = useFloating(() => containerEleRef, () => floatingEleRef, options); const { view, views, viewsOffset, targetOffset, popupOffset, relativeOffset, relativePosition, popupPosition } = getFloating(); ``` - `useClickOutside` arguments structure has been updated ```js // Before useClickOutside({ element: elementRef, callback: () => {} }); // After useClickOutside({ getElements: () => [element1_Ref, element2_Ref], callback: () => {}, isRegister: true }); ``` - `useScrollStopper` arguments has been updated. ```js // Before useScrollStopper({ element: elementRef, excludeElement: excludeElementRef, isStop: false }); // After useScrollStopper({ element: elementRef, getExcludeElements: () => [excludeElement1_Ref, excludeElement2_Ref], isStop: false }); ``` - `useContainerQuery` arguments is updated. Now you have to give a function which should return element ref. - `useContainerQuery` return value is also updated. Now, this returns only the matched query object. ```js // Before const [elementRef, matchedQuery] = useContainerQuery(query, options); // After const matchedQuery = useContainerQuery(() => elementRef, query, options); ``` - `useResizeObserver` arguments is updated ```js // Before useResizeObserver({ element: elementRef callback: () => {} }); // After useResizeObserver({ getElement: () => elementRef, callback: () => {}, isObserve: true }); ``` - `useWindowResize` - Removed the resize handler from useEffect dependency