Web: Login: added getting language from portal settings, removed accept-language-parser

This commit is contained in:
Artem Tarasov 2022-08-30 15:00:31 +03:00
parent e5545dd1f8
commit ee7986e7bb
3 changed files with 16 additions and 45 deletions

View File

@ -99,7 +99,6 @@
"socketPath": "/login/ws",
"dependencies": {
"@types/ws": "^8.5.3",
"accept-language-parser": "^1.5.0",
"bufferutil": "^4.0.6",
"compression": "^1.7.4",
"cookie-parser": "^1.4.6",

View File

@ -1,4 +1,4 @@
import express, { Request, Response } from "express";
import express, { Response } from "express";
import template from "./lib/template";
import path from "path";
import compression from "compression";
@ -12,8 +12,6 @@ import i18nextMiddleware, { I18next } from "i18next-express-middleware";
import i18next from "./i18n";
import cookieParser from "cookie-parser";
import { LANGUAGE } from "@docspace/common/constants";
import parser from "accept-language-parser";
import { getPortalCultures } from "@docspace/common/api/settings";
import { initSSR } from "@docspace/common/api/client";
let port = PORT;
@ -36,45 +34,27 @@ app.use(logger("dev", { stream: stream }));
if (IS_DEVELOPMENT) {
app.get("*", async (req: ILoginRequest, res: Response) => {
const { i18n, cookies, headers, query, t, url } = req;
let initialState: IInitialState;
let assets: assetsType;
initSSR(headers);
let currentLanguage = "en";
if (cookies && cookies[LANGUAGE]) {
currentLanguage = cookies[LANGUAGE];
} else {
const availableLanguages: string[] = await getPortalCultures();
const parsedAcceptLanguages: object[] = parser.parse(
headers["accept-language"]
);
const detectedLanguage:
| IAcceptLanguage
| any = parsedAcceptLanguages.find(
(acceptLang: IAcceptLanguage) =>
typeof acceptLang === "object" &&
acceptLang?.code &&
availableLanguages.includes(acceptLang.code)
);
if (typeof detectedLanguage === "object")
currentLanguage = detectedLanguage.code;
}
if (i18n) await i18n.changeLanguage(currentLanguage);
let initialI18nStore = {};
if (i18n) initialI18nStore = i18n.services.resourceStore.data;
let assets: assetsType;
let initialState: IInitialState;
try {
assets = await getAssets();
initialState = await getInitialState(query);
let currentLanguage = initialState.portalSettings.culture;
if (cookies && cookies[LANGUAGE]) {
currentLanguage = cookies[LANGUAGE];
}
if (i18n) await i18n.changeLanguage(currentLanguage);
let initialI18nStore = {};
if (i18n) initialI18nStore = i18n.services.resourceStore.data;
assets = await getAssets();
const { component, styleTags } = renderApp(i18n, initialState, url);
const htmlString = template(

View File

@ -2255,7 +2255,6 @@ __metadata:
"@types/styled-components": ^5.1.25
"@types/winston": ^2.4.4
"@types/ws": ^8.5.3
accept-language-parser: ^1.5.0
babel-loader: ^8.2.2
bufferutil: ^4.0.6
clean-webpack-plugin: ^4.0.0
@ -6646,13 +6645,6 @@ __metadata:
languageName: node
linkType: hard
"accept-language-parser@npm:^1.5.0":
version: 1.5.0
resolution: "accept-language-parser@npm:1.5.0"
checksum: e32124e500f67d30da7dd15462b3ff7a718df327ff8bd1c97ae02d8ee5cf0917a3f600bf3b171965b1f95fef480b96d36752f674eff2cb0069c276d9783d32f6
languageName: node
linkType: hard
"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8":
version: 1.3.8
resolution: "accepts@npm:1.3.8"