Upgrade action typing with typesafe-actions

This commit is contained in:
James Greenaway
2019-02-12 17:59:55 +00:00
parent 3f14fcc161
commit e482e989de
12 changed files with 59 additions and 93 deletions

View File

@@ -1,60 +1,21 @@
import { createAction } from 'typesafe-actions';
import { Status } from './types';
import { SUBMIT, CREATED, CANCEL, UPDATE_STATUS } from './constants';
export type Action = {
type: 'WORKLOAD_SUBMIT';
payload: {
complexity: number;
};
} | {
type: 'WORKLOAD_CREATED';
payload: {
id: number;
complexity: number;
completeDate: Date;
status: Status;
};
} | {
type: 'WORKLOAD_CANCEL';
payload: {
id: number;
};
} | {
type: 'WORKLOAD_UPDATE_STATUS';
payload: {
id: number;
status: Status;
};
};
export const submit = ({ complexity }: { complexity: number }): Action => ({
type: 'WORKLOAD_SUBMIT',
payload: {
complexity,
},
});
export const submit = createAction(SUBMIT, resolve => (params: { complexity: number }) => resolve({ complexity: params.complexity }));
export const created = ({ id, status, complexity, completeDate }: { id: number, status: Status, complexity: number, completeDate: Date }): Action => ({
type: 'WORKLOAD_CREATED',
payload: {
id,
status,
completeDate,
complexity,
},
});
export const created = createAction(CREATED, resolve =>
(params: { id: number, status: Status, complexity: number, completeDate: Date }) => resolve({
id: params.id,
status: params.status,
completeDate: params.completeDate,
complexity: params.complexity,
}));
export const cancel = ({ id }: { id: number }): Action => ({
type: 'WORKLOAD_CANCEL',
payload: {
id,
},
});
export const cancel = createAction(CANCEL, resolve => (params: { id: number }) => resolve({ id: params.id }));
export const updateStatus = ({ id, status }: { id: number, status: Status }): Action => ({
type: 'WORKLOAD_UPDATE_STATUS',
payload: {
id,
status,
},
});
export const updateStatus = createAction(UPDATE_STATUS, resolve =>
(params: { id: number, status: Status }) => resolve({ id: params.id, status: params.status }))