pl-fe: improve types
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
16a50885f3
commit
5de47881b7
7 changed files with 110 additions and 34 deletions
|
@ -495,7 +495,7 @@ const fetchPinnedAccountsRequest = (accountId: string) => ({
|
||||||
accountId,
|
accountId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const fetchPinnedAccountsSuccess = (accountId: string, accounts: Array<Account>, next: string | null) => ({
|
const fetchPinnedAccountsSuccess = (accountId: string, accounts: Array<Account>, next: null) => ({
|
||||||
type: PINNED_ACCOUNTS_FETCH_SUCCESS,
|
type: PINNED_ACCOUNTS_FETCH_SUCCESS,
|
||||||
accountId,
|
accountId,
|
||||||
accounts,
|
accounts,
|
||||||
|
@ -576,7 +576,7 @@ interface BirthdayRemindersFetchSuccessAction {
|
||||||
type: typeof BIRTHDAY_REMINDERS_FETCH_SUCCESS;
|
type: typeof BIRTHDAY_REMINDERS_FETCH_SUCCESS;
|
||||||
day: number;
|
day: number;
|
||||||
month: number;
|
month: number;
|
||||||
accountId: Me;
|
accountId: string;
|
||||||
accounts: Array<Account>;
|
accounts: Array<Account>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -591,7 +591,7 @@ const fetchBirthdayReminders = (month: number, day: number) =>
|
||||||
(dispatch: AppDispatch, getState: () => RootState) => {
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
if (!isLoggedIn(getState)) return;
|
if (!isLoggedIn(getState)) return;
|
||||||
|
|
||||||
const me = getState().me;
|
const me = getState().me as string;
|
||||||
|
|
||||||
dispatch<BirthdayRemindersFetchRequestAction>({ type: BIRTHDAY_REMINDERS_FETCH_REQUEST, day, month, accountId: me });
|
dispatch<BirthdayRemindersFetchRequestAction>({ type: BIRTHDAY_REMINDERS_FETCH_REQUEST, day, month, accountId: me });
|
||||||
|
|
||||||
|
|
|
@ -489,6 +489,35 @@ const fetchJoinedEvents = () =>
|
||||||
};
|
};
|
||||||
|
|
||||||
type EventsAction =
|
type EventsAction =
|
||||||
|
| ReturnType<typeof submitEventRequest>
|
||||||
|
| ReturnType<typeof submitEventSuccess>
|
||||||
|
| ReturnType<typeof submitEventFail>
|
||||||
|
| ReturnType<typeof joinEventRequest>
|
||||||
|
| ReturnType<typeof joinEventSuccess>
|
||||||
|
| ReturnType<typeof joinEventFail>
|
||||||
|
| ReturnType<typeof leaveEventRequest>
|
||||||
|
| ReturnType<typeof leaveEventSuccess>
|
||||||
|
| ReturnType<typeof leaveEventFail>
|
||||||
|
| ReturnType<typeof fetchEventParticipationsRequest>
|
||||||
|
| ReturnType<typeof fetchEventParticipationsSuccess>
|
||||||
|
| ReturnType<typeof fetchEventParticipationsFail>
|
||||||
|
| ReturnType<typeof expandEventParticipationsRequest>
|
||||||
|
| ReturnType<typeof expandEventParticipationsSuccess>
|
||||||
|
| ReturnType<typeof expandEventParticipationsFail>
|
||||||
|
| ReturnType<typeof fetchEventParticipationRequestsRequest>
|
||||||
|
| ReturnType<typeof fetchEventParticipationRequestsSuccess>
|
||||||
|
| ReturnType<typeof fetchEventParticipationRequestsFail>
|
||||||
|
| ReturnType<typeof expandEventParticipationRequestsRequest>
|
||||||
|
| ReturnType<typeof expandEventParticipationRequestsSuccess>
|
||||||
|
| ReturnType<typeof expandEventParticipationRequestsFail>
|
||||||
|
| ReturnType<typeof expandEventParticipationRequestsSuccess>
|
||||||
|
| ReturnType<typeof expandEventParticipationRequestsFail>
|
||||||
|
| ReturnType<typeof authorizeEventParticipationRequestRequest>
|
||||||
|
| ReturnType<typeof authorizeEventParticipationRequestSuccess>
|
||||||
|
| ReturnType<typeof authorizeEventParticipationRequestFail>
|
||||||
|
| ReturnType<typeof rejectEventParticipationRequestRequest>
|
||||||
|
| ReturnType<typeof rejectEventParticipationRequestSuccess>
|
||||||
|
| ReturnType<typeof rejectEventParticipationRequestFail>
|
||||||
| ReturnType<typeof cancelEventCompose>
|
| ReturnType<typeof cancelEventCompose>
|
||||||
| EventFormSetAction;
|
| EventFormSetAction;
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,14 @@ import { getClient } from '../api';
|
||||||
import { fetchRelationships } from './accounts';
|
import { fetchRelationships } from './accounts';
|
||||||
import { importEntities } from './importer';
|
import { importEntities } from './importer';
|
||||||
|
|
||||||
|
import type { Account } from 'pl-api';
|
||||||
|
|
||||||
const FAMILIAR_FOLLOWERS_FETCH_REQUEST = 'FAMILIAR_FOLLOWERS_FETCH_REQUEST' as const;
|
const FAMILIAR_FOLLOWERS_FETCH_REQUEST = 'FAMILIAR_FOLLOWERS_FETCH_REQUEST' as const;
|
||||||
const FAMILIAR_FOLLOWERS_FETCH_SUCCESS = 'FAMILIAR_FOLLOWERS_FETCH_SUCCESS' as const;
|
const FAMILIAR_FOLLOWERS_FETCH_SUCCESS = 'FAMILIAR_FOLLOWERS_FETCH_SUCCESS' as const;
|
||||||
const FAMILIAR_FOLLOWERS_FETCH_FAIL = 'FAMILIAR_FOLLOWERS_FETCH_FAIL' as const;
|
const FAMILIAR_FOLLOWERS_FETCH_FAIL = 'FAMILIAR_FOLLOWERS_FETCH_FAIL' as const;
|
||||||
|
|
||||||
const fetchAccountFamiliarFollowers = (accountId: string) => (dispatch: AppDispatch, getState: () => RootState) => {
|
const fetchAccountFamiliarFollowers = (accountId: string) => (dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
dispatch({
|
dispatch<FamiliarFollowersAction>({
|
||||||
type: FAMILIAR_FOLLOWERS_FETCH_REQUEST,
|
type: FAMILIAR_FOLLOWERS_FETCH_REQUEST,
|
||||||
accountId,
|
accountId,
|
||||||
});
|
});
|
||||||
|
@ -21,13 +23,13 @@ const fetchAccountFamiliarFollowers = (accountId: string) => (dispatch: AppDispa
|
||||||
|
|
||||||
dispatch(importEntities({ accounts }));
|
dispatch(importEntities({ accounts }));
|
||||||
dispatch(fetchRelationships(accounts.map((item) => item.id)));
|
dispatch(fetchRelationships(accounts.map((item) => item.id)));
|
||||||
dispatch({
|
dispatch<FamiliarFollowersAction>({
|
||||||
type: FAMILIAR_FOLLOWERS_FETCH_SUCCESS,
|
type: FAMILIAR_FOLLOWERS_FETCH_SUCCESS,
|
||||||
accountId,
|
accountId,
|
||||||
accounts,
|
accounts,
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(error => dispatch({
|
.catch(error => dispatch<FamiliarFollowersAction>({
|
||||||
type: FAMILIAR_FOLLOWERS_FETCH_FAIL,
|
type: FAMILIAR_FOLLOWERS_FETCH_FAIL,
|
||||||
accountId,
|
accountId,
|
||||||
error,
|
error,
|
||||||
|
@ -35,9 +37,27 @@ const fetchAccountFamiliarFollowers = (accountId: string) => (dispatch: AppDispa
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type FamiliarFollowersAction =
|
||||||
|
| {
|
||||||
|
type: typeof FAMILIAR_FOLLOWERS_FETCH_REQUEST;
|
||||||
|
accountId: string;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof FAMILIAR_FOLLOWERS_FETCH_SUCCESS;
|
||||||
|
accountId: string;
|
||||||
|
accounts: Array<Account>;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof FAMILIAR_FOLLOWERS_FETCH_FAIL;
|
||||||
|
accountId: string;
|
||||||
|
error: unknown;
|
||||||
|
skipAlert: true;
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
FAMILIAR_FOLLOWERS_FETCH_REQUEST,
|
FAMILIAR_FOLLOWERS_FETCH_REQUEST,
|
||||||
FAMILIAR_FOLLOWERS_FETCH_SUCCESS,
|
FAMILIAR_FOLLOWERS_FETCH_SUCCESS,
|
||||||
FAMILIAR_FOLLOWERS_FETCH_FAIL,
|
FAMILIAR_FOLLOWERS_FETCH_FAIL,
|
||||||
fetchAccountFamiliarFollowers,
|
fetchAccountFamiliarFollowers,
|
||||||
|
type FamiliarFollowersAction,
|
||||||
};
|
};
|
||||||
|
|
|
@ -698,9 +698,13 @@ type InteractionsAction =
|
||||||
| ReturnType<typeof fetchReblogsRequest>
|
| ReturnType<typeof fetchReblogsRequest>
|
||||||
| ReturnType<typeof fetchReblogsSuccess>
|
| ReturnType<typeof fetchReblogsSuccess>
|
||||||
| ReturnType<typeof fetchReblogsFail>
|
| ReturnType<typeof fetchReblogsFail>
|
||||||
|
| ReturnType<typeof expandReblogsSuccess>
|
||||||
|
| ReturnType<typeof expandReblogsFail>
|
||||||
| ReturnType<typeof fetchFavouritesRequest>
|
| ReturnType<typeof fetchFavouritesRequest>
|
||||||
| ReturnType<typeof fetchFavouritesSuccess>
|
| ReturnType<typeof fetchFavouritesSuccess>
|
||||||
| ReturnType<typeof fetchFavouritesFail>
|
| ReturnType<typeof fetchFavouritesFail>
|
||||||
|
| ReturnType<typeof expandFavouritesSuccess>
|
||||||
|
| ReturnType<typeof expandFavouritesFail>
|
||||||
| ReturnType<typeof fetchDislikesRequest>
|
| ReturnType<typeof fetchDislikesRequest>
|
||||||
| ReturnType<typeof fetchDislikesSuccess>
|
| ReturnType<typeof fetchDislikesSuccess>
|
||||||
| ReturnType<typeof fetchDislikesFail>
|
| ReturnType<typeof fetchDislikesFail>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { getClient } from '../api';
|
import { getClient } from '../api';
|
||||||
|
|
||||||
import type { SaveMarkersParams } from 'pl-api';
|
import type { Markers, SaveMarkersParams } from 'pl-api';
|
||||||
import type { AppDispatch, RootState } from 'pl-fe/store';
|
import type { AppDispatch, RootState } from 'pl-fe/store';
|
||||||
|
|
||||||
const MARKER_FETCH_REQUEST = 'MARKER_FETCH_REQUEST' as const;
|
const MARKER_FETCH_REQUEST = 'MARKER_FETCH_REQUEST' as const;
|
||||||
|
@ -13,24 +13,49 @@ const MARKER_SAVE_FAIL = 'MARKER_SAVE_FAIL' as const;
|
||||||
|
|
||||||
const fetchMarker = (timeline: Array<string>) =>
|
const fetchMarker = (timeline: Array<string>) =>
|
||||||
(dispatch: AppDispatch, getState: () => RootState) => {
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
dispatch({ type: MARKER_FETCH_REQUEST });
|
dispatch<MarkersAction>({ type: MARKER_FETCH_REQUEST });
|
||||||
return getClient(getState).timelines.getMarkers(timeline).then((marker) => {
|
return getClient(getState).timelines.getMarkers(timeline).then((marker) => {
|
||||||
dispatch({ type: MARKER_FETCH_SUCCESS, marker });
|
dispatch<MarkersAction>({ type: MARKER_FETCH_SUCCESS, marker });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch({ type: MARKER_FETCH_FAIL, error });
|
dispatch<MarkersAction>({ type: MARKER_FETCH_FAIL, error });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const saveMarker = (marker: SaveMarkersParams) =>
|
const saveMarker = (marker: SaveMarkersParams) =>
|
||||||
(dispatch: AppDispatch, getState: () => RootState) => {
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
dispatch({ type: MARKER_SAVE_REQUEST, marker });
|
dispatch<MarkersAction>({ type: MARKER_SAVE_REQUEST, marker });
|
||||||
return getClient(getState).timelines.saveMarkers(marker).then((marker) => {
|
return getClient(getState).timelines.saveMarkers(marker).then((marker) => {
|
||||||
dispatch({ type: MARKER_SAVE_SUCCESS, marker });
|
dispatch<MarkersAction>({ type: MARKER_SAVE_SUCCESS, marker });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch({ type: MARKER_SAVE_FAIL, error });
|
dispatch<MarkersAction>({ type: MARKER_SAVE_FAIL, error });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type MarkersAction =
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_FETCH_REQUEST;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_FETCH_SUCCESS;
|
||||||
|
marker: Markers;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_FETCH_FAIL;
|
||||||
|
error: unknown;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_SAVE_REQUEST;
|
||||||
|
marker: SaveMarkersParams;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_SAVE_SUCCESS;
|
||||||
|
marker: Markers;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: typeof MARKER_SAVE_FAIL;
|
||||||
|
error: unknown;
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
MARKER_FETCH_REQUEST,
|
MARKER_FETCH_REQUEST,
|
||||||
MARKER_FETCH_SUCCESS,
|
MARKER_FETCH_SUCCESS,
|
||||||
|
@ -40,4 +65,5 @@ export {
|
||||||
MARKER_SAVE_FAIL,
|
MARKER_SAVE_FAIL,
|
||||||
fetchMarker,
|
fetchMarker,
|
||||||
saveMarker,
|
saveMarker,
|
||||||
|
type MarkersAction,
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,8 +9,8 @@ import {
|
||||||
} from '../actions/accounts';
|
} from '../actions/accounts';
|
||||||
import {
|
import {
|
||||||
MARKER_FETCH_SUCCESS,
|
MARKER_FETCH_SUCCESS,
|
||||||
MARKER_SAVE_REQUEST,
|
|
||||||
MARKER_SAVE_SUCCESS,
|
MARKER_SAVE_SUCCESS,
|
||||||
|
type MarkersAction,
|
||||||
} from '../actions/markers';
|
} from '../actions/markers';
|
||||||
import {
|
import {
|
||||||
NOTIFICATIONS_UPDATE,
|
NOTIFICATIONS_UPDATE,
|
||||||
|
@ -23,8 +23,7 @@ import {
|
||||||
} from '../actions/notifications';
|
} from '../actions/notifications';
|
||||||
import { TIMELINE_DELETE, type TimelineAction } from '../actions/timelines';
|
import { TIMELINE_DELETE, type TimelineAction } from '../actions/timelines';
|
||||||
|
|
||||||
import type { Notification as BaseNotification, Markers, NotificationGroup, PaginatedResponse, Relationship } from 'pl-api';
|
import type { GroupedNotificationsResults, Markers, NotificationGroup, PaginatedResponse, Relationship } from 'pl-api';
|
||||||
import type { AnyAction } from 'redux';
|
|
||||||
|
|
||||||
interface State {
|
interface State {
|
||||||
items: Array<NotificationGroup>;
|
items: Array<NotificationGroup>;
|
||||||
|
@ -75,7 +74,7 @@ const importNotification = (state: State, notification: NotificationGroup) =>
|
||||||
draft.items = [notification, ...draft.items].toSorted(comparator).filter(filterUnique);
|
draft.items = [notification, ...draft.items].toSorted(comparator).filter(filterUnique);
|
||||||
});
|
});
|
||||||
|
|
||||||
const expandNormalizedNotifications = (state: State, notifications: NotificationGroup[], next: (() => Promise<PaginatedResponse<BaseNotification>>) | null) =>
|
const expandNormalizedNotifications = (state: State, notifications: NotificationGroup[], next: (() => Promise<PaginatedResponse<GroupedNotificationsResults, false>>) | null) =>
|
||||||
create(state, (draft) => {
|
create(state, (draft) => {
|
||||||
draft.items = [...notifications, ...draft.items].toSorted(comparator).filter(filterUnique);
|
draft.items = [...notifications, ...draft.items].toSorted(comparator).filter(filterUnique);
|
||||||
|
|
||||||
|
@ -122,14 +121,14 @@ const importMarker = (state: State, marker: Markers) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const notifications = (state: State = initialState, action: AccountsAction | AnyAction | NotificationsAction | TimelineAction): State => {
|
const notifications = (state: State = initialState, action: AccountsAction | MarkersAction | NotificationsAction | TimelineAction): State => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case NOTIFICATIONS_EXPAND_REQUEST:
|
case NOTIFICATIONS_EXPAND_REQUEST:
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
draft.isLoading = true;
|
draft.isLoading = true;
|
||||||
});
|
});
|
||||||
case NOTIFICATIONS_EXPAND_FAIL:
|
case NOTIFICATIONS_EXPAND_FAIL:
|
||||||
if (action.error?.message === 'canceled') return state;
|
if ((action.error as any)?.message === 'canceled') return state;
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
draft.isLoading = false;
|
draft.isLoading = false;
|
||||||
});
|
});
|
||||||
|
@ -152,7 +151,6 @@ const notifications = (state: State = initialState, action: AccountsAction | Any
|
||||||
case FOLLOW_REQUEST_REJECT_SUCCESS:
|
case FOLLOW_REQUEST_REJECT_SUCCESS:
|
||||||
return filterNotificationIds(state, [action.accountId], 'follow_request');
|
return filterNotificationIds(state, [action.accountId], 'follow_request');
|
||||||
case MARKER_FETCH_SUCCESS:
|
case MARKER_FETCH_SUCCESS:
|
||||||
case MARKER_SAVE_REQUEST:
|
|
||||||
case MARKER_SAVE_SUCCESS:
|
case MARKER_SAVE_SUCCESS:
|
||||||
return importMarker(state, action.marker);
|
return importMarker(state, action.marker);
|
||||||
case TIMELINE_DELETE:
|
case TIMELINE_DELETE:
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { create } from 'mutative';
|
import { create } from 'mutative';
|
||||||
import { AnyAction } from 'redux';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
FOLLOW_REQUESTS_FETCH_SUCCESS,
|
FOLLOW_REQUESTS_FETCH_SUCCESS,
|
||||||
|
@ -26,8 +25,9 @@ import {
|
||||||
EVENT_PARTICIPATION_REQUESTS_FETCH_SUCCESS,
|
EVENT_PARTICIPATION_REQUESTS_FETCH_SUCCESS,
|
||||||
EVENT_PARTICIPATION_REQUEST_AUTHORIZE_SUCCESS,
|
EVENT_PARTICIPATION_REQUEST_AUTHORIZE_SUCCESS,
|
||||||
EVENT_PARTICIPATION_REQUEST_REJECT_SUCCESS,
|
EVENT_PARTICIPATION_REQUEST_REJECT_SUCCESS,
|
||||||
|
type EventsAction,
|
||||||
} from 'pl-fe/actions/events';
|
} from 'pl-fe/actions/events';
|
||||||
import { FAMILIAR_FOLLOWERS_FETCH_SUCCESS } from 'pl-fe/actions/familiar-followers';
|
import { FAMILIAR_FOLLOWERS_FETCH_SUCCESS, type FamiliarFollowersAction } from 'pl-fe/actions/familiar-followers';
|
||||||
import {
|
import {
|
||||||
GROUP_BLOCKS_FETCH_REQUEST,
|
GROUP_BLOCKS_FETCH_REQUEST,
|
||||||
GROUP_BLOCKS_FETCH_SUCCESS,
|
GROUP_BLOCKS_FETCH_SUCCESS,
|
||||||
|
@ -46,8 +46,7 @@ import {
|
||||||
} from 'pl-fe/actions/interactions';
|
} from 'pl-fe/actions/interactions';
|
||||||
import { NOTIFICATIONS_UPDATE, type NotificationsAction } from 'pl-fe/actions/notifications';
|
import { NOTIFICATIONS_UPDATE, type NotificationsAction } from 'pl-fe/actions/notifications';
|
||||||
|
|
||||||
import type { Account, EmojiReaction, Notification, PaginatedResponse } from 'pl-api';
|
import type { Account, NotificationGroup, PaginatedResponse } from 'pl-api';
|
||||||
import type { APIEntity } from 'pl-fe/types/entities';
|
|
||||||
|
|
||||||
interface List {
|
interface List {
|
||||||
next: (() => Promise<PaginatedResponse<Account>>) | null;
|
next: (() => Promise<PaginatedResponse<Account>>) | null;
|
||||||
|
@ -57,9 +56,9 @@ interface List {
|
||||||
|
|
||||||
interface Reaction {
|
interface Reaction {
|
||||||
accounts: Array<string>;
|
accounts: Array<string>;
|
||||||
count: number;
|
count: number | null;
|
||||||
name: string;
|
name: string;
|
||||||
url: string | null;
|
url: string | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ReactionList {
|
interface ReactionList {
|
||||||
|
@ -153,12 +152,12 @@ const removeFromList = (state: State, path: NestedListPath | ListPath, accountId
|
||||||
list.items = list.items.filter(item => item !== accountId);
|
list.items = list.items.filter(item => item !== accountId);
|
||||||
});
|
});
|
||||||
|
|
||||||
const normalizeFollowRequest = (state: State, notification: Notification) =>
|
const normalizeFollowRequest = (state: State, notification: NotificationGroup) =>
|
||||||
create(state, (draft) => {
|
create(state, (draft) => {
|
||||||
draft.follow_requests.items = [...new Set([notification.account.id, ...draft.follow_requests.items])];
|
draft.follow_requests.items = [...new Set([...notification.sample_account_ids, ...draft.follow_requests.items])];
|
||||||
});
|
});
|
||||||
|
|
||||||
const userLists = (state = initialState, action: AccountsAction | DirectoryAction | GroupsAction | InteractionsAction | NotificationsAction | AnyAction): State => {
|
const userLists = (state = initialState, action: AccountsAction | DirectoryAction | EventsAction | FamiliarFollowersAction | GroupsAction | InteractionsAction | NotificationsAction): State => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case REBLOGS_FETCH_SUCCESS:
|
case REBLOGS_FETCH_SUCCESS:
|
||||||
return normalizeList(state, ['reblogged_by', action.statusId], action.accounts, action.next);
|
return normalizeList(state, ['reblogged_by', action.statusId], action.accounts, action.next);
|
||||||
|
@ -173,7 +172,7 @@ const userLists = (state = initialState, action: AccountsAction | DirectoryActio
|
||||||
case REACTIONS_FETCH_SUCCESS:
|
case REACTIONS_FETCH_SUCCESS:
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
draft.reactions[action.statusId] = {
|
draft.reactions[action.statusId] = {
|
||||||
items: action.reactions.map((reaction: EmojiReaction) => ({ ...reaction, accounts: reaction.accounts.map(({ id }) => id) })),
|
items: action.reactions.map((reaction) => ({ ...reaction, accounts: reaction.accounts.map(({ id }) => id) })),
|
||||||
next: null,
|
next: null,
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
};
|
};
|
||||||
|
@ -206,7 +205,7 @@ const userLists = (state = initialState, action: AccountsAction | DirectoryActio
|
||||||
case BIRTHDAY_REMINDERS_FETCH_SUCCESS:
|
case BIRTHDAY_REMINDERS_FETCH_SUCCESS:
|
||||||
return normalizeList(state, ['birthday_reminders', action.accountId], action.accounts);
|
return normalizeList(state, ['birthday_reminders', action.accountId], action.accounts);
|
||||||
case FAMILIAR_FOLLOWERS_FETCH_SUCCESS:
|
case FAMILIAR_FOLLOWERS_FETCH_SUCCESS:
|
||||||
return normalizeList(state, ['familiar_followers', action.accountId], action.accounts, action.next);
|
return normalizeList(state, ['familiar_followers', action.accountId], action.accounts);
|
||||||
case EVENT_PARTICIPATIONS_FETCH_SUCCESS:
|
case EVENT_PARTICIPATIONS_FETCH_SUCCESS:
|
||||||
return normalizeList(state, ['event_participations', action.statusId], action.accounts, action.next);
|
return normalizeList(state, ['event_participations', action.statusId], action.accounts, action.next);
|
||||||
case EVENT_PARTICIPATIONS_EXPAND_SUCCESS:
|
case EVENT_PARTICIPATIONS_EXPAND_SUCCESS:
|
||||||
|
@ -215,7 +214,7 @@ const userLists = (state = initialState, action: AccountsAction | DirectoryActio
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
draft.event_participation_requests[action.statusId] = {
|
draft.event_participation_requests[action.statusId] = {
|
||||||
next: action.next,
|
next: action.next,
|
||||||
items: action.participations.map(({ account, participation_message }: APIEntity) => ({
|
items: action.participations.map(({ account, participation_message }) => ({
|
||||||
account: account.id,
|
account: account.id,
|
||||||
participation_message,
|
participation_message,
|
||||||
})),
|
})),
|
||||||
|
@ -226,7 +225,7 @@ const userLists = (state = initialState, action: AccountsAction | DirectoryActio
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
const list = draft.event_participation_requests[action.statusId];
|
const list = draft.event_participation_requests[action.statusId];
|
||||||
list.next = action.next;
|
list.next = action.next;
|
||||||
list.items = [...list.items, ...action.participations.map(({ account, participation_message }: APIEntity) => ({
|
list.items = [...list.items, ...action.participations.map(({ account, participation_message }) => ({
|
||||||
account: account.id,
|
account: account.id,
|
||||||
participation_message,
|
participation_message,
|
||||||
}))];
|
}))];
|
||||||
|
@ -236,7 +235,7 @@ const userLists = (state = initialState, action: AccountsAction | DirectoryActio
|
||||||
case EVENT_PARTICIPATION_REQUEST_REJECT_SUCCESS:
|
case EVENT_PARTICIPATION_REQUEST_REJECT_SUCCESS:
|
||||||
return create(state, (draft) => {
|
return create(state, (draft) => {
|
||||||
const list = draft.event_participation_requests[action.statusId];
|
const list = draft.event_participation_requests[action.statusId];
|
||||||
if (list.items) list.items = list.items.filter(item => item !== action.accountId);
|
if (list.items) list.items = list.items.filter(item => item.account !== action.accountId);
|
||||||
});
|
});
|
||||||
case GROUP_BLOCKS_FETCH_SUCCESS:
|
case GROUP_BLOCKS_FETCH_SUCCESS:
|
||||||
return normalizeList(state, ['group_blocks', action.groupId], action.accounts, action.next);
|
return normalizeList(state, ['group_blocks', action.groupId], action.accounts, action.next);
|
||||||
|
|
Loading…
Reference in a new issue