certimate/ui/src/components/Version.tsx
2025-02-19 23:57:22 +08:00

40 lines
1.2 KiB
TypeScript

import { memo } from "react";
import { useTranslation } from "react-i18next";
import { ReadOutlined as ReadOutlinedIcon } from "@ant-design/icons";
import { Badge, Divider, Space, Typography } from "antd";
import { version } from "@/domain/version";
import { useVersionChecker } from "@/hooks";
export type VersionProps = {
className?: string;
style?: React.CSSProperties;
};
const Version = ({ className, style }: VersionProps) => {
const { t } = useTranslation();
const { data: hasNewVersions } = useVersionChecker();
return (
<Space className={className} style={style} size={4}>
<Typography.Link type="secondary" href="https://docs.certimate.me" target="_blank">
<div className="flex items-center justify-center space-x-1">
<ReadOutlinedIcon />
<span>{t("common.menu.document")}</span>
</div>
</Typography.Link>
<Divider type="vertical" />
<Badge styles={{ indicator: { transform: "scale(0.75) translate(50%, -50%)" } }} count={hasNewVersions ? "NEW" : 0}>
<Typography.Link type="secondary" href="https://github.com/usual2970/certimate/releases" target="_blank">
{version}
</Typography.Link>
</Badge>
</Space>
);
};
export default memo(Version);