import { useUser } from '@app/hooks/useUser'; import defineMessages from '@app/utils/defineMessages'; import { ExclamationTriangleIcon } from '@heroicons/react/24/outline'; import Link from 'next/link'; import { useIntl } from 'react-intl'; const messages = defineMessages('components.Layout.UserWarnings', { emailRequired: 'An email address is required.', emailInvalid: 'Email address is invalid.', passwordRequired: 'A password is required.', }); interface UserWarningsProps { onClick?: () => void; } const UserWarnings: React.FC = ({ onClick }) => { const intl = useIntl(); const { user } = useUser(); //check if a user has warnings if (!user || !user.warnings || user.warnings.length === 0) { return null; } let res = null; user.warnings.forEach((warning) => { let link = ''; let warningText = ''; let warningTitle = ''; switch (warning) { case 'userEmailRequired': link = '/profile/settings/'; warningTitle = 'Profile is incomplete'; warningText = intl.formatMessage(messages.emailRequired); } res = ( { if (e.key === 'Enter' && onClick) { onClick(); } }} role="button" tabIndex={0} className="mx-2 mb-2 flex items-center rounded-lg bg-yellow-500 p-2 text-xs text-white ring-1 ring-gray-700 transition duration-300 hover:bg-yellow-400" >
{warningTitle} {warningText}
); }); return res; }; export default UserWarnings;