import { useEffect, useState } from 'react'; import { ipcChannels } from '../../../shared/ipc/contracts'; import type { AppPlayer, AppPlayerTeam } from '../../../shared/types'; import { getDndApi } from '../dndApi'; export function useAppPlayers(): { players: AppPlayer[]; teams: AppPlayerTeam[] } { const api = getDndApi(); const [players, setPlayers] = useState([]); const [teams, setTeams] = useState([]); useEffect(() => { void api.invoke(ipcChannels.players.list, {}).then((res) => { setPlayers(res.players); setTeams(res.teams); }); return api.on(ipcChannels.players.stateChanged, ({ players: nextPlayers, teams: nextTeams }) => { setPlayers(nextPlayers); setTeams(nextTeams); }); }, [api]); return { players, teams }; }