|
1 | 1 | import fileListElementsStyles from './fileListElements.module.scss';
|
2 | 2 | import { FileListElementType, FileListElementTypeType } from '../../../../../types/data/fileListType.ts';
|
3 |
| -import { useState } from 'react'; |
4 | 3 | import FolderIcon from '../../../../../assets/folder_gray.svg';
|
5 | 4 | import FolderOpenIcon from '../../../../../assets/folder_open_gray.svg';
|
6 | 5 | import FileListFile from './fileListFile.tsx';
|
7 | 6 | import { AppDispatch, useAppDispatch } from '../../../../../redux';
|
8 | 7 | import { updateFileListElement } from '../../../../../redux/reducer/data/filesReducer.ts';
|
9 |
| -import { updateFileListElementTypeChecked } from '../fileListUtilities/fileTreeUtilities.ts'; |
10 | 8 |
|
11 | 9 | function FileListFolder(props: { folder: FileListElementType; foldedOut: boolean }) {
|
12 | 10 | const dispatch: AppDispatch = useAppDispatch();
|
13 |
| - const [foldedOut, setFoldedOut] = useState(props.foldedOut); |
14 | 11 |
|
15 | 12 | return (
|
16 | 13 | <>
|
17 |
| - {foldedOut ? ( |
| 14 | + {props.folder.foldedOut ? ( |
18 | 15 | <>
|
19 | 16 | <div className={'flex items-center'}>
|
20 | 17 | {props.folder.id !== undefined && (
|
21 | 18 | <input
|
22 | 19 | type={'checkbox'}
|
23 | 20 | className={'checkbox checkbox-accent checkbox-xs'}
|
24 |
| - checked={props.folder.element.checked} |
25 |
| - onChange={(e) => dispatch(updateFileListElement(updateFileListElementTypeChecked(props.folder, e.target.checked)))} |
| 21 | + checked={props.folder.checked} |
| 22 | + onChange={(e) => dispatch(updateFileListElement({ ...props.folder, checked: e.target.checked }))} |
26 | 23 | />
|
27 | 24 | )}
|
28 |
| - <div className={fileListElementsStyles.element} onClick={() => setFoldedOut(false)}> |
| 25 | + <div |
| 26 | + className={fileListElementsStyles.element} |
| 27 | + onClick={() => dispatch(updateFileListElement({ ...props.folder, foldedOut: false }))}> |
29 | 28 | <img src={FolderOpenIcon} alt={`folder open ${props.folder.name}`} />
|
30 | 29 | <span>{props.folder.name}</span>
|
31 | 30 | </div>
|
@@ -58,10 +57,12 @@ function FileListFolder(props: { folder: FileListElementType; foldedOut: boolean
|
58 | 57 | <input
|
59 | 58 | type={'checkbox'}
|
60 | 59 | className={'checkbox checkbox-accent checkbox-xs'}
|
61 |
| - checked={props.folder.element.checked} |
62 |
| - onChange={(e) => dispatch(updateFileListElement(updateFileListElementTypeChecked(props.folder, e.target.checked)))} |
| 60 | + checked={props.folder.checked} |
| 61 | + onChange={(e) => dispatch(updateFileListElement({ ...props.folder, checked: e.target.checked }))} |
63 | 62 | />
|
64 |
| - <div onClick={() => setFoldedOut(true)} className={fileListElementsStyles.element}> |
| 63 | + <div |
| 64 | + onClick={() => dispatch(updateFileListElement({ ...props.folder, foldedOut: true }))} |
| 65 | + className={fileListElementsStyles.element}> |
65 | 66 | <img src={FolderIcon} alt={`folder ${props.folder.name}`} />
|
66 | 67 | <span>{props.folder.name}</span>
|
67 | 68 | </div>
|
|
0 commit comments