UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 2.25 kB
{"version":3,"file":"ScrollAreaScrollbarAuto.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarVisible"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\nexport interface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarAuto(props: ScrollAreaScrollbarAutoProps) {\n const context = useScrollAreaContext();\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n\n const handleResize = useDebouncedCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n if (forceMount || visible) {\n return (\n <ScrollAreaScrollbarVisible data-state={visible ? 'visible' : 'hidden'} {...scrollbarProps} />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarAuto.displayName = '@mantine/core/ScrollAreaScrollbarAuto';\n"],"mappings":";;;;;;;;;AAaA,SAAgB,wBAAwB,OAAqC;CAC3E,MAAM,UAAUA,2BAAAA,sBAAsB;CACtC,MAAM,EAAE,YAAY,GAAG,mBAAmB;CAC1C,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,MAAM;CAC7C,MAAM,eAAe,MAAM,gBAAgB;CAE3C,MAAM,gBAAA,GAAA,eAAA,4BAA0C;AAC9C,MAAI,QAAQ,UAAU;GACpB,MAAM,cAAc,QAAQ,SAAS,cAAc,QAAQ,SAAS;GACpE,MAAM,cAAc,QAAQ,SAAS,eAAe,QAAQ,SAAS;AACrE,cAAW,eAAe,cAAc,YAAY;;IAErD,GAAG;AAEN,6BAAA,kBAAkB,QAAQ,UAAU,aAAa;AACjD,6BAAA,kBAAkB,QAAQ,SAAS,aAAa;AAEhD,KAAI,cAAc,QAChB,QACE,iBAAA,GAAA,kBAAA,KAACC,mCAAAA,4BAAD;EAA4B,cAAY,UAAU,YAAY;EAAU,GAAI;EAAkB,CAAA;AAIlG,QAAO;;AAGT,wBAAwB,cAAc"}