Skip to content

Commit db0d5e0

Browse files
committed
save collapse status
1 parent 7d4411a commit db0d5e0

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

assets/js/hooks2/node/index.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
1+
import { saveCollapseStatus } from "../store";
12
import { DataNode, DomNode, UUID } from "../types";
23

34
export function toggleCollapse(event: Event) {
45
const target = event.target as HTMLDivElement;
56
const node = getDomNodeByTarget(target);
67
node.classList.toggle("collapsed");
78
const { uuid, collapsed } = getDataNodeFromDomNode(node);
8-
// setCollapse.call(this, uuid, collapsed);
9+
10+
saveCollapseStatus(this.id, uuid, collapsed);
911
}
1012

1113
function getDomNodeByTarget(target: HTMLDivElement) {
1214
return target.closest(".node") as DomNode;
1315
}
1416

15-
// function setCollapseStatus(uuid: UUID, collapsed: boolean) {
16-
// // const status = getCollapsedStatus(this.el.id);
17-
// // status[uuid] = collapsed;
18-
// // localStorage.setItem(this.el.id, JSON.stringify(status));
19-
// }
20-
2117
export function moveDomNodeToDataPosition(node: DomNode) {
2218
const { parent_id, prev_id } = getDataNodeFromDomNode(node);
2319

assets/js/hooks2/store.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { UUID } from "./types";
2+
3+
export function saveCollapseStatus(id: string, uuid: UUID, collapsed: boolean) {
4+
const status = loadCollapsedStatus(id);
5+
status[uuid] = collapsed;
6+
localStorage.setItem(id, JSON.stringify(status));
7+
}
8+
9+
export function loadCollapsedStatus(id: string) {
10+
const status = localStorage.getItem(id) || "{}";
11+
12+
return JSON.parse(status);
13+
}

assets/js/hooks2/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ export interface DataNode {
22
uuid: UUID;
33
parent_id?: UUID;
44
prev_id?: UUID;
5-
content?: string;
6-
collapsed?: boolean;
7-
selected?: boolean;
5+
content: string;
6+
collapsed: boolean;
7+
// selected: boolean;
88
// creator_id?: number;
99
}
1010

0 commit comments

Comments
 (0)