Keep collapsible state

This commit is contained in:
Elio Struyf
2022-02-12 10:03:40 +01:00
parent 1d5f940c94
commit a31bca73e7
7 changed files with 97 additions and 168 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ export const ViewPanel: React.FunctionComponent<IViewPanelProps> = (props: React
}
return (
<div className="frontmatter">
<div className="frontmatter">
<div className={`ext_actions`}>
<GlobalSettings settings={settings} />
+9 -3
View File
@@ -1,5 +1,6 @@
import * as React from 'react';
import { useEffect } from 'react';
import { MessageHelper } from '../../helpers/MessageHelper';
import { Command } from '../Command';
import { VsCollapsible } from './VscodeComponents';
@@ -15,8 +16,9 @@ const Collapsible: React.FunctionComponent<ICollapsibleProps> = ({id, children,
const collapseKey = `collapse-${id}`;
useEffect(() => {
const collapsed = window.localStorage.getItem(collapseKey);
if (collapsed === null || collapsed === 'true') {
const prevState = MessageHelper.getState();
console.log('prevState', prevState);
if (!prevState || !prevState[collapseKey] || prevState[collapseKey] === null || prevState[collapseKey] === 'true') {
setIsOpen(true);
updateStorage(true);
}
@@ -31,7 +33,11 @@ const Collapsible: React.FunctionComponent<ICollapsibleProps> = ({id, children,
}, ['']);
const updateStorage = (value: boolean) => {
window.localStorage.setItem(collapseKey, value.toString());
const prevState = MessageHelper.getState();
MessageHelper.setState({
...prevState,
[collapseKey]: value.toString()
});
}
// This is a work around for a lit-element issue of duplicate slot names
+1 -1
View File
@@ -15,7 +15,7 @@ import '@bendera/vscode-webview-elements/dist/vscode-table-row.js';
import '@bendera/vscode-webview-elements/dist/vscode-table-cell.js';
import '@bendera/vscode-webview-elements/dist/vscode-collapsible.js';
import '@bendera/vscode-webview-elements/dist/vscode-label.js';
import '@bendera/vscode-webview-elements/dist/vscode-checkbox.js';
// import '@bendera/vscode-webview-elements/dist/vscode-checkbox.js';
// import '@vscode/webview-ui-toolkit/dist/esm/checkbox';