Apply masked scroll to env vars
This commit is contained in:
parent
31a722db26
commit
56d013f663
@ -1,6 +1,7 @@
|
|||||||
import clsx from 'clsx/lite';
|
import clsx from 'clsx/lite';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import CopyButton from './CopyButton';
|
import CopyButton from './CopyButton';
|
||||||
|
import MaskedScroll from './MaskedScroll';
|
||||||
|
|
||||||
export default function EnvVar({
|
export default function EnvVar({
|
||||||
variable,
|
variable,
|
||||||
@ -18,12 +19,14 @@ export default function EnvVar({
|
|||||||
className?: string,
|
className?: string,
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<div
|
<MaskedScroll
|
||||||
|
direction="horizontal"
|
||||||
className={clsx(
|
className={clsx(
|
||||||
'inline-flex max-w-full',
|
'inline-flex max-w-full',
|
||||||
'overflow-x-auto overflow-y-hidden',
|
'overflow-y-hidden',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
|
hideScrollbar
|
||||||
>
|
>
|
||||||
<span className="inline-flex items-center gap-1">
|
<span className="inline-flex items-center gap-1">
|
||||||
<span className={clsx(
|
<span className={clsx(
|
||||||
@ -50,6 +53,6 @@ export default function EnvVar({
|
|||||||
{trailingContent}
|
{trailingContent}
|
||||||
</span>}
|
</span>}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</MaskedScroll>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { HTMLAttributes, useRef } from 'react';
|
|||||||
import useMaskedScroll from './useMaskedScroll';
|
import useMaskedScroll from './useMaskedScroll';
|
||||||
|
|
||||||
export default function MaskedScroll({
|
export default function MaskedScroll({
|
||||||
direction = 'vertical',
|
direction,
|
||||||
fadeSize,
|
fadeSize,
|
||||||
animationDuration,
|
animationDuration,
|
||||||
hideScrollbar,
|
hideScrollbar,
|
||||||
@ -17,7 +17,7 @@ export default function MaskedScroll({
|
|||||||
Omit<Parameters<typeof useMaskedScroll>[0], 'ref'>) {
|
Omit<Parameters<typeof useMaskedScroll>[0], 'ref'>) {
|
||||||
const ref = useRef<HTMLDivElement>(null);
|
const ref = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
const { styleMask } = useMaskedScroll({
|
const { styleMask, classNameMask } = useMaskedScroll({
|
||||||
ref,
|
ref,
|
||||||
direction,
|
direction,
|
||||||
fadeSize,
|
fadeSize,
|
||||||
@ -31,9 +31,7 @@ Omit<Parameters<typeof useMaskedScroll>[0], 'ref'>) {
|
|||||||
{...props}
|
{...props}
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className={clsx(
|
className={clsx(
|
||||||
direction === 'vertical'
|
classNameMask,
|
||||||
? 'max-h-full overflow-y-scroll'
|
|
||||||
: 'max-w-full overflow-x-scroll',
|
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
style={{ ...styleMask, ...style }}
|
style={{ ...styleMask, ...style }}
|
||||||
|
|||||||
@ -108,5 +108,10 @@ export default function useMaskedScroll({
|
|||||||
};
|
};
|
||||||
}, [isVertical, fadeSize, animationDuration, hideScrollbar]);
|
}, [isVertical, fadeSize, animationDuration, hideScrollbar]);
|
||||||
|
|
||||||
return { styleMask, updateMask };
|
const classNameMask = useMemo(() => isVertical
|
||||||
|
? 'max-h-full overflow-y-scroll'
|
||||||
|
: 'max-w-full overflow-x-scroll'
|
||||||
|
, [isVertical]);
|
||||||
|
|
||||||
|
return { styleMask, classNameMask, updateMask };
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user