@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
40 lines (39 loc) • 1.75 kB
JavaScript
"use client";
import { useScrollAreaContext } from "../ScrollArea.context.mjs";
import { ScrollAreaScrollbarVisible } from "./ScrollAreaScrollbarVisible.mjs";
import { ScrollAreaScrollbarAuto } from "./ScrollAreaScrollbarAuto.mjs";
import { ScrollAreaScrollbarHover } from "./ScrollAreaScrollbarHover.mjs";
import { ScrollAreaScrollbarScroll } from "./ScrollAreaScrollbarScroll.mjs";
import { useEffect } from "react";
import { jsx } from "react/jsx-runtime";
//#region packages/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.tsx
function ScrollAreaScrollbar(props) {
const { forceMount, ...scrollbarProps } = props;
const context = useScrollAreaContext();
const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;
const isHorizontal = props.orientation === "horizontal";
useEffect(() => {
isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);
return () => {
isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);
};
}, [
isHorizontal,
onScrollbarXEnabledChange,
onScrollbarYEnabledChange
]);
return context.type === "hover" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, {
...scrollbarProps,
forceMount
}) : context.type === "scroll" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, {
...scrollbarProps,
forceMount
}) : context.type === "auto" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, {
...scrollbarProps,
forceMount
}) : context.type === "always" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps }) : null;
}
ScrollAreaScrollbar.displayName = "@mantine/core/ScrollAreaScrollbar";
//#endregion
export { ScrollAreaScrollbar };
//# sourceMappingURL=ScrollAreaScrollbar.mjs.map