From 5c7ff7c2870cbb1c4e26e0fb91aa4b0b71b0655b Mon Sep 17 00:00:00 2001 From: Rachel Powers <508861+Ryex@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:15:32 -0700 Subject: [PATCH] share dialog is back --- www/src/js/app/app.ts | 37 ++++++--- www/src/js/app/index.ts | 3 +- www/src/js/app/nav.ts | 9 ++- www/src/js/app/share.ts | 49 ++++++++++++ www/src/js/editor/ace.ts | 1 + www/src/js/editor/ic10_mode.ts | 1 - www/src/js/editor/index.ts | 123 +++++++++++++++++++++--------- www/src/js/editor/shortcuts-ui.ts | 78 +++++++++++++++++++ www/src/js/editor/styles.ts | 2 +- www/webpack.config.js | 16 +++- 10 files changed, 262 insertions(+), 57 deletions(-) create mode 100644 www/src/js/app/share.ts create mode 100644 www/src/js/editor/shortcuts-ui.ts diff --git a/www/src/js/app/app.ts b/www/src/js/app/app.ts index be46920..1a59c3e 100644 --- a/www/src/js/app/app.ts +++ b/www/src/js/app/app.ts @@ -1,7 +1,14 @@ import { HTMLTemplateResult, html, css, CSSResultGroup } from "lit"; import { customElement, property, query } from "lit/decorators.js"; import { BaseElement, defaultCss } from "../components"; -import "./nav.ts"; +import "./nav"; +import "./share"; +import { ShareSessionDialog } from "./share"; + +import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path.js'; + +// Set the base path to the folder you copied Shoelace's assets to +setBasePath('/shoelace'); import "@shoelace-style/shoelace/dist/components/split-panel/split-panel.js"; @@ -29,9 +36,9 @@ export class App extends BaseElement { flex-grow: 1; // z-index: auto; } - .z-fix { - z-index: 900; - } + // .z-fix { + // z-index: 900; + // } sl-split-panel { height: 100%; } @@ -40,9 +47,12 @@ export class App extends BaseElement { editorSettings: { fontSize: number; relativeLineNumbers: boolean }; - get editor() { - return this.renderRoot.querySelector("ace-ic10") as IC10Editor; - } + @query('ace-ic10') accessor editor: IC10Editor; + @query('session-share-dialog') accessor shareDialog: ShareSessionDialog; + + // get editor() { + // return this.renderRoot.querySelector("ace-ic10") as IC10Editor; + // } vm!: VirtualMachine; session!: Session; @@ -57,16 +67,16 @@ export class App extends BaseElement { protected createRenderRoot(): HTMLElement | DocumentFragment { const root = super.createRenderRoot(); - root.addEventListener('app-share-session', this._handleShare); - root.addEventListener('app-open-file', this._handleOpenFile); - root.addEventListener('app-save-as', this._handleSaveAs); + root.addEventListener('app-share-session', this._handleShare.bind(this)); + root.addEventListener('app-open-file', this._handleOpenFile.bind(this)); + root.addEventListener('app-save-as', this._handleSaveAs.bind(this)); return root; } protected render(): HTMLTemplateResult { return html`