summaryrefslogtreecommitdiff
path: root/src/client/scripts/compose-notification.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/scripts/compose-notification.ts')
-rw-r--r--src/client/scripts/compose-notification.ts59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/client/scripts/compose-notification.ts b/src/client/scripts/compose-notification.ts
new file mode 100644
index 0000000000..bf32552506
--- /dev/null
+++ b/src/client/scripts/compose-notification.ts
@@ -0,0 +1,59 @@
+import getNoteSummary from '../../misc/get-note-summary';
+import getUserName from '../../misc/get-user-name';
+
+type Notification = {
+ title: string;
+ body: string;
+ icon: string;
+ onclick?: any;
+};
+
+// TODO: i18n
+
+export default function(type, data): Notification {
+ switch (type) {
+ case 'driveFileCreated':
+ return {
+ title: 'File uploaded',
+ body: data.name,
+ icon: data.url
+ };
+
+ case 'notification':
+ switch (data.type) {
+ case 'mention':
+ return {
+ title: `${getUserName(data.user)}:`,
+ body: getNoteSummary(data),
+ icon: data.user.avatarUrl
+ };
+
+ case 'reply':
+ return {
+ title: `You got reply from ${getUserName(data.user)}:`,
+ body: getNoteSummary(data),
+ icon: data.user.avatarUrl
+ };
+
+ case 'quote':
+ return {
+ title: `${getUserName(data.user)}:`,
+ body: getNoteSummary(data),
+ icon: data.user.avatarUrl
+ };
+
+ case 'reaction':
+ return {
+ title: `${getUserName(data.user)}: ${data.reaction}:`,
+ body: getNoteSummary(data.note),
+ icon: data.user.avatarUrl
+ };
+
+ default:
+ return null;
+ }
+
+ default:
+ return null;
+ }
+}