@@ -70,6 +70,30 @@ export function* moveList(id, index) {
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: sort locally
|
||||
export function* sortList(id, data) {
|
||||
yield put(actions.sortList(id, data));
|
||||
|
||||
let list;
|
||||
let cards;
|
||||
|
||||
try {
|
||||
({
|
||||
item: list,
|
||||
included: { cards },
|
||||
} = yield call(request, api.sortList, id, data));
|
||||
} catch (error) {
|
||||
yield put(actions.sortList.failure(id, error));
|
||||
return;
|
||||
}
|
||||
|
||||
yield put(actions.sortList.success(list, cards));
|
||||
}
|
||||
|
||||
export function* handleListSort(list, cards) {
|
||||
yield put(actions.handleListSort(list, cards));
|
||||
}
|
||||
|
||||
export function* deleteList(id) {
|
||||
yield put(actions.deleteList(id));
|
||||
|
||||
@@ -95,6 +119,8 @@ export default {
|
||||
updateList,
|
||||
handleListUpdate,
|
||||
moveList,
|
||||
sortList,
|
||||
handleListSort,
|
||||
deleteList,
|
||||
handleListDelete,
|
||||
};
|
||||
|
||||
@@ -20,6 +20,12 @@ export default function* listsWatchers() {
|
||||
takeEvery(EntryActionTypes.LIST_MOVE, ({ payload: { id, index } }) =>
|
||||
services.moveList(id, index),
|
||||
),
|
||||
takeEvery(EntryActionTypes.LIST_SORT, ({ payload: { id, data } }) =>
|
||||
services.sortList(id, data),
|
||||
),
|
||||
takeEvery(EntryActionTypes.LIST_SORT_HANDLE, ({ payload: { list, cards } }) =>
|
||||
services.handleListSort(list, cards),
|
||||
),
|
||||
takeEvery(EntryActionTypes.LIST_DELETE, ({ payload: { id } }) => services.deleteList(id)),
|
||||
takeEvery(EntryActionTypes.LIST_DELETE_HANDLE, ({ payload: { list } }) =>
|
||||
services.handleListDelete(list),
|
||||
|
||||
@@ -84,6 +84,10 @@ const createSocketEventsChannel = () =>
|
||||
emit(entryActions.handleListUpdate(item));
|
||||
};
|
||||
|
||||
const handleListSort = api.makeHandleListSort(({ item, included: { cards } }) => {
|
||||
emit(entryActions.handleListSort(item, cards));
|
||||
});
|
||||
|
||||
const handleListDelete = ({ item }) => {
|
||||
emit(entryActions.handleListDelete(item));
|
||||
};
|
||||
@@ -198,6 +202,7 @@ const createSocketEventsChannel = () =>
|
||||
|
||||
socket.on('listCreate', handleListCreate);
|
||||
socket.on('listUpdate', handleListUpdate);
|
||||
socket.on('listSort', handleListSort);
|
||||
socket.on('listDelete', handleListDelete);
|
||||
|
||||
socket.on('labelCreate', handleLabelCreate);
|
||||
@@ -256,6 +261,7 @@ const createSocketEventsChannel = () =>
|
||||
|
||||
socket.off('listCreate', handleListCreate);
|
||||
socket.off('listUpdate', handleListUpdate);
|
||||
socket.off('listSort', handleListSort);
|
||||
socket.off('listDelete', handleListDelete);
|
||||
|
||||
socket.off('labelCreate', handleLabelCreate);
|
||||
|
||||
Reference in New Issue
Block a user