1
0
mirror of https://github.com/lexogrine/dota2-react-hud.git synced 2026-05-04 04:23:10 +02:00

added team logo avatar replacement

This commit is contained in:
Hubert Walczak
2023-10-19 12:18:02 +02:00
parent 4137401b00
commit 0c25ee1658
5 changed files with 61 additions and 3 deletions
+2 -1
View File
@@ -2,6 +2,7 @@ import React from 'react';
import { Draft, Team, Faction, Player, TeamDraft } from 'dotagsi';
import { apiUrl, getAssetURL } from '../../api/api';
import CameraContainer from '../Camera/Container';
import { Avatar } from '../Players/Avatar';
const ObservedPlayer = ({ players, player, team, show}: { show: boolean, player: Player | null, players: Player[], team: Team | null }) => {
const getPlayerById = (id: number) => {
@@ -32,7 +33,7 @@ const ObservedPlayer = ({ players, player, team, show}: { show: boolean, player:
</div>
<div className="player_picture">
<CameraContainer observedSteamid={player.steamid} />
{player.avatar ? <img src={player.avatar} /> : null}
<Avatar player={player} teamId={team?.id} />
</div>
</div> : null}
+42
View File
@@ -0,0 +1,42 @@
import { useEffect, useState } from "react";
import { configs } from "../../App";
import { apiUrl } from "../../api/api";
import React from "react";
import { Player } from "dotagsi";
export const Avatar = (
{ player, teamId }: { player: Player; teamId?: string | null },
) => {
const [replaceAvatars, setAvatars] = useState<"always" | "never" | "if_missing">("never");
useEffect(() => {
const onData = (data: any) => {
if (!data) return;
const display = data.view;
if (!display) return;
setAvatars(display.replace_avatars || "never");
};
configs.onChange(onData);
onData(configs.data);
return () => {
configs.listeners = configs.listeners.filter((l) => l !== onData);
};
}, []);
const getUrl = () => {
const avatarData = player.avatar;
if(replaceAvatars === 'always' || (replaceAvatars === 'if_missing' && !avatarData)){
return teamId ? `${apiUrl}api/teams/logo/${teamId}` : avatarData || null;
}
return avatarData || null;
}
const url = getUrl();
if(!url) return null
return <img src={url} />
};