// entities.ts // Copyright (C) 2020 Dwayne Harris // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . import { Action } from 'redux' import { Entity, EntityStore, EntityType } from '../types' export interface SetEntityAction extends Action { type: 'ENTITIES_SET_ENTITY' payload: { type: string entity: Entity } } export interface SetEntitiesAction extends Action { type: 'ENTITIES_SET_ENTITIES' payload: { entities: EntityStore } } export type EntitiesActions = SetEntityAction | SetEntitiesAction export const setEntity = (type: EntityType, entity: Entity): SetEntityAction => ({ type: 'ENTITIES_SET_ENTITY', payload: { type, entity, } }) export const setEntities = (entities: EntityStore): SetEntitiesAction => ({ type: 'ENTITIES_SET_ENTITIES', payload: { entities, } })