"use client"; import { Box, Flex, Group, Text, Tooltip } from "@mantine/core"; import { IconCube, IconUsersGroup } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; import { formatNumber } from "@homarr/common"; import { useScopedI18n } from "@homarr/translation/client"; import type { WidgetComponentProps } from "../../definition"; export default function MinecraftServerStatusWidget({ options }: WidgetComponentProps<"minecraftServerStatus">) { const [{ data }] = clientApi.widget.minecraft.getServerStatus.useSuspenseQuery(options); const utils = clientApi.useUtils(); clientApi.widget.minecraft.subscribeServerStatus.useSubscription(options, { onData(data) { utils.widget.minecraft.getServerStatus.setData(options, { data, timestamp: new Date(), }); }, }); const tStatus = useScopedI18n("widget.minecraftServerStatus.status"); const title = options.title.trim().length > 0 ? options.title : options.domain; return ( {title} {data.online && ( <> {!options.isBedrockServer && (data.icon ? ( {`minecraft ) : ( ))} {formatNumber(data.players.online, 1)} / {formatNumber(data.players.max, 1)} )} ); }