diff --git a/apps/www/src/lib/hooks/use-motd.tsx b/apps/www/src/lib/hooks/use-motd.tsx new file mode 100644 index 0000000..60cc66c --- /dev/null +++ b/apps/www/src/lib/hooks/use-motd.tsx @@ -0,0 +1,28 @@ +import { useEffect, useState } from "react"; +import type { OnlineServer } from "../types/mh-server"; +import MiniMessage from "minimessage-js"; + +export function useMOTD(servers: OnlineServer[]) { + const [motdList, setMotdList] = useState<{ name: string; motd: string }[]>( + [] + ); + + useEffect(() => { + setMotdList( + servers.map((server) => { + return { + name: server.name, + motd: MiniMessage.miniMessage().toHTML( + MiniMessage.miniMessage().deserialize(server.motd) + ), + }; + }) + ); + }, [servers]); + + return { + motdList, + getMotdForServer: (server: OnlineServer) => + motdList.find((c) => c.name === server.name)?.motd, + }; +}