Skip to content

Commit b4de4b5

Browse files
committed
feat(view): Format tree list styles.
1 parent 477cf1f commit b4de4b5

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

src/components/pendingStore.ts

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,36 @@ interface State {
3232
clean: () => void;
3333
}
3434

35+
function convertList(ListSource: any[]) {
36+
const ListDest: any[] = [];
37+
38+
for (let item of ListSource) {
39+
const keys = item.key.split('/');
40+
let currentObj: any = ListDest;
41+
42+
for (let i = 0; i < keys.length; i++) {
43+
const key = keys[i];
44+
45+
if (!currentObj.find((obj: any) => obj.key === key)) {
46+
if (i === keys.length - 1) {
47+
currentObj.push({
48+
...item,
49+
title: key
50+
});
51+
} else {
52+
const newObj: any = { key: key, title: key, children: [] };
53+
currentObj.push(newObj);
54+
currentObj = newObj.children;
55+
}
56+
} else {
57+
currentObj = currentObj.find((obj: any) => obj.key === key).children;
58+
}
59+
}
60+
}
61+
62+
return ListDest;
63+
}
64+
3565
const TouchedFileList = [
3666
...RemoteFileTouchedDecisions,
3767
...LocalFileTouchedDecisions
@@ -61,8 +91,11 @@ const useStore = create<State>()((set, get) => ({
6191
},
6292
getToRemoteFileList: () => {
6393
const obj = get().record;
64-
console.log('get to remote data: ', obj)
65-
return Object.keys(obj).filter(key => obj[key].syncType === 'TOREMOTE').map(key => obj[key])
94+
const list = Object.keys(obj)
95+
.filter(key => obj[key].syncType === 'TOREMOTE')
96+
.map(key => obj[key])
97+
98+
return convertList(list) as FileOrFolderMixedState[]
6699
},
67100

68101
updateSelectedToLocalFileList: (list: string[]) => {

0 commit comments

Comments
 (0)