Skip to content

Commit 0e8966e

Browse files
committed
Revert "fix(ui): Fix PlayerHead component on account switch"
This reverts commit bda3b8b.
1 parent 471f5e8 commit 0e8966e

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

apps/frontend/src/ui/components/game/PlayerHead.tsx

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,44 @@
11
import type { JSX } from 'solid-js';
2-
import { createEffect, createSignal, splitProps } from 'solid-js';
2+
import { createEffect, createSignal, on, Show, splitProps } from 'solid-js';
33
import steveSrc from '../../../assets/images/steve.png';
44

55
type PlayerHeadProps = JSX.IntrinsicElements['img'] & {
66
uuid: string | null | undefined;
77
onError?: () => void;
88
};
99

10-
function crafatar(uuid: string) {
10+
function headSrc(uuid: string) {
1111
return `https://crafatar.com/avatars/${uuid}?size=48`;
1212
}
1313

1414
function PlayerHead(props: PlayerHeadProps) {
1515
const [split, rest] = splitProps(props, ['uuid', 'class']);
16-
const [src, setSrc] = createSignal(steveSrc);
16+
const [isLoaded, setLoaded] = createSignal(false);
1717

18-
createEffect(() => {
19-
if (split.uuid)
20-
setSrc(crafatar(split.uuid));
21-
});
22-
23-
const onError = () => {
24-
setSrc(steveSrc);
25-
props.onError && props.onError();
26-
};
18+
createEffect(on(() => props.uuid, () => setLoaded(false)));
2719

2820
return (
29-
<img
30-
class={`image-render-pixel ${split.class}`}
31-
onError={onError}
32-
src={src()}
33-
{...rest}
34-
/>
21+
<>
22+
<Show
23+
children={(
24+
<img
25+
class={`image-render-pixel ${isLoaded() ? '' : 'hidden'} ${split.class}`}
26+
onError={() => props.onError && props.onError()}
27+
onLoad={() => setLoaded(true)}
28+
src={headSrc(split.uuid!)}
29+
{...rest}
30+
/>
31+
)}
32+
fallback={(
33+
<img
34+
class={`image-render-pixel ${split.class}`}
35+
src={steveSrc}
36+
{...rest}
37+
/>
38+
)}
39+
when={props.uuid !== null && props.uuid !== undefined}
40+
/>
41+
</>
3542
);
3643
}
3744

0 commit comments

Comments
 (0)