import React, { useCallback } from 'react';
import { UserPicture, PagePathLabel } from '@growi/ui';
import { IInAppNotification } from '~/interfaces/in-app-notification';
import { apiv3Post } from '~/client/util/apiv3-client';
import FormattedDistanceDate from '../FormattedDistanceDate';
import loggerFactory from '~/utils/logger';
const logger = loggerFactory('growi:InAppNotificationElm');
interface Props {
notification: IInAppNotification
}
const InAppNotificationElm = (props: Props): JSX.Element => {
const { notification } = props;
const getActionUsers = () => {
const latestActionUsers = notification.actionUsers.slice(0, 3);
const latestUsers = latestActionUsers.map((user) => {
return `@${user.name}`;
});
let actionedUsers = '';
const latestUsersCount = latestUsers.length;
if (latestUsersCount === 1) {
actionedUsers = latestUsers[0];
}
else if (notification.actionUsers.length >= 4) {
actionedUsers = `${latestUsers.slice(0, 2).join(', ')} and ${notification.actionUsers.length - 2} others`;
}
else {
actionedUsers = latestUsers.join(', ');
}
return actionedUsers;
};
const renderActionUserPictures = (): JSX.Element => {
const actionUsers = notification.actionUsers;
if (actionUsers.length < 1) {
return <>>;
}
if (actionUsers.length === 1) {
return