Newer
Older
CrypticOreWallet / src / App.tsx
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
import React, { Suspense } from "react";
import { BrowserRouter as Router } from "react-router-dom";

import { Provider } from "react-redux";
import { initStore } from "./store/init";

import { HotKeys } from "react-hotkeys";
import { keyMap } from "./global/AppHotkeys";

// Set up localisation
import "./utils/i18n";

// FIXME: Apparently the import order of my CSS is important. Who knew!
import "./App.less";

import { CheckStatus } from "./pages/CheckStatus";
import { AppServices } from "./global/AppServices";

export const store = initStore();
export type AppDispatch = typeof store.dispatch;

function App(): JSX.Element {
  return <Suspense fallback="Loading (TODO)"> {/* TODO */}
    <Provider store={store}>
      <HotKeys keyMap={keyMap}>
        <Router>
          <CheckStatus />

          {/* Services, etc. */}
          <AppServices />
        </Router>
      </HotKeys>
    </Provider>
  </Suspense>;
}

export default App;