"use client"; import { Box, Flex, Group, Text, Tooltip } from "@mantine/core"; import { IconUsersGroup } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; 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 && ( <> {`minecraft {data.players.online}/{data.players.max} )} ); }