/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import React, { ReactNode, useState } from "react"; import "./Settings.css"; import { Link, useLocation } from "react-router-dom"; import Breadcrumbs from "../components/Breadcrumbs"; import { useSettings, useFavicon, useFileLoaded } from "../hooks"; import { useTranslation } from "react-i18next"; import { Helmet } from "react-helmet"; import defaultFavicon from "../favicon.svg"; import AlertContainer from "../containers/AlertContainer"; interface LayoutProps { children?: ReactNode; } function SettingsLayout(props: LayoutProps) { const { pathname } = useLocation(); const { settings, loadingSettings } = useSettings(true); const { favicon, loadingFile } = useFavicon(settings.customFaviconS3Key); const [toHide, setToHide] = useState(true); const { t } = useTranslation(); let currentSetting = "topicarea"; const validSettings: any = { topicarea: t("TopicAreas"), publishingguidance: t("PublishingGuidance"), publishedsite: t("SettingsPublishedSite"), dateformat: t("SettingsDateTimeFormat"), brandingandstyling: t("BrandingAndStyling"), adminsite: t("AdminSite"), }; const queryString = pathname.split("/"); if (queryString.length > 3 && Object.keys(validSettings).includes(queryString[3])) { currentSetting = queryString[3]; } useFileLoaded(setToHide, loadingFile, loadingSettings, settings, "favicon"); return ( <> {loadingFile || loadingSettings || toHide ? ( ) : ( )} {loadingSettings ? ( "" ) : (
{props.children}
)} ); } export default SettingsLayout;