2
0
Files
bot/packages/embeds/js/src/components/avatars/Avatar.tsx

36 lines
1.1 KiB
TypeScript
Raw Normal View History

import { isMobile } from '@/utils/isMobileSignal'
2023-03-10 16:00:57 +01:00
import { createEffect, createSignal, Show } from 'solid-js'
import { isNotEmpty } from '@typebot.io/lib'
import { DefaultAvatar } from './DefaultAvatar'
export const Avatar = (props: { initialAvatarSrc?: string }) => {
2023-03-10 16:00:57 +01:00
const [avatarSrc, setAvatarSrc] = createSignal(props.initialAvatarSrc)
createEffect(() => {
if (
(avatarSrc()?.startsWith('{{') || !avatarSrc()) &&
2023-03-10 16:00:57 +01:00
props.initialAvatarSrc?.startsWith('http')
)
setAvatarSrc(props.initialAvatarSrc)
})
return (
2023-04-03 09:00:39 +02:00
<Show when={isNotEmpty(avatarSrc())} keyed fallback={<DefaultAvatar />}>
<figure
class={
'flex justify-center items-center rounded-full text-white relative animate-fade-in flex-shrink-0 ' +
(isMobile() ? 'w-6 h-6 text-sm' : 'w-10 h-10 text-xl')
}
>
<img
src={avatarSrc()}
alt="Bot avatar"
class="rounded-full object-cover w-full h-full"
elementtiming={'Bot avatar'}
fetchpriority={'high'}
/>
</figure>
</Show>
)
}