mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
add prop configuration for X,Y scroll on ScrollArea
This commit is contained in:
@@ -13,10 +13,20 @@ interface ScrollAreaProps extends React.ComponentPropsWithoutRef<'div'> {
|
|||||||
allowDragScroll?: boolean;
|
allowDragScroll?: boolean;
|
||||||
debugScrollPosition?: boolean;
|
debugScrollPosition?: boolean;
|
||||||
scrollHideDelay?: number;
|
scrollHideDelay?: number;
|
||||||
|
scrollX?: boolean;
|
||||||
|
scrollY?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ScrollArea = forwardRef((props: ScrollAreaProps, ref: Ref<HTMLDivElement>) => {
|
export const ScrollArea = forwardRef((props: ScrollAreaProps, ref: Ref<HTMLDivElement>) => {
|
||||||
const { allowDragScroll, children, className, scrollHideDelay, ...htmlProps } = props;
|
const {
|
||||||
|
allowDragScroll,
|
||||||
|
children,
|
||||||
|
className,
|
||||||
|
scrollHideDelay,
|
||||||
|
scrollX = false,
|
||||||
|
scrollY = true,
|
||||||
|
...htmlProps
|
||||||
|
} = props;
|
||||||
|
|
||||||
const containerRef = useRef(null);
|
const containerRef = useRef(null);
|
||||||
const [scroller, setScroller] = useState<HTMLElement | null | Window>(null);
|
const [scroller, setScroller] = useState<HTMLElement | null | Window>(null);
|
||||||
@@ -24,7 +34,7 @@ export const ScrollArea = forwardRef((props: ScrollAreaProps, ref: Ref<HTMLDivEl
|
|||||||
const [initialize, osInstance] = useOverlayScrollbars({
|
const [initialize, osInstance] = useOverlayScrollbars({
|
||||||
defer: false,
|
defer: false,
|
||||||
options: {
|
options: {
|
||||||
overflow: { x: 'hidden', y: 'scroll' },
|
overflow: { x: scrollX ? 'scroll' : 'hidden', y: scrollY ? 'scroll' : 'hidden' },
|
||||||
scrollbars: {
|
scrollbars: {
|
||||||
autoHide: 'leave',
|
autoHide: 'leave',
|
||||||
autoHideDelay: scrollHideDelay || 500,
|
autoHideDelay: scrollHideDelay || 500,
|
||||||
|
|||||||
Reference in New Issue
Block a user