import React from 'react'; import { HStack, IconButton, Stack, Text } from 'soapbox/components/ui'; interface IWidgetTitle { /** Title text for the widget. */ title: React.ReactNode } /** Title of a widget. */ const WidgetTitle = ({ title }: IWidgetTitle): JSX.Element => ( {title} ); interface IWidgetBody { children: React.ReactNode } /** Body of a widget. */ const WidgetBody: React.FC = ({ children }): JSX.Element => ( {children} ); interface IWidget { /** Widget title text. */ title: React.ReactNode /** Callback when the widget action is clicked. */ onActionClick?: () => void /** URL to the svg icon for the widget action. */ actionIcon?: string /** Text for the action. */ actionTitle?: string action?: JSX.Element children?: React.ReactNode } /** Sidebar widget. */ const Widget: React.FC = ({ title, children, onActionClick, actionIcon = require('@tabler/icons/arrow-right.svg'), actionTitle, action, }): JSX.Element => { return ( {action || (onActionClick && ( ))} {children} ); }; export default Widget;