import api, { apiRequest, getLinks } from 'mastodon/api'; import type { ApiNotificationGroupJSON } from 'mastodon/api_types/notifications'; import type { ApiStatusJSON } from 'mastodon/api_types/statuses'; const exceptInvalidNotifications = ( notifications: ApiNotificationGroupJSON[], ) => { return notifications.filter((n) => { if ('status' in n) { return (n.status as ApiStatusJSON | null) !== null; } return true; }); }; export const apiFetchNotifications = async (params?: { exclude_types?: string[]; max_id?: string; }) => { const response = await api().request({ method: 'GET', url: '/api/v2_alpha/notifications', params, }); return { notifications: exceptInvalidNotifications(response.data), links: getLinks(response), }; }; export const apiClearNotifications = () => apiRequest('POST', 'v1/notifications/clear');