import { useCallback } from 'react';
import { FormattedMessage, useIntl, defineMessages } from 'react-intl';
import { Link } from 'react-router-dom';
import CloseIcon from '@/material-icons/400-24px/close.svg?react';
import { dismissSuggestion } from 'mastodon/actions/suggestions';
import { Avatar } from 'mastodon/components/avatar';
import { DisplayName } from 'mastodon/components/display_name';
import { FollowButton } from 'mastodon/components/follow_button';
import { IconButton } from 'mastodon/components/icon_button';
import { domain } from 'mastodon/initial_state';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
const messages = defineMessages({
dismiss: {
id: 'follow_suggestions.dismiss',
defaultMessage: "Don't show again",
},
});
type SuggestionSource =
| 'friends_of_friends'
| 'similar_to_recently_followed'
| 'featured'
| 'most_followed'
| 'most_interactions';
export const Card: React.FC<{ id: string; source: SuggestionSource }> = ({
id,
source,
}) => {
const intl = useIntl();
const account = useAppSelector((state) => state.accounts.get(id));
const dispatch = useAppDispatch();
const handleDismiss = useCallback(() => {
void dispatch(dismissSuggestion({ accountId: id }));
}, [id, dispatch]);
let label;
switch (source) {
case 'friends_of_friends':
label = (