diondiondion 7c9d73d1cb [Glitch] Update design of collection accounts editor
Port 5a38246ee8dffad6789fb4a3a7723477d2d97b4c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2026-04-17 18:10:54 +02:00

46 lines
1.1 KiB
TypeScript

import { FormattedMessage } from 'react-intl';
import ElephantImage from '@/images/elephant_ui.svg?react';
import classes from './empty_state.module.scss';
const images = {
default: <ElephantImage className={classes.defaultImage} />,
};
/**
* Simple empty state component with a neutral default title and customisable message.
*
* Action buttons can be passed as `children`.
*/
export const EmptyState: React.FC<{
image?: keyof typeof images | React.ReactElement | null;
title?: React.ReactNode;
message?: React.ReactNode;
children?: React.ReactNode;
}> = ({
image = 'default',
title = (
<FormattedMessage id='empty_state.no_results' defaultMessage='No results' />
),
message,
children,
}) => {
const imageToRender = typeof image === 'string' ? images[image] : image;
return (
<div className={classes.wrapper}>
{(title || message || imageToRender) && (
<div className={classes.content}>
{imageToRender}
{!!title && <h3>{title}</h3>}
{!!message && <p>{message}</p>}
</div>
)}
{children}
</div>
);
};