import { memo } from "react"; import { useTranslation } from "react-i18next"; import { Avatar, Select, type SelectProps, Space, Tag, Typography } from "antd"; import { ACCESS_USAGES, accessProvidersMap } from "@/domain/provider"; export type AccessProviderSelectProps = Omit< SelectProps, "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" >; const AccessProviderSelect = (props: AccessProviderSelectProps) => { const { t } = useTranslation(); const options = Array.from(accessProvidersMap.values()).map((item) => ({ key: item.type, value: item.type, label: t(item.name), })); const renderOption = (key: string) => { const provider = accessProvidersMap.get(key); return (
{t(provider?.name ?? "")}
{provider?.usage === ACCESS_USAGES.APPLY && ( <> {t("access.props.provider.usage.dns")} )} {provider?.usage === ACCESS_USAGES.DEPLOY && ( <> {t("access.props.provider.usage.host")} )} {provider?.usage === ACCESS_USAGES.ALL && ( <> {t("access.props.provider.usage.dns")} {t("access.props.provider.usage.host")} )}
); }; return (