Commit f87ef015 authored by Chunchi Che's avatar Chunchi Che

use localStorage

parent eb9ace2e
Pipeline #19940 passed with stages
in 5 minutes and 45 seconds
import axios from "axios"; import axios from "axios";
export async function initStrings() {
const strings = (
await axios.get<string>(`ygopro-database/locales/zh-CN/strings.conf`)
).data;
localStorage.setItem("ygo-strings", strings);
}
export async function fetchStrings( export async function fetchStrings(
region: string, region: string,
id: number id: number
......
import React from "react"; import React, { useEffect, useRef } from "react";
import { Engine, Scene } from "react-babylonjs"; import { Engine, Scene } from "react-babylonjs";
import { ReactReduxContext, Provider } from "react-redux"; import { ReactReduxContext, Provider } from "react-redux";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
...@@ -20,43 +20,61 @@ import OptionModal from "./optionModal"; ...@@ -20,43 +20,61 @@ import OptionModal from "./optionModal";
import Phase from "./phase"; import Phase from "./phase";
import CheckCardModalV2 from "./checkCardModalV2"; import CheckCardModalV2 from "./checkCardModalV2";
import ExtraDeck from "./extraDeck"; import ExtraDeck from "./extraDeck";
import { initStrings } from "../../api/strings";
// Ref: https://github.com/brianzinn/react-babylonjs/issues/126 // Ref: https://github.com/brianzinn/react-babylonjs/issues/126
const NeosDuel = () => ( const NeosDuel = () => {
<> // 应该用更优雅的方式处理`useEffect`执行两次的问题
<ReactReduxContext.Consumer> const initialRender = useRef(true);
{({ store }) => ( useEffect(() => {
<Engine antialias adaptToDeviceRatio canvasId="babylonJS"> const init = async () => {
<Scene> await initStrings();
<Provider store={store}> };
<Camera />
<Light /> if (initialRender.current) {
<Hands /> initialRender.current = false;
<Monsters /> return;
<Magics /> }
<Field />
<CommonDeck /> init();
<ExtraDeck /> }, []);
<Cemeteries />
<Exclusion /> return (
<Field /> <>
<Phase /> <ReactReduxContext.Consumer>
<Ground /> {({ store }) => (
</Provider> <Engine antialias adaptToDeviceRatio canvasId="babylonJS">
</Scene> <Scene>
</Engine> <Provider store={store}>
)} <Camera />
</ReactReduxContext.Consumer> <Light />
<CardModal /> <Hands />
<CardListModal /> <Monsters />
<HintNotification /> <Magics />
<CheckCardModal /> <Field />
<YesNoModal /> <CommonDeck />
<PositionModal /> <ExtraDeck />
<OptionModal /> <Cemeteries />
<CheckCardModalV2 /> <Exclusion />
</> <Field />
); <Phase />
<Ground />
</Provider>
</Scene>
</Engine>
)}
</ReactReduxContext.Consumer>
<CardModal />
<CardListModal />
<HintNotification />
<CheckCardModal />
<YesNoModal />
<PositionModal />
<OptionModal />
<CheckCardModalV2 />
</>
);
};
const Camera = () => ( const Camera = () => (
<freeCamera <freeCamera
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment