diff --git a/packages/duoyun-ui/package.json b/packages/duoyun-ui/package.json index af249097..2371999a 100644 --- a/packages/duoyun-ui/package.json +++ b/packages/duoyun-ui/package.json @@ -1,6 +1,6 @@ { "name": "duoyun-ui", - "version": "1.1.6", + "version": "1.1.7", "description": "A lightweight desktop UI component library, implemented using Gem", "keywords": [ "frontend", @@ -48,7 +48,7 @@ "elkjs": "^0.7.1" }, "peerDependencies": { - "@mantou/gem": "^1.7.2" + "@mantou/gem": "^1.7.6" }, "devDependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", diff --git a/packages/gem-book/src/element/elements/icons.ts b/packages/gem-book/src/element/elements/icons.ts index de7a415a..21602ff2 100644 --- a/packages/gem-book/src/element/elements/icons.ts +++ b/packages/gem-book/src/element/elements/icons.ts @@ -1,6 +1,18 @@ import { raw } from '@mantou/gem'; export const icons = { + menu: raw` + + `, + close: raw` + + `, i18n: raw`
${this.logo ? html`` : ''} ${internals.map(this.renderInternalItem)}
diff --git a/packages/gem-book/src/element/elements/sidebar.ts b/packages/gem-book/src/element/elements/sidebar.ts index e4c3a74b..d77e6cbb 100644 --- a/packages/gem-book/src/element/elements/sidebar.ts +++ b/packages/gem-book/src/element/elements/sidebar.ts @@ -1,4 +1,17 @@ -import { html, GemElement, customElement, TemplateResult, connectStore, classMap } from '@mantou/gem'; +import { + html, + GemElement, + customElement, + TemplateResult, + connectStore, + classMap, + state, + createStore, + connect, + updateStore, + history, + disconnect, +} from '@mantou/gem'; import { mediaQuery } from '@mantou/gem/helper/mediaquery'; import { NavItem } from '../../common/config'; @@ -13,9 +26,17 @@ import '@mantou/gem/elements/use'; import './side-link'; import './nav-logo'; +export const sidebarStore = createStore({ open: false }); + +const closeSidebar = () => updateStore(sidebarStore, { open: false }); +export const toggleSidebar = () => updateStore(sidebarStore, { open: !sidebarStore.open }); + @customElement('gem-book-sidebar') @connectStore(bookStore) +@connectStore(sidebarStore) export class SideBar extends GemElement { + @state open: boolean; + #toggleLinks = (e: MouseEvent) => { const ele = e.target as HTMLDivElement; ele.classList.toggle('close'); @@ -72,6 +93,7 @@ export class SideBar extends GemElement { }; render() { + this.open = sidebarStore.open; return html`