Port c1414f1161b5fc1b8b6755d22b76415c82b64d7c to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
28 lines
651 B
TypeScript
28 lines
651 B
TypeScript
import { useCallback } from 'react';
|
|
import type { FC } from 'react';
|
|
|
|
import { useDismissible } from '@/flavours/glitch/hooks/useDismissible';
|
|
|
|
import { Callout } from '.';
|
|
import type { CalloutProps } from '.';
|
|
|
|
type DismissibleCalloutProps = CalloutProps & {
|
|
id: string;
|
|
};
|
|
|
|
export const DismissibleCallout: FC<DismissibleCalloutProps> = (props) => {
|
|
const { dismiss, wasDismissed } = useDismissible(props.id);
|
|
|
|
const { onClose } = props;
|
|
const handleClose = useCallback(() => {
|
|
dismiss();
|
|
onClose?.();
|
|
}, [dismiss, onClose]);
|
|
|
|
if (wasDismissed) {
|
|
return null;
|
|
}
|
|
|
|
return <Callout {...props} onClose={handleClose} />;
|
|
};
|