This commit is contained in:
27
src/main.ts
27
src/main.ts
@@ -2,6 +2,20 @@ import { addAPIProvider } from "@iconify/vue"
|
||||
import { createPinia } from "pinia"
|
||||
import { createRouter, createWebHistory } from "vue-router"
|
||||
|
||||
import {
|
||||
ArcElement,
|
||||
BarElement,
|
||||
CategoryScale,
|
||||
Chart as ChartJS,
|
||||
Colors,
|
||||
Legend,
|
||||
LinearScale,
|
||||
Title,
|
||||
Tooltip,
|
||||
LineElement,
|
||||
PointElement,
|
||||
} from "chart.js"
|
||||
|
||||
import { STORAGE_KEY } from "utils/constants"
|
||||
import storage from "utils/storage"
|
||||
|
||||
@@ -28,6 +42,19 @@ router.beforeEach((to, from, next) => {
|
||||
}
|
||||
})
|
||||
|
||||
ChartJS.register(
|
||||
CategoryScale,
|
||||
LinearScale,
|
||||
BarElement,
|
||||
ArcElement,
|
||||
LineElement,
|
||||
PointElement,
|
||||
Colors,
|
||||
Title,
|
||||
Tooltip,
|
||||
Legend,
|
||||
)
|
||||
|
||||
const pinia = createPinia()
|
||||
const app = createApp(App)
|
||||
app.use(router)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { RouteRecordRaw } from "vue-router"
|
||||
import { loadChart } from "./shared/composables/chart"
|
||||
|
||||
export const ojs: RouteRecordRaw = {
|
||||
path: "/",
|
||||
@@ -11,7 +10,6 @@ export const ojs: RouteRecordRaw = {
|
||||
component: () => import("oj/problem/detail.vue"),
|
||||
props: true,
|
||||
name: "problem",
|
||||
beforeEnter: loadChart,
|
||||
},
|
||||
{
|
||||
path: "submission",
|
||||
@@ -63,12 +61,10 @@ export const ojs: RouteRecordRaw = {
|
||||
props: true,
|
||||
name: "contest problem",
|
||||
meta: { requiresAuth: true },
|
||||
beforeEnter: loadChart,
|
||||
},
|
||||
{
|
||||
path: "rank",
|
||||
component: () => import("oj/rank/list.vue"),
|
||||
beforeEnter: loadChart,
|
||||
},
|
||||
{
|
||||
path: "announcement",
|
||||
@@ -99,7 +95,6 @@ export const ojs: RouteRecordRaw = {
|
||||
path: "ai-analysis",
|
||||
component: () => import("oj/ai/analysis.vue"),
|
||||
meta: { requiresAuth: true },
|
||||
beforeEnter: loadChart,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
import {
|
||||
ArcElement,
|
||||
BarElement,
|
||||
CategoryScale,
|
||||
Chart as ChartJS,
|
||||
Colors,
|
||||
Legend,
|
||||
LinearScale,
|
||||
Title,
|
||||
Tooltip,
|
||||
LineElement,
|
||||
PointElement,
|
||||
} from "chart.js"
|
||||
|
||||
const [isLoaded] = useToggle()
|
||||
|
||||
export function loadChart() {
|
||||
if (isLoaded.value) return
|
||||
ChartJS.register(
|
||||
CategoryScale,
|
||||
LinearScale,
|
||||
BarElement,
|
||||
ArcElement,
|
||||
LineElement,
|
||||
PointElement,
|
||||
Colors,
|
||||
Title,
|
||||
Tooltip,
|
||||
Legend,
|
||||
)
|
||||
isLoaded.value = true
|
||||
}
|
||||
Reference in New Issue
Block a user