UNPKG

@scrolia/react-native

Version:
1 lines 2.42 kB
{"version":3,"file":"x.mjs","names":[],"sources":["../../../src/components/list/x.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FlatListProps } from \"react-native\";\n\nimport * as React from \"react\";\nimport { FlatList } from \"react-native\";\n\nimport { useScrollCore } from \"#/contexts/scrollcore\";\nimport { getComponentProps } from \"#/functions/props\";\nimport { useContentXHandler } from \"#/hooks/content\";\n\n/** Props for the `ListX` component. */\ntype ListXProps<T> = FlatListProps<T> & {\n ref?: React.Ref<FlatList>;\n};\n\n/**\n * Horizontal list component.\n *\n * Use `ContentX` for generic content.\n */\nconst ListX = <T,>(props: ListXProps<T>): React.JSX.Element => {\n const {\n options: { disabled, plugins },\n x: { contentRef, contentType },\n } = useScrollCore();\n\n const p: ListXProps<T> = getComponentProps({\n name: \"listX\",\n props,\n plugins,\n });\n\n React.useImperativeHandle(p.ref, (): FlatList => {\n return contentRef.current as FlatList;\n }, [\n contentRef,\n ]);\n\n React.useEffect((): void => {\n contentType.current = \"flatlist\";\n }, [\n contentType,\n ]);\n\n const { onLayout, onContentSizeChange, onScroll } = useContentXHandler({\n props: p,\n });\n\n return (\n <FlatList\n {...p}\n ref={contentRef}\n showsHorizontalScrollIndicator={\n p.showsHorizontalScrollIndicator ?? disabled\n }\n showsVerticalScrollIndicator={false}\n onLayout={onLayout}\n onContentSizeChange={onContentSizeChange}\n onScroll={onScroll}\n horizontal={true}\n scrollEventThrottle={p.scrollEventThrottle ?? 5}\n >\n {p.children}\n </FlatList>\n );\n};\n\nexport type { ListXProps };\nexport { ListX };\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAM,SAAa,UAA4C;CAC3D,MAAM,EACF,SAAS,EAAE,UAAU,WACrB,GAAG,EAAE,YAAY,kBACjB,eAAe;CAEnB,MAAM,IAAmB,kBAAkB;EACvC,MAAM;EACN;EACA;EACH,CAAC;AAEF,OAAM,oBAAoB,EAAE,WAAqB;AAC7C,SAAO,WAAW;IACnB,CACC,WACH,CAAC;AAEF,OAAM,gBAAsB;AACxB,cAAY,UAAU;IACvB,CACC,YACH,CAAC;CAEF,MAAM,EAAE,UAAU,qBAAqB,aAAa,mBAAmB,EACnE,OAAO,GACV,CAAC;AAEF,QACI,oBAAC,UAAD;EACI,GAAI;EACJ,KAAK;EACL,gCACI,EAAE,kCAAkC;EAExC,8BAA8B;EACpB;EACW;EACX;EACV,YAAY;EACZ,qBAAqB,EAAE,uBAAuB;YAE7C,EAAE;EACI"}