Web.Client: added Settings page, empty commonSettings page
This commit is contained in:
parent
c65ad5e9ea
commit
f44219bff9
@ -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>
|
||||
|
60
web/ASC.Web.Client/src/components/pages/Settings/i18n.js
Normal file
60
web/ASC.Web.Client/src/components/pages/Settings/i18n.js
Normal 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;
|
39
web/ASC.Web.Client/src/components/pages/Settings/index.js
Normal file
39
web/ASC.Web.Client/src/components/pages/Settings/index.js
Normal 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);
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user