From 12a03a9a72f7895d571dbaeeb245d92aa277a610 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 6 Oct 2023 17:48:03 +0200 Subject: refactor(components): merge HeadingButton and Widget components The HeadingButton component was only used inside Widget component and it is not very useful on its own so I merge the two components in a new Collapsible component. --- src/components/molecules/layout/widget.tsx | 61 ------------------------------ 1 file changed, 61 deletions(-) delete mode 100644 src/components/molecules/layout/widget.tsx (limited to 'src/components/molecules/layout/widget.tsx') diff --git a/src/components/molecules/layout/widget.tsx b/src/components/molecules/layout/widget.tsx deleted file mode 100644 index 0bb04c7..0000000 --- a/src/components/molecules/layout/widget.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { FC, ReactNode, useState } from 'react'; -import { HeadingButton, type HeadingButtonProps } from '../buttons'; -import styles from './widget.module.scss'; - -export type WidgetProps = Pick< - HeadingButtonProps, - 'expanded' | 'level' | 'title' -> & { - /** - * The widget body. - */ - children: ReactNode; - /** - * Set additional classnames to the widget wrapper. - */ - className?: string; - /** - * Determine if the widget body should have borders. Default: false. - */ - withBorders?: boolean; - /** - * Determine if a vertical scrollbar should be displayed. Default: false. - */ - withScroll?: boolean; -}; - -/** - * Widget component - * - * Render an expandable widget. - */ -export const Widget: FC = ({ - children, - className = '', - expanded = true, - level, - title, - withBorders = false, - withScroll = false, -}) => { - const [isExpanded, setIsExpanded] = useState(expanded); - const stateClass = isExpanded ? 'widget--expanded' : 'widget--collapsed'; - const bordersClass = withBorders - ? 'widget--has-borders' - : 'widget--no-borders'; - const scrollClass = withScroll ? 'widget--has-scroll' : 'widget--no-scroll'; - const widgetClass = `${styles.widget} ${styles[bordersClass]} ${styles[stateClass]} ${styles[scrollClass]} ${className}`; - - return ( -
- -
{children}
-
- ); -}; -- cgit v1.2.3