Web.Client: added Settings page, empty commonSettings page

This commit is contained in:
Daniil Senkiv 2019-10-21 16:57:53 +03:00
parent c65ad5e9ea
commit f44219bff9
6 changed files with 108 additions and 0 deletions

View File

@ -11,6 +11,8 @@ import history from './history';
const Home = lazy(() => import("./components/pages/Home"));
const About = lazy(() => import("./components/pages/About"));
const Confirm = lazy(() => import("./components/pages/Confirm"));
const Settings = lazy(() => import("./components/pages/Settings"));
const App = () => {
return (
<Router history={history}>
@ -23,6 +25,7 @@ const App = () => {
<Route path="/confirm" component={Confirm} />
<PrivateRoute exact path={["/","/error=:error"]} component={Home} />
<PrivateRoute exact path="/about" component={About} />
<PrivateRoute restricted path="/settings" component={Settings} />
<PrivateRoute component={Error404} />
</Switch>
</Suspense>

View File

@ -0,0 +1,60 @@
import i18n from "i18next";
import Backend from "i18next-xhr-backend";
const newInstance = i18n.createInstance();
if (process.env.NODE_ENV === "production") {
newInstance
.use(Backend)
.init({
lng: 'en',
fallbackLng: "en",
debug: true,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
format: function (value, format) {
if (format === 'lowercase') return value.toLowerCase();
return value;
}
},
react: {
useSuspense: true
},
backend: {
loadPath: `/locales/Settings/{{lng}}/{{ns}}.json`
}
});
} else if (process.env.NODE_ENV === "development") {
const resources = {
en: {
translation: require("./locales/en/translation.json")
},
ru: {
translation: require("./locales/ru/translation.json")
}
};
newInstance.init({
resources: resources,
lng: 'en',
fallbackLng: "en",
debug: true,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
format: function (value, format) {
if (format === 'lowercase') return value.toLowerCase();
return value;
}
},
react: {
useSuspense: false
}
});
}
export default newInstance;

View File

@ -0,0 +1,39 @@
import React, { Suspense, lazy } from "react";
import { connect } from "react-redux";
import { Route, Switch } from "react-router-dom";
import { Loader, PageLayout } from "asc-web-components";
import i18n from "./i18n";
import { I18nextProvider } from "react-i18next";
const CommonSettings = lazy(() => import("./sub-components/common"));
const Settings = ({ match, language }) => {
i18n.changeLanguage(language);
//console.log("Settings render");
return (
<I18nextProvider i18n={i18n}>
<Suspense
fallback={<Loader className="pageLoader" type="rombs" size={40} />}
>
<Switch>
<Route
path={`${match.path}/common`}
component={CommonSettings}
/>
</Switch>
</Suspense>
</I18nextProvider >
);
};
function mapStateToProps(state) {
return {
language: state.auth.user.cultureName || state.auth.settings.culture,
};
}
export default connect(mapStateToProps)(Settings);