mirror of
https://github.com/haveno-dex/haveno-ui.git
synced 2025-05-06 08:25:04 -04:00
chore(dev): app boilerplate
Electron, React, Vite app boilerplate - license header - pre-commit and commit-msg hooks - storybook - fix windows tests; - fix linux build - CI setup - persistent store with electron-store and safeStorage - localization with react-intl Refs: - https://github.com/haveno-dex/haveno-ui/projects/1#card-81001746 - https://github.com/haveno-dex/haveno-ui/projects/1#card-81001745 Authored-by: schowdhuri Reviewed-by: localredhead
This commit is contained in:
parent
3a379a7c55
commit
a9893aa853
81 changed files with 16560 additions and 0 deletions
|
@ -0,0 +1,53 @@
|
|||
// =============================================================================
|
||||
// Copyright 2022 Haveno
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// =============================================================================
|
||||
|
||||
import type { FC } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { IntlProvider as ReacIntlProvider } from "react-intl";
|
||||
import type { LangKeys } from "@src/constants/lang/LangKeys";
|
||||
|
||||
const SupportedLocales = {
|
||||
EN: "en",
|
||||
ES: "es",
|
||||
};
|
||||
|
||||
const DEFAULT_LOCALE = SupportedLocales.EN;
|
||||
|
||||
export const IntlProvider: FC = ({ children }) => {
|
||||
const [messages, setMessages] = useState<{ [key in LangKeys]: string }>();
|
||||
const locale = useMemo(
|
||||
() =>
|
||||
navigator.language in SupportedLocales
|
||||
? navigator.language
|
||||
: DEFAULT_LOCALE,
|
||||
[navigator.language]
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
console.log(navigator.language);
|
||||
import(/* @vite-ignore */ `../../../constants/lang/${locale}.ts`).then(
|
||||
(val) => {
|
||||
setMessages(val.default);
|
||||
}
|
||||
);
|
||||
}, [locale]);
|
||||
|
||||
return (
|
||||
<ReacIntlProvider locale={locale} messages={messages}>
|
||||
{children}
|
||||
</ReacIntlProvider>
|
||||
);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue