|
@@ -1,7 +1,7 @@
|
|
|
import { useEffect, useState } from "react";
|
|
|
-import { dispatch, useGameId } from "../../../domain/gameStore";
|
|
|
+import { dispatch, useGameId, usePlayerName } from "../../../domain/gameStore";
|
|
|
import { usePlayers } from "../../../hooks/useGameInfo";
|
|
|
-import styles from "./GamePanel.module.css";
|
|
|
+import styles from "./KillFeed.module.css";
|
|
|
|
|
|
// okay, in an ideal world this would be part of the game store or something
|
|
|
// and it would get properly managed by reactive state
|
|
@@ -10,6 +10,7 @@ import styles from "./GamePanel.module.css";
|
|
|
const shownItems = new Set();
|
|
|
|
|
|
const KillFeed = () => {
|
|
|
+ const playerName = usePlayerName();
|
|
|
const gameId = useGameId();
|
|
|
const players = usePlayers();
|
|
|
useEffect(() => {
|
|
@@ -22,6 +23,7 @@ const KillFeed = () => {
|
|
|
useEffect(() => {
|
|
|
const toDisplay =
|
|
|
players
|
|
|
+ ?.filter(({ name }) => name !== playerName)
|
|
|
?.flatMap(({ name, guesses }) =>
|
|
|
Object.entries(guesses).map(([round, { score }]) => ({
|
|
|
name,
|
|
@@ -46,12 +48,12 @@ const KillFeed = () => {
|
|
|
return () => {
|
|
|
timeouts.forEach(t => clearTimeout(t));
|
|
|
};
|
|
|
- }, [shownItemsState, gameId, players]);
|
|
|
+ }, [shownItemsState, gameId, players, playerName]);
|
|
|
return (
|
|
|
- <div className={styles.killFeed}>
|
|
|
+ <div className={styles.feed}>
|
|
|
{display.map(({ name, round, score }) => (
|
|
|
- <span key={`${name}-${round}`} className={styles.killFeedItem}>
|
|
|
- <span className={styles.killFeedName}>{name}</span>{" "}
|
|
|
+ <span key={`${name}-${round}`} className={styles.item}>
|
|
|
+ <span className={styles.name}>{name}</span>{" "}
|
|
|
{score >= 4950 ? "🎯" : "🖱️"} 🗺️ {round}
|
|
|
</span>
|
|
|
))}
|