export interface BoardData { id: string; name: string; points: number; } export const getTopThree = (boardData: BoardData[]) => { if (!boardData || boardData.length === 0) return []; return boardData .slice() .sort((a, b) => b.points - a.points) .slice(0, 3) .map((player, index) => ({ ...player, rank: index + 1, height: index === 0 ? 250 : index === 1 ? 200 : 170, })); }; export const getLeaderboard = (boardData: BoardData[]) => { return boardData.slice().sort((a, b) => b.points - a.points); }; export const getUserData = (boardData: BoardData[], name: string) => { if (!boardData || !Array.isArray(boardData)) return []; const sortedData = boardData .filter((player) => player?.name && player?.points !== undefined) .sort((a, b) => b.points - a.points); const result = sortedData.find((player) => player.name === name); return result ? [{ ...result, rank: sortedData.indexOf(result) + 1 }] : []; };