Skip to content
This repository was archived by the owner on Mar 3, 2020. It is now read-only.

Commit 5805f80

Browse files
committed
implemented category create before reorder
1 parent 7be6a6c commit 5805f80

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

velog-frontend/src/containers/write/CategoryEditModalContainer.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class CategoryEditModalContainer extends Component<Props> {
4646
const shouldUpdate = categories.filter(c => c.edited && !c.temp && !c.hide);
4747

4848
try {
49-
const create = shouldCreate.map(c => WriteActions.createCategory(c.name));
49+
const create = shouldCreate.map(c => WriteActions.createCategory(c.name, c.id));
5050
const remove = shouldRemove.map(c => WriteActions.deleteCategory(c.id));
5151
const update = shouldUpdate.map(c => WriteActions.updateCategory({
5252
id: c.id,
@@ -55,7 +55,9 @@ class CategoryEditModalContainer extends Component<Props> {
5555
await Promise.all(create);
5656
await Promise.all(remove);
5757
await Promise.all(update);
58-
const categoryOrders = categories.map((category, i) => ({ id: category.id, order: i }))
58+
if (!this.props.categories) return;
59+
const categoryOrders = this.props.categories.map(
60+
(category, i) => ({ id: category.id, order: i }))
5961
.toJS();
6062
await WriteActions.reorderCategories(categoryOrders);
6163
} catch (e) {

velog-frontend/src/store/modules/write.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export type WriteActionCreators = {
4343
toggleEditCategory(id: string): any,
4444
changeCategoryName({ id: string, name: string }): any,
4545
hideCategory(id: string): any,
46-
createCategory(name: string): any,
46+
createCategory(name: string, id: string): any,
4747
deleteCategory(id: string): any,
4848
updateCategory({ id: string, name: string }): any,
4949
reorderCategory({ from: number, to: number }): any,
@@ -65,13 +65,14 @@ export const actionCreators = {
6565
toggleEditCategory: createAction(TOGGLE_EDIT_CATEGORY, id => id),
6666
changeCategoryName: createAction(CHANGE_CATEGORY_NAME, ({ id, name }) => ({ id, name })),
6767
hideCategory: createAction(HIDE_CATEGORY, id => id),
68-
createCategory: createAction(CREATE_CATEGORY, MeAPI.createCategory),
68+
createCategory: createAction(CREATE_CATEGORY, MeAPI.createCategory, (name, id) => id),
6969
deleteCategory: createAction(DELETE_CATEGORY, MeAPI.deleteCategory),
7070
updateCategory: createAction(UPDATE_CATEGORY, MeAPI.updateCategory),
7171
reorderCategory: createAction(REORDER_CATEGORY),
7272
reorderCategories: createAction(REORDER_CATEGORIES, MeAPI.reorderCategories),
7373
};
7474

75+
7576
export type Category = {
7677
id: string,
7778
order: number,
@@ -241,6 +242,14 @@ export default handleActions({
241242
true,
242243
);
243244
},
245+
...pender({
246+
type: CREATE_CATEGORY,
247+
onSuccess: (state, action) => {
248+
const index = state.categoryModal.categories.findIndex(
249+
category => category.id === action.meta);
250+
return state.setIn(['categoryModal', 'categories', index, 'id'], action.payload.data.id);
251+
},
252+
}),
244253
[REORDER_CATEGORY]: (state, { payload: { from, to } }) => {
245254
const fromItem = state.categoryModal.categories.get(from);
246255
return state.withMutations((s) => {

0 commit comments

Comments
 (0)