waveterm/src/sh2.ts

48 lines
1.7 KiB
TypeScript
Raw Normal View History

2022-07-12 02:55:03 +02:00
import * as mobx from "mobx";
2022-06-08 02:25:35 +02:00
import * as React from "react";
import {createRoot} from 'react-dom/client';
import {sprintf} from "sprintf-js";
import {Terminal} from 'xterm';
import {Main} from "./main";
2022-07-11 23:43:18 +02:00
import {GlobalModel} from "./model";
2022-06-17 06:14:26 +02:00
import {v4 as uuidv4} from "uuid";
2022-06-08 02:25:35 +02:00
2022-07-05 07:37:45 +02:00
// @ts-ignore
let VERSION = __PROMPT_VERSION__;
// @ts-ignore
let BUILD = __PROMPT_BUILD__;
2022-06-08 02:25:35 +02:00
2022-10-10 21:08:29 +02:00
let jbmFontNormal = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-regular.woff2')", {style: "normal", weight: "400"});
let jbmFont200 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-200.woff2')", {style: "normal", weight: "200"});
let jbmFont700 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-700.woff2')", {style: "normal", weight: "700"});
2022-10-10 21:19:19 +02:00
let faFont = new FontFace("FontAwesome", "url(static/fonts/fontawesome-webfont-4.7.woff2)", {style: "normal", weight: "normal"});
let docFonts : any = document.fonts; // work around ts typing issue
docFonts.add(jbmFontNormal);
docFonts.add(jbmFont200);
docFonts.add(jbmFont700);
docFonts.add(faFont);
2022-10-10 21:08:29 +02:00
jbmFontNormal.load();
jbmFont200.load();
jbmFont700.load();
2022-10-10 21:19:19 +02:00
faFont.load();
2022-10-10 21:08:29 +02:00
2022-06-08 02:25:35 +02:00
document.addEventListener("DOMContentLoaded", () => {
2022-06-17 00:51:17 +02:00
let reactElem = React.createElement(Main, null, null);
2022-06-20 22:03:20 +02:00
let elem = document.getElementById("app");
2022-06-08 02:25:35 +02:00
let root = createRoot(elem);
2022-10-10 21:08:29 +02:00
let isFontLoaded = document.fonts.check("12px 'JetBrains Mono'");
if (isFontLoaded) {
root.render(reactElem);
2022-10-10 21:08:29 +02:00
}
else {
document.fonts.ready.then(() => {
root.render(reactElem);
});
}
2022-06-08 02:25:35 +02:00
});
2022-07-12 02:55:03 +02:00
(window as any).mobx = mobx;
(window as any).sprintf = sprintf;
2022-07-12 02:55:03 +02:00
console.log("PROMPT", VERSION, BUILD)