diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-12-26 14:11:08 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-12-26 14:11:08 +0900 |
| commit | ec4d5857d80938758ce64930159be2c941d4e30f (patch) | |
| tree | bfa24ed39ef9b90e290a504ca5ed2ee00ef280c7 /src/client/sw/compose-notification.ts | |
| parent | Add note (diff) | |
| download | misskey-ec4d5857d80938758ce64930159be2c941d4e30f.tar.gz misskey-ec4d5857d80938758ce64930159be2c941d4e30f.tar.bz2 misskey-ec4d5857d80938758ce64930159be2c941d4e30f.zip | |
Fix service worker generation
Diffstat (limited to 'src/client/sw/compose-notification.ts')
| -rw-r--r-- | src/client/sw/compose-notification.ts | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/client/sw/compose-notification.ts b/src/client/sw/compose-notification.ts new file mode 100644 index 0000000000..0863d7ef8b --- /dev/null +++ b/src/client/sw/compose-notification.ts @@ -0,0 +1,90 @@ +import getNoteSummary from '../../misc/get-note-summary'; +import getUserName from '../../misc/get-user-name'; +import { i18n } from '@/sw/i18n'; + +export default async function(type, data): Promise<[string, NotificationOptions]> { + switch (type) { + case 'driveFileCreated': // TODO (Server Side) + return [i18n.t('_notification.fileUploaded'), { + body: data.name, + icon: data.url + }]; + case 'notification': + switch (data.type) { + case 'mention': + return [i18n.t('_notification.youGotMention', { name: getUserName(data.user) }), { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'reply': + return [i18n.t('_notification.youGotReply', { name: getUserName(data.user) }), { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'renote': + return [i18n.t('_notification.youRenoted', { name: getUserName(data.user) }), { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'quote': + return [i18n.t('_notification.youGotQuote', { name: getUserName(data.user) }), { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'reaction': + return [`${data.reaction} ${getUserName(data.user)}`, { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'pollVote': + return [i18n.t('_notification.youGotPoll', { name: getUserName(data.user) }), { + body: getNoteSummary(data.note, i18n.locale), + icon: data.user.avatarUrl + }]; + + case 'follow': + return [i18n.t('_notification.youWereFollowed'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'receiveFollowRequest': + return [i18n.t('_notification.youReceivedFollowRequest'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'followRequestAccepted': + return [i18n.t('_notification.yourFollowRequestAccepted'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'groupInvited': + return [i18n.t('_notification.youWereInvitedToGroup'), { + body: data.group.name + }]; + + default: + return null; + } + case 'unreadMessagingMessage': + if (data.groupId === null) { + return [i18n.t('_notification.youGotMessagingMessageFromUser', { name: getUserName(data.user) }), { + icon: data.user.avatarUrl, + tag: `messaging:user:${data.user.id}` + }]; + } + return [i18n.t('_notification.youGotMessagingMessageFromGroup', { name: data.group.name }), { + icon: data.user.avatarUrl, + tag: `messaging:group:${data.group.id}` + }]; + default: + return null; + } +} |