Skip to content

Commit 69c7415

Browse files
committed
Added Movefolder in redux.
1 parent a740d0f commit 69c7415

File tree

4 files changed

+45
-4
lines changed

4 files changed

+45
-4
lines changed

client/packages/lowcoder/src/constants/reduxActionConstants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export const ReduxActionTypes = {
99
FETCH_RAW_CURRENT_USER_SUCCESS: "FETCH_RAW_CURRENT_USER_SUCCESS",
1010
FETCH_API_KEYS: "FETCH_API_KEYS",
1111
FETCH_API_KEYS_SUCCESS: "FETCH_API_KEYS_SUCCESS",
12-
12+
MOVE_TO_FOLDER2_SUCCESS: "MOVE_TO_FOLDER2_SUCCESS",
1313

1414
/* plugin RELATED */
1515
FETCH_DATA_SOURCE_TYPES: "FETCH_DATA_SOURCE_TYPES",

client/packages/lowcoder/src/redux/reducers/uiReducers/folderReducer.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export const folderReducer = createReducer(initialState, {
107107
state: FolderReduxState,
108108
action: ReduxAction<MoveToFolderPayload>
109109
): FolderReduxState => {
110-
const elements = { ...state.folderElements };
110+
let elements = { ...state.folderElements };
111111
elements[action.payload.sourceFolderId ?? ""] = elements[
112112
action.payload.sourceFolderId ?? ""
113113
]?.filter(
@@ -120,6 +120,44 @@ export const folderReducer = createReducer(initialState, {
120120
folderElements: elements,
121121
};
122122
},
123+
[ReduxActionTypes.MOVE_TO_FOLDER2_SUCCESS]: (
124+
state: FolderReduxState,
125+
action: ReduxAction<MoveToFolderPayload>
126+
): FolderReduxState => {
127+
let elements = { ...state.folderElements };
128+
let tempIndex: number | undefined;
129+
let tempNode: any;
130+
let temp = elements[""].map((item, index) => {
131+
if (item.folderId === action.payload.sourceFolderId && item.folder) {
132+
133+
const tempSubApplications = item.subApplications?.filter(e =>
134+
(e.folder && e.folderId !== action.payload.sourceId) ||
135+
(!e.folder && e.applicationId !== action.payload.sourceId)
136+
);
137+
tempNode = item.subApplications?.filter(e =>
138+
(e.folder && e.folderId === action.payload.sourceId) ||
139+
(!e.folder && e.applicationId === action.payload.sourceId)
140+
);
141+
return { ...item, subApplications: tempSubApplications };
142+
}
143+
if (item.folderId === action.payload.folderId && item.folder) {
144+
tempIndex = index;
145+
return item;
146+
}
147+
return item;
148+
});
149+
if (tempIndex !== undefined) {
150+
const targetItem = temp[tempIndex];
151+
if (targetItem.folder && Array.isArray(targetItem.subApplications)) {
152+
targetItem.subApplications.push(tempNode[0]);
153+
}
154+
}
155+
elements[""] = temp;
156+
return {
157+
...state,
158+
folderElements: elements,
159+
};
160+
},
123161
[ReduxActionTypes.DELETE_FOLDER_SUCCESS]: (
124162
state: FolderReduxState,
125163
action: ReduxAction<DeleteFolderPayload>

client/packages/lowcoder/src/redux/reduxActions/folderActions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export interface MoveToFolderPayload {
5858
sourceFolderId: string;
5959
sourceId: string;
6060
folderId: string;
61+
moveFlag?: boolean;
6162
}
6263

6364
export const moveToFolder = (

client/packages/lowcoder/src/redux/sagas/folderSagas.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,16 @@ export function* deleteFolderSaga(action: ReduxActionWithCallbacks<DeleteFolderP
8484

8585
export function* moveToFolderSaga(action: ReduxActionWithCallbacks<MoveToFolderPayload, any, any>) {
8686
try {
87+
const { moveFlag } = action.payload;
88+
delete action.payload.moveFlag;
8789
const response: AxiosResponse<GenericApiResponse<void>> = yield FolderApi.moveToFolder(
8890
action.payload
8991
);
9092
const isValidResponse: boolean = validateResponse(response);
91-
93+
const type = moveFlag ? ReduxActionTypes.MOVE_TO_FOLDER2_SUCCESS : ReduxActionTypes.MOVE_TO_FOLDER_SUCCESS;
9294
if (isValidResponse) {
9395
yield put({
94-
type: ReduxActionTypes.MOVE_TO_FOLDER_SUCCESS,
96+
type,
9597
payload: action.payload,
9698
});
9799
action.onSuccessCallback && action.onSuccessCallback(response);

0 commit comments

Comments
 (0)