import { useState, HTMLAttributes } from "react"; import dayjs from "dayjs"; import Button from "../../../common/component/styled/Button"; import useLicense from "../../../common/hook/useLicense"; import LicensePriceListModal from "./LicensePriceListModal"; import clsx from "clsx"; import { useTranslation } from "react-i18next"; import UpdateLicenseModal from "./UpdateLicenseModal"; // import Tippy from "@tippyjs/react"; interface ItemProps extends HTMLAttributes { label: string, data?: string | number | string[], foldable?: boolean } const Item = ({ label, data, foldable = false, ...rest }: ItemProps) => { const infoClass = clsx("font-bold w-full cursor-pointer", foldable ? "truncate" : "whitespace-pre-wrap break-all"); if (!data) return null; return {label} {Array.isArray(data) ? {data.map((d) => { return {d}; })} : {data} } ; }; export default function License() { const { t, i18n } = useTranslation("setting"); // const { t: ct } = useTranslation(); const { license: licenseInfo, reachLimit, upsertLicense, upserting, upserted } = useLicense(); const [modalVisible, setModalVisible] = useState(false); const [updateVisible, setUpdateVisible] = useState(false); const [base58Fold, setBase58Fold] = useState(true); const toggleModalVisible = () => { setModalVisible((prev) => !prev); }; const toggleUpdateModalVisible = () => { setUpdateVisible((prev) => !prev); }; const handleLicenseValueToggle = () => { setBase58Fold(pre => !pre); }; return ( <> {t("license.renew")} {t("license.update")} {t("license.tip.title")} 🎁 {t("license.tip.user_test")} {t("license.tip.contact")} {i18n.language.startsWith("zh") ? "Privoce" : https://calendly.com/hansu/han-meeting} {modalVisible && ( )} {updateVisible && ( )} > ); }
{t("license.tip.user_test")} {t("license.tip.contact")} {i18n.language.startsWith("zh") ? "Privoce" : https://calendly.com/hansu/han-meeting}