ui: optimize resource load

This commit is contained in:
undefined committed 2022-07-31 04:20:12 +08:00
1 parent ba0beee9a8
commit f1e4d896b9
3 files changed
+17 -6

No files matched your search

+12 -1
View File
@@ -1,6 +1,8 @@
import $ from 'jquery'; import $ from 'jquery';
import _ from 'lodash'; import _ from 'lodash';
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom';
import * as redux from 'react-redux';
import './utils/delay'; import './utils/delay';
import './utils/emulateAnchorClick'; import './utils/emulateAnchorClick';
@@ -24,6 +26,15 @@ import './components/notification';
import './components/nprogress'; import './components/nprogress';
import './components/monaco/loader'; import './components/monaco/loader';
window.node_modules = { _, $, React }; const modules = {
_, $, React, redux, ReactDOM,
};
export default async function load(name) {
if (modules[name]) return modules[name];
if (name === 'echarts') return import('echarts');
if (name === 'moment') return import('moment');
throw new Error(`Module ${name} not found`);
}
window.node_modules = { ...modules, load };
window.$ = $; window.$ = $;
window.jQuery = $; window.jQuery = $;
+3 -3
View File
@@ -1,6 +1,6 @@
{ {
"name": "@hydrooj/ui-default", "name": "@hydrooj/ui-default",
"version": "4.38.25", "version": "4.38.26",
"author": "undefined <i@undefined.moe>", "author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"main": "hydro.js", "main": "hydro.js",
@@ -10,7 +10,7 @@
"lint": "eslint" "lint": "eslint"
}, },
"devDependencies": { "devDependencies": {
"@blueprintjs/core": "^4.6.0", "@blueprintjs/core": "^4.7.0",
"@fontsource/dm-mono": "^4.5.8", "@fontsource/dm-mono": "^4.5.8",
"@fontsource/fira-code": "^4.5.10", "@fontsource/fira-code": "^4.5.10",
"@fontsource/inconsolata": "^4.5.6", "@fontsource/inconsolata": "^4.5.6",
@@ -75,7 +75,7 @@
"prism-themes": "^1.9.0", "prism-themes": "^1.9.0",
"prismjs": "^1.28.0", "prismjs": "^1.28.0",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"qrcode": "^1.5.0", "qrcode": "^1.5.1",
"queue-microtask": "^1.2.3", "queue-microtask": "^1.2.3",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
"react": "^18.2.0", "react": "^18.2.0",
@@ -1,10 +1,10 @@
import { NamedPage } from 'vj/misc/Page'; import { NamedPage } from 'vj/misc/Page';
import Calendar from 'vj/components/calendar';
import i18n from 'vj/utils/i18n'; import i18n from 'vj/utils/i18n';
import { parse as parseMongoId } from 'vj/utils/mongoId'; import { parse as parseMongoId } from 'vj/utils/mongoId';
const page = new NamedPage('homework_main', () => { const page = new NamedPage('homework_main', async () => {
// Homework Calendar // Homework Calendar
const { default: Calendar } = await import('vj/components/calendar');
if (UiContext.docs) { if (UiContext.docs) {
const events = UiContext.docs.map((doc) => ({ const events = UiContext.docs.map((doc) => ({
beginAt: doc.beginAt, beginAt: doc.beginAt,