import * as React from "react";
import {useState} from "react";
import {ClientAvatar, kDefaultAvatarImage, kLoadingAvatarImage} from "tc-shared/file/Avatars";
import {useTr} from "tc-shared/ui/react-elements/Helper";
import {showImagePreview} from "tc-shared/ui/frames/ImagePreview";
const ImageStyle = { height: "100%", width: "100%", cursor: "pointer" };
const AvatarLoadingImage = React.memo((props: { alt?: string }) => (
));
const AvatarDefaultImage = React.memo((props: { className?: string, alt?: string }) => (
{
if(event.isDefaultPrevented()) {
return;
}
event.preventDefault();
showImagePreview(kDefaultAvatarImage, kDefaultAvatarImage);
}}
/>
));
const ClientAvatarRenderer = React.memo((props: { avatar: ClientAvatar, className?: string, alt?: string }) => {
const [ , setRevision ] = useState(0);
let image;
switch (props.avatar.getState()) {
case "unset":
image = (
{
if(event.isDefaultPrevented()) {
return;
}
event.preventDefault();
showImagePreview(imageUrl, undefined);
}}
draggable={false}
/>
);
break;
case "errored":
image = (
);
break;
case undefined:
break;
}
props.avatar.events.reactUse("avatar_state_changed", () => {
setRevision(performance.now());
}, undefined, []);
return image;
});
export const AvatarRenderer = React.memo((props: { avatar: ClientAvatar | "loading" | "default", className?: string, alt?: string }) => {
let body;
if(props.avatar === "loading") {
body = (