Equicord/src/plugins/callTimer/Timer.tsx

38 lines
1.3 KiB
TypeScript

/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { useFixedTimer } from "@utils/react";
import { formatDurationMs } from "@utils/text";
import { Tooltip } from "@webpack/common";
import { settings } from "./index";
import { TimerIcon } from "./TimerIcon";
import { TimerText } from "./timerText";
export function Timer({ time }: Readonly<{ time: number; }>) {
const durationMs = useFixedTimer({ initialTime: time });
const formatted = formatDurationMs(durationMs, settings.store.format === "human", settings.store.showSeconds);
const defaultColorClassName = settings.store.showRoleColor ? "" : "usernameFont__71dd5 username__73ce9";
if (settings.store.showWithoutHover) {
return <TimerText text={formatted} className={defaultColorClassName} />;
} else {
// show as a tooltip
return (
<Tooltip text={formatted}>
{({ onMouseEnter, onMouseLeave }) => (
<div
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
role="tooltip"
>
<TimerIcon />
</div>
)}
</Tooltip>
);
}
}