pleroma/packages/pl-fe/src/reducers/backups.ts
marcin mikołajczak 4d5690d0c1 Switch to workspace
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-28 13:01:08 +02:00

30 lines
839 B
TypeScript

import { Map as ImmutableMap } from 'immutable';
import { BACKUPS_FETCH_SUCCESS, BACKUPS_CREATE_SUCCESS } from '../actions/backups';
import type { Backup } from 'pl-api';
import type { AnyAction } from 'redux';
type State = ImmutableMap<string, Backup>;
const initialState: State = ImmutableMap();
const importBackup = (state: State, backup: Backup) => state.set(backup.inserted_at, backup);
const importBackups = (state: State, backups: Array<Backup>) => state.withMutations(mutable => {
backups.forEach(backup => importBackup(mutable, backup));
});
const backups = (state = initialState, action: AnyAction) => {
switch (action.type) {
case BACKUPS_FETCH_SUCCESS:
case BACKUPS_CREATE_SUCCESS:
return importBackups(state, action.backups);
default:
return state;
}
};
export {
backups as default,
};