mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-12 16:00:27 +00:00
* feat: 统一并标准化eslint * lint: napcat.webui * lint: napcat.webui * lint: napcat.core * build: fix * lint: napcat.webui * refactor: 重构eslint * Update README.md
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { useEffect, useState } from 'react';
|
|
|
|
import { getReleaseTime } from '@/utils/time';
|
|
|
|
import type { GithubRelease as GithubReleaseType } from '@/types/github';
|
|
|
|
export interface GithubReleaseProps {
|
|
releaseData: GithubReleaseType
|
|
}
|
|
const GithubRelease: React.FC<GithubReleaseProps> = (props) => {
|
|
const { releaseData } = props;
|
|
const [releaseTime, setReleaseTime] = useState<string | null>(null);
|
|
|
|
useEffect(() => {
|
|
if (releaseData) {
|
|
const timer = setInterval(() => {
|
|
const time = getReleaseTime(releaseData.published_at);
|
|
|
|
setReleaseTime(time);
|
|
}, 1000);
|
|
|
|
return () => clearInterval(timer);
|
|
}
|
|
}, [releaseData]);
|
|
|
|
return (
|
|
<div className='flex flex-col gap-1'>
|
|
<span>Releases</span>
|
|
<div className='px-2 py-1 rounded-small bg-default-100 bg-opacity-50 backdrop-blur-sm group-data-[hover=true]:bg-default-200'>
|
|
<span className='text-tiny text-default-600'>{releaseData.name}</span>
|
|
<div className='flex gap-2 text-tiny'>
|
|
<span className='text-default-500'>{releaseTime}</span>
|
|
<span className='text-success'>Latest</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default GithubRelease;
|