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;