Client:Packages:Login:Fix double request to cultures
This commit is contained in:
parent
5366f41f37
commit
c4ae671ca3
@ -69,16 +69,24 @@ export default async function Layout({
|
||||
isComboboxVisible = false;
|
||||
}
|
||||
|
||||
let cultures;
|
||||
if (isComboboxVisible) {
|
||||
cultures = await getPortalCultures();
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", height: "100%" }}>
|
||||
<SimpleNav
|
||||
culture={culture}
|
||||
initialCultures={cultures}
|
||||
isLanguageComboboxVisible={isComboboxVisible}
|
||||
/>
|
||||
<ContentWrapper id="content-wrapper" bgPattern={bgPattern}>
|
||||
<div className="bg-cover" />
|
||||
<Scrollbar id="customScrollBar">
|
||||
{isComboboxVisible && <LanguageComboboxWrapper />}
|
||||
{isComboboxVisible && (
|
||||
<LanguageComboboxWrapper initialCultures={cultures} />
|
||||
)}
|
||||
|
||||
<StyledPage id="styled-page">{children}</StyledPage>
|
||||
</Scrollbar>
|
||||
|
@ -33,25 +33,25 @@ import { setLanguageForUnauthorized } from "@docspace/shared/utils/common";
|
||||
import { LanguageCombobox } from "@docspace/shared/components/language-combobox";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
import { Nullable } from "@docspace/shared/types";
|
||||
import { getPortalCultures } from "@docspace/shared/api/settings";
|
||||
import { TPortalCultures } from "@docspace/shared/api/settings/types";
|
||||
|
||||
import useDeviceType from "@/hooks/useDeviceType";
|
||||
|
||||
const LanguageComboboxWrapper = () => {
|
||||
type TLanguageComboboxWrapper = {
|
||||
initialCultures?: TPortalCultures;
|
||||
};
|
||||
|
||||
const LanguageComboboxWrapper = ({
|
||||
initialCultures,
|
||||
}: TLanguageComboboxWrapper) => {
|
||||
const { i18n } = useTranslation(["Login", "Common"]);
|
||||
const currentCulture = i18n.language;
|
||||
|
||||
const [cultures, setCultures] = useState<Nullable<TPortalCultures>>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchData = async () => {
|
||||
const cultures = await getPortalCultures();
|
||||
if (cultures) setCultures(cultures);
|
||||
};
|
||||
|
||||
fetchData();
|
||||
}, []);
|
||||
if (initialCultures) setCultures(initialCultures);
|
||||
}, [initialCultures]);
|
||||
|
||||
const onLanguageSelect = (culture: { key: string }) => {
|
||||
const { key } = culture;
|
||||
|
@ -29,8 +29,8 @@
|
||||
|
||||
import React from "react";
|
||||
import styled, { useTheme } from "styled-components";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
|
||||
import { TPortalCultures } from "@docspace/shared/api/settings/types";
|
||||
import { mobile } from "@docspace/shared/utils/device";
|
||||
import { getLogoUrl } from "@docspace/shared/utils/common";
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
@ -38,8 +38,6 @@ import { WhiteLabelLogoType } from "@docspace/shared/enums";
|
||||
|
||||
import LanguageComboboxWrapper from "./LanguageCombobox";
|
||||
|
||||
import { TYPE_LINK_WITHOUT_LNG_COMBOBOX } from "@/utils/constants";
|
||||
|
||||
const StyledSimpleNav = styled.div`
|
||||
display: none;
|
||||
height: 48px;
|
||||
@ -66,11 +64,13 @@ StyledSimpleNav.defaultProps = { theme: Base };
|
||||
|
||||
interface SimpleNavProps {
|
||||
culture?: string;
|
||||
initialCultures?: TPortalCultures;
|
||||
isLanguageComboboxVisible?: boolean;
|
||||
}
|
||||
|
||||
const SimpleNav = ({
|
||||
culture,
|
||||
initialCultures,
|
||||
isLanguageComboboxVisible = true,
|
||||
}: SimpleNavProps) => {
|
||||
const theme = useTheme();
|
||||
@ -87,7 +87,9 @@ const SimpleNav = ({
|
||||
return (
|
||||
<StyledSimpleNav id="login-header">
|
||||
<img className="logo" src={logoUrl} alt="logo-url" />
|
||||
{isLanguageComboboxVisible && <LanguageComboboxWrapper />}
|
||||
{isLanguageComboboxVisible && (
|
||||
<LanguageComboboxWrapper initialCultures={initialCultures} />
|
||||
)}
|
||||
</StyledSimpleNav>
|
||||
);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user