https://dev.kronoz.win/r/marzneshin.git
1import { FC } from "react"
2import { useTranslation } from "react-i18next"
3import { cn } from "@marzneshin/utils"
4import { UserType, isUserOnline } from "@marzneshin/modules/users"
5import { Tooltip, TooltipContent, TooltipTrigger } from "@marzneshin/components"
6import { Circle } from "lucide-react"
7
8interface OnlineStatusProps {
9 user: UserType
10}
11
12export const OnlineStatus: FC<OnlineStatusProps> = ({ user }) => {
13 let statusColor
14 let tooltip
15 const status = isUserOnline(user)
16 const { t } = useTranslation()
17 if (user.online_at === null) {
18 statusColor = "text-yellow-500"
19 tooltip = t('not_connected')
20 } else if (status) {
21 statusColor = "text-green-500"
22 tooltip = t('online')
23 } else {
24 statusColor = "text-red-500"
25 tooltip = t('offline')
26 }
27 return (
28 <Tooltip>
29 <TooltipTrigger>
30 <Circle className={cn("w-5 h-5", statusColor)} />
31 </TooltipTrigger>
32 <TooltipContent>
33 {tooltip}
34 </TooltipContent>
35 </Tooltip>
36 )
37}