59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
import { head } from 'ramda';
|
|
|
|
export const actionsAlpha = (set, get, api) => ({
|
|
setAsyncRequest: () => {
|
|
const num = get.isAsyncRequest();
|
|
set.isAsyncRequest(num + 1);
|
|
},
|
|
unsetAsyncRequest: () => {
|
|
const num = get.isAsyncRequest();
|
|
set.isAsyncRequest(num - 1 < 0 ? 0 : num - 1);
|
|
},
|
|
})
|
|
|
|
export const actionsBeta = (set, get, api) => ({
|
|
setAuthData: ({ userData, token }) => {
|
|
set.userData(userData);
|
|
set.token(token);
|
|
},
|
|
doLogout: () => {
|
|
set.userData({});
|
|
set.token('');
|
|
},
|
|
removeElement: (id) => {
|
|
const elements = get.formElements();
|
|
const newElements = elements.filter(o => o.id !== id);
|
|
set.formElements(newElements);
|
|
},
|
|
moveElement: (dragIndex, hoverIndex, item) => {
|
|
const prevFields = get.formElements();
|
|
|
|
if (dragIndex === -1) {
|
|
const configs = get.elementItems();
|
|
const itemCfg = head(configs.filter(o => o.id === item.dbId));
|
|
const newItem = {
|
|
...itemCfg,
|
|
id: item.id,
|
|
dbId: item.dbId
|
|
}
|
|
const newElements = prevFields.toSpliced(hoverIndex, 0, newItem);
|
|
set.formElements(newElements);
|
|
} else {
|
|
let newFields = prevFields.toSpliced(dragIndex, 1);
|
|
const newElements = newFields.toSpliced(hoverIndex, 0, prevFields[dragIndex]);
|
|
set.formElements(newElements);
|
|
}
|
|
},
|
|
addFlowData: (data) => {
|
|
const initial = get.flowData();
|
|
const exists = initial ? initial.filter(o => parseInt(o.formId) === parseInt(data.formId)) : [];
|
|
|
|
if (exists.length) {
|
|
const newData = initial.map(o => parseInt(o.formId) === parseInt(data.formId) ? data : o);
|
|
set.flowData(newData);
|
|
} else {
|
|
set.flowData([...initial, data]);
|
|
}
|
|
}
|
|
});
|