mirror of https://github.com/hykilpikonna/AquaDX
[M] Migrate usage
parent
6631bb593c
commit
9cffb19332
|
@ -1,35 +0,0 @@
|
|||
## Technical considerations
|
||||
|
||||
**Why use this over SvelteKit?**
|
||||
|
||||
- It brings its own routing solution which might not be preferable for some users.
|
||||
- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
|
||||
|
||||
This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
|
||||
|
||||
Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
|
||||
|
||||
**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
|
||||
|
||||
Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
|
||||
|
||||
**Why include `.vscode/extensions.json`?**
|
||||
|
||||
Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
|
||||
|
||||
**Why enable `allowJs` in the TS template?**
|
||||
|
||||
While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
|
||||
|
||||
**Why is HMR not preserving my local component state?**
|
||||
|
||||
HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
|
||||
|
||||
If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
|
||||
|
||||
```ts
|
||||
// store.ts
|
||||
// An extremely simple external store
|
||||
import { writable } from 'svelte/store'
|
||||
export default writable(0)
|
||||
```
|
|
@ -0,0 +1,29 @@
|
|||
<script lang="ts">
|
||||
import { Chart, Tooltip, type ChartData, type ChartOptions } from 'chart.js';
|
||||
import type { HTMLCanvasAttributes } from 'svelte/elements';
|
||||
import 'chart.js/auto';
|
||||
|
||||
interface Props extends HTMLCanvasAttributes {
|
||||
data: ChartData<'line', any, string>
|
||||
options: ChartOptions<'line'>
|
||||
}
|
||||
const { data, options, ...rest }: Props = $props()
|
||||
|
||||
Chart.register(Tooltip)
|
||||
|
||||
let canvasElem: HTMLCanvasElement
|
||||
let chart: Chart
|
||||
|
||||
$effect(() => {
|
||||
chart = new Chart(canvasElem, { type: 'line', data, options })
|
||||
return () => chart.destroy()
|
||||
})
|
||||
|
||||
$effect(() => {
|
||||
if (!chart) return
|
||||
chart.data = data
|
||||
chart.update()
|
||||
})
|
||||
</script>
|
||||
|
||||
<canvas bind:this={canvasElem} {...rest}></canvas>
|
|
@ -1,6 +1,7 @@
|
|||
import { mount } from 'svelte';
|
||||
import './app.sass'
|
||||
import App from './App.svelte'
|
||||
|
||||
const app = new App({ target: document.getElementById('app')! })
|
||||
const app = mount(App, { target: document.getElementById("app")! });
|
||||
|
||||
export default app
|
||||
export default app
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
} from "../libs/generalTypes";
|
||||
import { DATA_HOST } from "../libs/config";
|
||||
import 'cal-heatmap/cal-heatmap.css';
|
||||
import { Line } from 'svelte-chartjs';
|
||||
import moment from "moment";
|
||||
import 'chartjs-adapter-moment';
|
||||
import { CARD, DATA, GAME, USER } from "../libs/sdk";
|
||||
|
@ -23,6 +22,7 @@
|
|||
import RankDetails from "../components/RankDetails.svelte";
|
||||
import RatingComposition from "../components/RatingComposition.svelte";
|
||||
import useLocalStorage from "../libs/hooks/useLocalStorage.svelte";
|
||||
import Line from "../components/chart/Line.svelte";
|
||||
|
||||
const TREND_DAYS = 60
|
||||
|
||||
|
|
5565
AquaNet/yarn.lock
5565
AquaNet/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue