Danila b50c54f855
Add and use clsx (classnames alternative) (#2249)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-10-19 16:14:28 +02:00

64 lines
1.1 KiB
TypeScript

import "./Stack.scss";
import React from "react";
import clsx from "clsx";
type StackProps = {
children: React.ReactNode;
gap?: number;
align?: "start" | "center" | "end" | "baseline";
justifyContent?: "center" | "space-around" | "space-between";
className?: string | boolean;
};
const RowStack = ({
children,
gap,
align,
justifyContent,
className,
}: StackProps) => {
return (
<div
className={clsx("Stack Stack_horizontal", className)}
style={
{
"--gap": gap,
alignItems: align,
justifyContent,
} as React.CSSProperties
}
>
{children}
</div>
);
};
const ColStack = ({
children,
gap,
align,
justifyContent,
className,
}: StackProps) => {
return (
<div
className={clsx("Stack Stack_vertical", className)}
style={
{
"--gap": gap,
justifyItems: align,
justifyContent,
} as React.CSSProperties
}
>
{children}
</div>
);
};
export default {
Row: RowStack,
Col: ColStack,
};