Skip to content

Commit 7cf40f2

Browse files
committed
Update types
1 parent 16afd31 commit 7cf40f2

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

src/screens/projects/Projects.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const TaskList = TreeList(
2727
},
2828
{
2929
checkable: true,
30-
onCheck(keys) {
30+
onCheck(keys: any) {
3131
tasksStore.checkTasks(projectStore.activeProject, keys as string[]);
3232
},
3333
getCheckedKeys() {

src/screens/projects/components/TreeList.tsx

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,26 @@ import { Key } from 'rc-tree/lib/interface';
55

66
import { IDragInfo } from '../../../types/IDragInfo';
77
import { ITreeItem } from '../../../types/ITreeItem';
8+
import { TreeProps } from 'antd/lib/tree/Tree';
89

910
interface TreeListProps {
1011
onSelect?: (selectedKeys: Key[]) => void;
1112
}
1213

14+
interface TreePropsExtended<T>
15+
extends Omit<TreeProps, 'onDrop' | 'onSelect' | 'titleRender'> {
16+
getCheckedKeys?: () => Key[];
17+
titleRender?: (item: T) => React.ReactNode;
18+
}
19+
1320
export default function TreeList<T extends ITreeItem<any>>(
1421
getData: () => T[],
1522
updateData: (items: T[]) => void,
16-
options?: {
17-
checkable?: boolean;
18-
selectable?: boolean;
19-
onCheck?: (checkedKeys: React.Key[]) => void;
20-
getCheckedKeys?: () => React.Key[];
21-
titleRender?: (nodeData: T) => React.ReactNode;
22-
}
23+
options: TreePropsExtended<T>
2324
) {
24-
return observer(function TreeList({ onSelect }: TreeListProps) {
25+
const { getCheckedKeys, ...rest } = options;
26+
27+
return observer(({ onSelect }: TreeListProps) => {
2528
const data = getData();
2629

2730
function onDrop(info: IDragInfo) {
@@ -76,14 +79,16 @@ export default function TreeList<T extends ITreeItem<any>>(
7679
});
7780
} else {
7881
let ar: ITreeItem[];
79-
let i;
80-
loop(dataCopy, dropKey, (item, index, arr) => {
82+
let i: number;
83+
loop(dataCopy, dropKey, (_item, index, arr) => {
8184
ar = arr;
8285
i = index;
8386
});
8487
if (dropPosition === -1) {
88+
// @ts-ignore
8589
ar?.splice(i, 0, dragObj);
8690
} else {
91+
// @ts-ignore
8792
ar?.splice(i + 1, 0, dragObj);
8893
}
8994
}
@@ -94,16 +99,13 @@ export default function TreeList<T extends ITreeItem<any>>(
9499
return (
95100
<Tree
96101
className="draggable-tree"
97-
checkedKeys={options?.getCheckedKeys?.()}
98-
checkable={options?.checkable}
102+
checkedKeys={getCheckedKeys?.()}
99103
draggable
100-
selectable={options?.selectable}
101104
blockNode
102105
treeData={data}
103106
onDrop={onDrop}
104107
onSelect={onSelect}
105-
onCheck={options?.checkable ? options?.onCheck : undefined}
106-
titleRender={options?.titleRender}
108+
{...rest}
107109
/>
108110
);
109111
});

0 commit comments

Comments
 (0)