import { Box } from '@rocket.chat/fuselage'; import { useStableCallback } from '@rocket.chat/fuselage-hooks'; import { AnnouncementBanner, GenericModal } from '@rocket.chat/ui-client'; import { useSetModal } from '@rocket.chat/ui-contexts'; import type { KeyboardEvent, MouseEvent } from 'react'; import { useTranslation } from 'react-i18next'; import MarkdownText from '../../../components/MarkdownText'; type RoomAnnouncementParams = { announcement: string; }; const RoomAnnouncement = ({ announcement }: RoomAnnouncementParams) => { const { t } = useTranslation(); const setModal = useSetModal(); const handleOpenAnnouncement = useStableCallback(() => { setModal( setModal(null)} onClose={() => setModal(null)} > , ); }); const handleClick = (e: MouseEvent) => { if ((e.target as HTMLAnchorElement).href) { return; } if (window?.getSelection()?.toString() !== '') { return; } handleOpenAnnouncement(); }; const handleKeyDown = (e: KeyboardEvent) => { if ((e.target as HTMLAnchorElement).href) { return; } if (e.code === 'Enter' || e.code === 'Space') { e.preventDefault(); handleOpenAnnouncement(); } }; return announcement ? ( ) : null; }; export default RoomAnnouncement;