UNPKG

@lisn.js/react

Version:
1 lines 6.65 kB
{"version":3,"file":"ScrollbarComponent.cjs","names":["Object","defineProperty","exports","value","useScrollbar","ScrollbarComponent","_react","require","_lisn","_useWidget","_useDeepMemo","_excluded","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","_ref","_config$hideNative","as","children","config","widgetRef","className","props","elementRef","useWidget","newScrollbar","createElement","ref","hideNative","settings","scrollbarHideNative","join","useRef","configMemo","useDeepMemo","useEffect","widgetPromise","Scrollbar","enableMain","then","widget","current","destroy","getWidget","element","HTMLElement"],"sources":["../../src/ScrollbarComponent.tsx"],"sourcesContent":["\"use client\";\nimport { useRef, useEffect, createElement, ElementType } from \"react\";\n\nimport { Scrollbar, ScrollbarConfig } from \"lisn.js\";\nimport { settings } from \"lisn.js\";\n\nimport { useWidget } from \"./useWidget\";\nimport { useDeepMemo } from \"./useDeepMemo\";\nimport { WidgetComponentRef, WidgetComponentProps } from \"./types\";\n\nexport type ScrollbarComponentRef = WidgetComponentRef<Scrollbar>;\n\nexport type ScrollbarComponentConfig = ScrollbarConfig;\n\nexport type ScrollbarComponentProps<T extends ElementType> =\n WidgetComponentProps<T, Scrollbar, ScrollbarComponentConfig>;\n\nexport const ScrollbarComponent = <T extends ElementType = \"div\">({\n as,\n children,\n config,\n widgetRef,\n className,\n ...props\n}: ScrollbarComponentProps<T>) => {\n const elementRef = useWidget<T, Scrollbar, ScrollbarComponentConfig>(\n newScrollbar,\n config,\n widgetRef,\n );\n\n return createElement(\n as || \"div\",\n {\n ref: elementRef,\n className: [\n className ?? \"\",\n (config?.hideNative ?? settings.scrollbarHideNative)\n ? \"lisn-hide-scroll\"\n : \"\",\n ].join(\" \"),\n ...props,\n },\n children,\n );\n};\n\nexport const useScrollbar = (config?: ScrollbarConfig) => {\n const widgetRef = useRef<Scrollbar>(null);\n const configMemo = useDeepMemo(config);\n\n useEffect(() => {\n const widgetPromise = Scrollbar.enableMain(configMemo);\n widgetPromise.then((widget) => {\n widgetRef.current = widget;\n });\n\n return () => {\n widgetPromise.then((widget) => widget.destroy());\n };\n }, [configMemo]);\n\n return {\n getWidget: () => widgetRef.current,\n };\n};\n\n// ----------\n\nconst newScrollbar = (element: Element, config?: ScrollbarComponentConfig) =>\n element instanceof HTMLElement ? new Scrollbar(element, config) : null;\n"],"mappings":"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","ignoreList":[]}