From be858c310e7d8b9905d1e87a5da752e332f2b685 Mon Sep 17 00:00:00 2001 From: Research Assistant Date: Sun, 24 May 2026 16:55:22 +0800 Subject: [PATCH] feat(plugin): extract disclosure utils to src/utils/disclosure.ts --- paperforge/plugin/src/utils/disclosure.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 paperforge/plugin/src/utils/disclosure.ts diff --git a/paperforge/plugin/src/utils/disclosure.ts b/paperforge/plugin/src/utils/disclosure.ts new file mode 100644 index 00000000..f5062798 --- /dev/null +++ b/paperforge/plugin/src/utils/disclosure.ts @@ -0,0 +1,21 @@ +export function getDisclosureState( + store: Record | null | undefined, + key: string, + defaultCollapsed: boolean, +): boolean { + if (!store || typeof store !== "object") return !!defaultCollapsed; + if (!Object.prototype.hasOwnProperty.call(store, key)) return !!defaultCollapsed; + return !!store[key]; +} + +export function toggleDisclosureState( + store: Record | null | undefined, + key: string, + defaultCollapsed: boolean, +): boolean { + const next = !getDisclosureState(store, key, defaultCollapsed); + if (store && typeof store === "object") { + store[key] = next; + } + return next; +}