@scrolia/react-native
Version:
A headless scrollbar component
46 lines (42 loc) • 1.59 kB
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.js');
const require_contexts_scrollcore = require('../../contexts/scrollcore.js');
const require_functions_props = require('../../functions/props.js');
const require_hooks_content_index = require('../../hooks/content/index.js');
const react_native = require_rolldown_runtime.__toESM(require("react-native"));
const react = require_rolldown_runtime.__toESM(require("react"));
const react_jsx_runtime = require_rolldown_runtime.__toESM(require("react/jsx-runtime"));
/**
* Horizontal list component.
*
* Use `ContentX` for generic content.
*/
const ListX = (props) => {
const { options: { disabled, plugins }, x: { contentRef, contentType } } = require_contexts_scrollcore.useScrollCore();
const p = require_functions_props.getComponentProps({
name: "listX",
props,
plugins
});
react.useImperativeHandle(p.ref, () => {
return contentRef.current;
}, [contentRef]);
react.useEffect(() => {
contentType.current = "flatlist";
}, [contentType]);
const { onLayout, onContentSizeChange, onScroll } = require_hooks_content_index.useContentXHandler({ props: p });
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.FlatList, {
...p,
ref: contentRef,
showsHorizontalScrollIndicator: p.showsHorizontalScrollIndicator ?? disabled,
showsVerticalScrollIndicator: false,
onLayout,
onContentSizeChange,
onScroll,
horizontal: true,
scrollEventThrottle: p.scrollEventThrottle ?? 5,
children: p.children
});
};
exports.ListX = ListX;
//# sourceMappingURL=x.js.map