@scrolia/react-native
Version:
A headless scrollbar component
1 lines • 2.88 kB
Source Map (JSON)
{"version":3,"file":"x.mjs","names":[],"sources":["../../../src/components/thumb/x.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ViewProps } from \"react-native\";\n\nimport * as React from \"react\";\nimport { Animated, View } from \"react-native\";\n\nimport { useScrollCore } from \"#/contexts/scrollcore\";\nimport { getComponentProps } from \"#/functions/props\";\nimport { useThumbXHandler } from \"#/hooks/thumb\";\n\n/** Props for the `ThumbX` component. */\ntype ThumbXProps = ViewProps & {\n ref?: React.Ref<View>;\n};\n\n/** Horizontal thumb component. */\nconst ThumbX = (props: ThumbXProps): React.JSX.Element => {\n const {\n options: { animated, plugins },\n x: { setHvThumb, scrollbarLength, scrollbarOffset },\n } = useScrollCore();\n\n const p: ThumbXProps = getComponentProps({\n name: \"thumbX\",\n props,\n plugins,\n });\n\n React.useEffect((): void => {\n setHvThumb(true);\n }, [\n setHvThumb,\n ]);\n\n const { panResponder } = useThumbXHandler();\n\n if (animated) {\n return (\n <Animated.View\n {...p}\n {...panResponder.panHandlers}\n ref={p.ref}\n style={[\n p.style,\n {\n width: Number.isNaN(scrollbarLength)\n ? 0\n : scrollbarLength,\n left: Number.isNaN(scrollbarOffset)\n ? 0\n : scrollbarOffset,\n },\n ]}\n >\n {p.children}\n </Animated.View>\n );\n }\n\n return (\n <View\n {...p}\n {...panResponder.panHandlers}\n ref={p.ref}\n style={[\n p.style,\n {\n width: Number.isNaN(scrollbarLength) ? 0 : scrollbarLength,\n left: Number.isNaN(scrollbarOffset) ? 0 : scrollbarOffset,\n },\n ]}\n >\n {p.children}\n </View>\n );\n};\n\nexport type { ThumbXProps };\nexport { ThumbX };\n"],"mappings":";;;;;;;;;;AAiBA,MAAM,UAAU,UAA0C;CACtD,MAAM,EACF,SAAS,EAAE,UAAU,WACrB,GAAG,EAAE,YAAY,iBAAiB,sBAClC,eAAe;CAEnB,MAAM,IAAiB,kBAAkB;EACrC,MAAM;EACN;EACA;EACH,CAAC;AAEF,OAAM,gBAAsB;AACxB,aAAW,KAAK;IACjB,CACC,WACH,CAAC;CAEF,MAAM,EAAE,iBAAiB,kBAAkB;AAE3C,KAAI,SACA,QACI,oBAAC,SAAS,MAAV;EACI,GAAI;EACJ,GAAI,aAAa;EACjB,KAAK,EAAE;EACP,OAAO,CACH,EAAE,OACF;GACI,OAAO,OAAO,MAAM,gBAAgB,GAC9B,IACA;GACN,MAAM,OAAO,MAAM,gBAAgB,GAC7B,IACA;GACT,CACJ;YAEA,EAAE;EACS;AAIxB,QACI,oBAAC,MAAD;EACI,GAAI;EACJ,GAAI,aAAa;EACjB,KAAK,EAAE;EACP,OAAO,CACH,EAAE,OACF;GACI,OAAO,OAAO,MAAM,gBAAgB,GAAG,IAAI;GAC3C,MAAM,OAAO,MAAM,gBAAgB,GAAG,IAAI;GAC7C,CACJ;YAEA,EAAE;EACA"}