mirror of
https://github.com/estruyf/vscode-front-matter.git
synced 2026-07-06 18:01:24 +02:00
Keep collapsible state
This commit is contained in:
@@ -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} />
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user