https://dev.kronoz.win/r/marzneshin.git
| 1 |
bf7c131 |
Mardin |
2y ago |
import {FC} from 'react'; |
| 2 |
a47eb4c |
Dawsh |
2y ago |
|
| 3 |
a47eb4c |
Dawsh |
2y ago |
type UserStatusProps = { |
| 4 |
a47eb4c |
Dawsh |
2y ago |
lastOnline?: string | null; |
| 5 |
a47eb4c |
Dawsh |
2y ago |
}; |
| 6 |
a47eb4c |
Dawsh |
2y ago |
|
| 7 |
a47eb4c |
Dawsh |
2y ago |
const convertDateFormat = (lastOnline: string | null | undefined): number | null => { |
| 8 |
bf7c131 |
Mardin |
2y ago |
if (!lastOnline) { |
| 9 |
bf7c131 |
Mardin |
2y ago |
return null; |
| 10 |
bf7c131 |
Mardin |
2y ago |
} |
| 11 |
a47eb4c |
Dawsh |
2y ago |
|
| 12 |
bf7c131 |
Mardin |
2y ago |
const date = new Date(lastOnline + 'Z'); |
| 13 |
bf7c131 |
Mardin |
2y ago |
return Math.floor(date.getTime() / 1000); |
| 14 |
a47eb4c |
Dawsh |
2y ago |
}; |
| 15 |
a47eb4c |
Dawsh |
2y ago |
|
| 16 |
a47eb4c |
Dawsh |
2y ago |
export const OnlineBadge: FC<UserStatusProps> = ({lastOnline}) => { |
| 17 |
bf7c131 |
Mardin |
2y ago |
const currentTimeInSeconds = Math.floor(Date.now() / 1000); |
| 18 |
bf7c131 |
Mardin |
2y ago |
const unixTime = convertDateFormat(lastOnline); |
| 19 |
a47eb4c |
Dawsh |
2y ago |
|
| 20 |
bf7c131 |
Mardin |
2y ago |
if (typeof lastOnline === 'undefined' || lastOnline === null) { |
| 21 |
bf7c131 |
Mardin |
2y ago |
return <div className="circle pulse orange"></div>; |
| 22 |
bf7c131 |
Mardin |
2y ago |
} |
| 23 |
a47eb4c |
Dawsh |
2y ago |
|
| 24 |
bf7c131 |
Mardin |
2y ago |
const timeDifferenceInSeconds = unixTime ? currentTimeInSeconds - unixTime : Infinity; |
| 25 |
a47eb4c |
Dawsh |
2y ago |
|
| 26 |
bf7c131 |
Mardin |
2y ago |
if (timeDifferenceInSeconds > 0 && timeDifferenceInSeconds <= 60) { |
| 27 |
bf7c131 |
Mardin |
2y ago |
return <div className="circle pulse green"></div>; |
| 28 |
bf7c131 |
Mardin |
2y ago |
} |
| 29 |
a47eb4c |
Dawsh |
2y ago |
|
| 30 |
bf7c131 |
Mardin |
2y ago |
return <div className="circle pulse red"></div>; |
| 31 |
a47eb4c |
Dawsh |
2y ago |
}; |