{original.type === 'invite' && original.details ? (
) : null}
{original.message && original.title ? (
{`${original.title}, ${original.message}`}
) : null}
{!original.message && original.title ? (
{original.title}
) : null}
{original.message &&
!original.title &&
original.message !==
`This is a generated invite to ${original.details?.worldName}` ? (
{original.message}
) : null}
{!original.message &&
original.details?.inviteMessage ? (
{original.details.inviteMessage}
) : null}
{!original.message &&
original.details?.requestMessage ? (
{original.details.requestMessage}
) : null}
{!original.message &&
original.details?.responseMessage ? (
{original.details.responseMessage}
) : null}
);
}
},
{
id: 'action',
meta: {
class: 'text-right',
label: () => t('table.notification.action')
},
size: 120,
minSize: 120,
maxSize: 120,
header: () => t('table.notification.action'),
enableSorting: false,
cell: ({ row }) => {
const original = row.original;
const hasResponses = Array.isArray(original.responses);
const showDecline =
original.type !== 'requestInviteResponse' &&
original.type !== 'inviteResponse' &&
original.type !== 'message' &&
original.type !== 'boop' &&
original.type !== 'groupChange' &&
!original.type?.includes('group.') &&
!original.type?.includes('moderation.') &&
!original.type?.includes('instance.') &&
!original.link?.startsWith('economy.');
const showDeleteLog =
original.type !== 'friendRequest' &&
original.type !== 'ignoredFriendRequest';
return (
{original.senderUserId !== currentUser.value?.id &&
!isNotificationExpired(original) ? (
{original.type === 'friendRequest' ? (
{t(
'view.notification.actions.accept'
)}
) : null}
{original.type === 'invite' ? (
{t(
'view.notification.actions.decline_with_message'
)}
) : null}
{original.type === 'requestInvite' ? (
{canInvite() ? (
{t(
'view.notification.actions.invite'
)}
) : null}
{t(
'view.notification.actions.decline_with_message'
)}
) : null}
{hasResponses
? original.responses.map((response) => {
const onClick = () => {
if (response.type === 'link') {
openNotificationLink(
response.data
);
return;
}
if (
response.icon === 'reply' &&
original.type === 'boop'
) {
showSendBoopDialog(
original.senderUserId
);
return;
}
sendNotificationResponse(
original.id,
original.responses,
response.type
);
};
const ResponseIcon = getResponseIcon(
response,
original.type
);
return (
{response.text}
);
})
: null}
{showDecline ? (
{t(
'view.notification.actions.decline'
)}
) : null}
{original.type === 'group.queueReady' ? (
{t(
'view.notification.actions.delete_log'
)}
) : null}
) : null}
{showDeleteLog ? (
{t(
'view.notification.actions.delete_log'
)}
) : null}
);
}
},
{
id: 'trailing',
header: () => null,
enableSorting: false,
enableResizing: false,
size: 5,
cell: () => null
}
];
};