@@ -1709,6 +1709,7 @@ _notification:
 | 
				
			|||||||
    app: "連携アプリからの通知"
 | 
					    app: "連携アプリからの通知"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _actions:
 | 
					  _actions:
 | 
				
			||||||
 | 
					    followBack: "フォローバック"
 | 
				
			||||||
    reply: "返信"
 | 
					    reply: "返信"
 | 
				
			||||||
    renote: "Renote"
 | 
					    renote: "Renote"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,10 +36,20 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
 | 
				
			|||||||
		case 'notification':
 | 
							case 'notification':
 | 
				
			||||||
			switch (data.body.type) {
 | 
								switch (data.body.type) {
 | 
				
			||||||
				case 'follow':
 | 
									case 'follow':
 | 
				
			||||||
 | 
										// users/showの型定義をswos.apiへ当てはめるのが困難なのでapiFetch.requestを直接使用
 | 
				
			||||||
 | 
										const account = await getAccountFromId(data.userId);
 | 
				
			||||||
 | 
										if (!account) return null;
 | 
				
			||||||
 | 
										const userDetail = apiFetch.request('users/show', { userId: data.body.userId }, account.token);
 | 
				
			||||||
					return [t('_notification.youWereFollowed'), {
 | 
										return [t('_notification.youWereFollowed'), {
 | 
				
			||||||
						body: getUserName(data.body.user),
 | 
											body: getUserName(data.body.user),
 | 
				
			||||||
						icon: data.body.user.avatarUrl,
 | 
											icon: data.body.user.avatarUrl,
 | 
				
			||||||
						data,
 | 
											data,
 | 
				
			||||||
 | 
											actions: userDetail.isFollowing ? [] : [
 | 
				
			||||||
 | 
												{
 | 
				
			||||||
 | 
													action: 'follow',
 | 
				
			||||||
 | 
													title: t('_notification._actions.followBack')
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
											],
 | 
				
			||||||
					}];
 | 
										}];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				case 'mention':
 | 
									case 'mention':
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -108,6 +108,9 @@ self.addEventListener('notificationclick', <K extends keyof pushNotificationData
 | 
				
			|||||||
	switch (data.type) {
 | 
						switch (data.type) {
 | 
				
			||||||
		case 'notification':
 | 
							case 'notification':
 | 
				
			||||||
			switch (action) {
 | 
								switch (action) {
 | 
				
			||||||
 | 
									case 'follow':
 | 
				
			||||||
 | 
										if ('userId' in data.body) await swos.api('following/create', id, { userId: data.body.userId });
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
				case 'showUser':
 | 
									case 'showUser':
 | 
				
			||||||
					if ('user' in data.body) client = await swos.openUser(getAcct(data.body.user), id);
 | 
										if ('user' in data.body) client = await swos.openUser(getAcct(data.body.user), id);
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user