summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-12-26 14:11:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-12-26 14:11:08 +0900
commitec4d5857d80938758ce64930159be2c941d4e30f (patch)
treebfa24ed39ef9b90e290a504ca5ed2ee00ef280c7 /src/client
parentAdd note (diff)
downloadsharkey-ec4d5857d80938758ce64930159be2c941d4e30f.tar.gz
sharkey-ec4d5857d80938758ce64930159be2c941d4e30f.tar.bz2
sharkey-ec4d5857d80938758ce64930159be2c941d4e30f.zip
Fix service worker generation
Diffstat (limited to 'src/client')
-rw-r--r--src/client/scripts/compose-notification.ts95
-rw-r--r--src/client/sw/compose-notification.ts90
-rw-r--r--src/client/sw/i18n.ts3
-rw-r--r--src/client/sw/sw.ts (renamed from src/client/sw.ts)3
4 files changed, 94 insertions, 97 deletions
diff --git a/src/client/scripts/compose-notification.ts b/src/client/scripts/compose-notification.ts
deleted file mode 100644
index 1552d45e4e..0000000000
--- a/src/client/scripts/compose-notification.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import getNoteSummary from '../../misc/get-note-summary';
-import getUserName from '../../misc/get-user-name';
-import { clientDb, get, bulkGet } from '../db';
-
-const getTranslation = (text: string): Promise<string> => get(text, clientDb.i18n);
-
-export default async function(type, data): Promise<[string, NotificationOptions]> {
- const contexts = ['deletedNote', 'invisibleNote', 'withNFiles', 'poll'];
- const locale = Object.fromEntries(await bulkGet(contexts, clientDb.i18n) as [string, string][]);
-
- switch (type) {
- case 'driveFileCreated': // TODO (Server Side)
- return [await getTranslation('_notification.fileUploaded'), {
- body: data.name,
- icon: data.url
- }];
- case 'notification':
- switch (data.type) {
- case 'mention':
- return [(await getTranslation('_notification.youGotMention')).replace('{name}', getUserName(data.user)), {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'reply':
- return [(await getTranslation('_notification.youGotReply')).replace('{name}', getUserName(data.user)), {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'renote':
- return [(await getTranslation('_notification.youRenoted')).replace('{name}', getUserName(data.user)), {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'quote':
- return [(await getTranslation('_notification.youGotQuote')).replace('{name}', getUserName(data.user)), {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'reaction':
- return [`${data.reaction} ${getUserName(data.user)}`, {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'pollVote':
- return [(await getTranslation('_notification.youGotPoll')).replace('{name}', getUserName(data.user)), {
- body: getNoteSummary(data.note, locale),
- icon: data.user.avatarUrl
- }];
-
- case 'follow':
- return [await getTranslation('_notification.youWereFollowed'), {
- body: getUserName(data.user),
- icon: data.user.avatarUrl
- }];
-
- case 'receiveFollowRequest':
- return [await getTranslation('_notification.youReceivedFollowRequest'), {
- body: getUserName(data.user),
- icon: data.user.avatarUrl
- }];
-
- case 'followRequestAccepted':
- return [await getTranslation('_notification.yourFollowRequestAccepted'), {
- body: getUserName(data.user),
- icon: data.user.avatarUrl
- }];
-
- case 'groupInvited':
- return [await getTranslation('_notification.youWereInvitedToGroup'), {
- body: data.group.name
- }];
-
- default:
- return null;
- }
- case 'unreadMessagingMessage':
- if (data.groupId === null) {
- return [(await getTranslation('_notification.youGotMessagingMessageFromUser')).replace('{name}', getUserName(data.user)), {
- icon: data.user.avatarUrl,
- tag: `messaging:user:${data.user.id}`
- }];
- }
- return [(await getTranslation('_notification.youGotMessagingMessageFromGroup')).replace('{name}', data.group.name), {
- icon: data.user.avatarUrl,
- tag: `messaging:group:${data.group.id}`
- }];
- default:
- return null;
- }
-}
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;
+ }
+}
diff --git a/src/client/sw/i18n.ts b/src/client/sw/i18n.ts
new file mode 100644
index 0000000000..524a205b2f
--- /dev/null
+++ b/src/client/sw/i18n.ts
@@ -0,0 +1,3 @@
+import { I18n } from '@/i18n';
+
+export const i18n = new I18n(_LOCALE_);
diff --git a/src/client/sw.ts b/src/client/sw/sw.ts
index 01ed216029..91d668c27b 100644
--- a/src/client/sw.ts
+++ b/src/client/sw/sw.ts
@@ -3,9 +3,8 @@
*/
declare var self: ServiceWorkerGlobalScope;
-import composeNotification from '@/scripts/compose-notification';
+import composeNotification from '@/sw/compose-notification';
-// eslint-disable-next-line no-undef
const version = _VERSION_;
const cacheName = `mk-cache-${version}`;