import { find } from "lodash"; import * as React from "react"; import { Trans, useTranslation } from "react-i18next"; import styled from "styled-components"; import { languages, languageOptions } from "@shared/i18n"; import ButtonLink from "~/components/ButtonLink"; import Flex from "~/components/Flex"; import NoticeTip from "~/components/NoticeTip"; import useCurrentUser from "~/hooks/useCurrentUser"; import useStores from "~/hooks/useStores"; import { detectLanguage } from "~/utils/language"; function Icon(props: any) { return ( ); } export default function LanguagePrompt() { const { auth, ui } = useStores(); const { t } = useTranslation(); const user = useCurrentUser(); const language = detectLanguage(); if (language === "en_US" || language === user.language) { return null; } if (!languages.includes(language)) { return null; } const option = find(languageOptions, (o) => o.value === language); const optionLabel = option ? option.label : ""; return ( Outline is available in your language{" "} {{ optionLabel, }} , would you like to change?
{ auth.updateUser({ language, }); ui.setLanguagePromptDismissed(); }} > {t("Change Language")} {" "} ·{" "} {t("Dismiss")}
); } const Link = styled(ButtonLink)` color: ${(props) => props.theme.almostBlack}; font-weight: 500; &:hover { text-decoration: underline; } `; const LanguageIcon = styled(Icon)` margin-right: 12px; `;