feat: support for view management (#2892)

This commit is contained in:
3720
2023-06-30 13:40:00 +08:00
committed by GitHub
parent d3393cb0fc
commit 9d0db78f64
45 changed files with 1936 additions and 477 deletions
@@ -8,22 +8,28 @@ import * as styles from './index.css';
export type ScrollableContainerProps = {
showScrollTopBorder?: boolean;
inTableView?: boolean;
className?: string;
viewPortClassName?: string;
};
export const ScrollableContainer = ({
children,
showScrollTopBorder = false,
inTableView = false,
className,
viewPortClassName,
}: PropsWithChildren<ScrollableContainerProps>) => {
const [hasScrollTop, ref] = useHasScrollTop();
return (
<ScrollArea.Root className={styles.scrollableContainerRoot}>
<ScrollArea.Root
className={clsx(styles.scrollableContainerRoot, className)}
>
<div
data-has-scroll-top={hasScrollTop}
className={clsx({ [styles.scrollTopBorder]: showScrollTopBorder })}
/>
<ScrollArea.Viewport
className={clsx([styles.scrollableViewport])}
className={clsx([styles.scrollableViewport, viewPortClassName])}
ref={ref}
>
<div className={styles.scrollableContainer}>{children}</div>