Upgrade action typing with typesafe-actions
This commit is contained in:
@@ -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 }))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user