fix: avatar assistants render (#5181)
* fix: avatar assistants render * fix: delete assistant * Update web-app/src/containers/dialogs/AddEditAssistant.tsx Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
This commit is contained in:
parent
a3ebabfd4e
commit
135e75b812
@ -60,7 +60,7 @@ export default class JanAssistantExtension extends AssistantExtension {
|
||||
'assistant.json',
|
||||
])
|
||||
if (await fs.existsSync(assistantPath)) {
|
||||
await fs.unlinkSync(assistantPath)
|
||||
await fs.rm(assistantPath)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -12,7 +12,6 @@ const isCustomImageAvatar = (avatar: React.ReactNode): avatar is string => {
|
||||
*/
|
||||
interface AvatarEmojiProps {
|
||||
avatar?: React.ReactNode
|
||||
fallback?: React.ReactNode
|
||||
imageClassName?: string
|
||||
textClassName?: string
|
||||
}
|
||||
@ -22,6 +21,7 @@ export const AvatarEmoji: React.FC<AvatarEmojiProps> = ({
|
||||
imageClassName = 'w-5 h-5 object-contain',
|
||||
textClassName = 'text-base',
|
||||
}) => {
|
||||
if (!avatar) return null
|
||||
if (isCustomImageAvatar(avatar)) {
|
||||
return <img src={avatar} alt="Custom avatar" className={imageClassName} />
|
||||
}
|
||||
|
||||
@ -87,13 +87,16 @@ const DropdownAssistant = () => {
|
||||
updateCurrentThreadAssistant(assistant)
|
||||
}}
|
||||
>
|
||||
<div className="shrink-0 relative w-4 h-4">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="object-cover"
|
||||
textClassName=""
|
||||
/>
|
||||
</div>
|
||||
{assistant?.avatar && (
|
||||
<div className="shrink-0 relative w-4 h-4">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="object-cover"
|
||||
textClassName=""
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="text-left">
|
||||
<span className="line-clamp-1">{assistant.name}</span>
|
||||
</div>
|
||||
|
||||
@ -275,13 +275,15 @@ export const ThreadContent = memo(
|
||||
<>
|
||||
{item.showAssistant && (
|
||||
<div className="flex items-center gap-2 mb-3 text-main-view-fg/60">
|
||||
<div className="flex items-center gap-2 size-8 rounded-md justify-center border border-main-view-fg/10 bg-main-view-fg/5 p-1">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="w-6 h-6 object-contain"
|
||||
textClassName="text-base"
|
||||
/>
|
||||
</div>
|
||||
{assistant?.avatar && (
|
||||
<div className="flex items-center gap-2 size-8 rounded-md justify-center border border-main-view-fg/10 bg-main-view-fg/5 p-1">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="w-6 h-6 object-contain"
|
||||
textClassName="text-base"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex flex-col">
|
||||
<span className="text-main-view-fg font-medium">
|
||||
|
||||
@ -233,12 +233,15 @@ export default function AddEditAssistant({
|
||||
className="border rounded-sm p-1 w-9 h-9 flex items-center justify-center border-main-view-fg/10 cursor-pointer"
|
||||
onClick={() => setShowEmojiPicker(!showEmojiPicker)}
|
||||
>
|
||||
<AvatarEmoji
|
||||
avatar={avatar}
|
||||
imageClassName="w-5 h-5 object-contain"
|
||||
textClassName=""
|
||||
/>
|
||||
<IconMoodSmile size={18} className="text-main-view-fg/50" />
|
||||
{avatar ? (
|
||||
<AvatarEmoji
|
||||
avatar={avatar}
|
||||
imageClassName="w-5 h-5 object-contain"
|
||||
textClassName=""
|
||||
/>
|
||||
) : (
|
||||
<IconMoodSmile size={18} className="text-main-view-fg/50" />
|
||||
)}
|
||||
</div>
|
||||
<div className="relative" ref={emojiPickerRef}>
|
||||
<EmojiPicker
|
||||
|
||||
@ -69,26 +69,19 @@ function Assistant() {
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<h3 className="text-base font-medium text-main-view-fg/80">
|
||||
<div className="flex items-center gap-1">
|
||||
<span className="shrink-0 w-4 h-4 relative flex items-center justify-center">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="object-cover"
|
||||
textClassName="text-sm"
|
||||
/>
|
||||
</span>
|
||||
{assistant?.avatar && (
|
||||
<span className="shrink-0 w-4 h-4 relative flex items-center justify-center">
|
||||
<AvatarEmoji
|
||||
avatar={assistant?.avatar}
|
||||
imageClassName="object-cover"
|
||||
textClassName="text-sm"
|
||||
/>
|
||||
</span>
|
||||
)}
|
||||
<span className="line-clamp-1">{assistant.name}</span>
|
||||
</div>
|
||||
</h3>
|
||||
<div className="flex items-center gap-0.5">
|
||||
{/* <div
|
||||
className="size-6 cursor-pointer flex items-center justify-center rounded hover:bg-main-view-fg/10 transition-all duration-200 ease-in-out"
|
||||
title="Edit Assistant in JSON"
|
||||
>
|
||||
<IconCodeCircle
|
||||
size={18}
|
||||
className="text-main-view-fg/50"
|
||||
/>
|
||||
</div> */}
|
||||
<div
|
||||
className="size-6 cursor-pointer flex items-center justify-center rounded hover:bg-main-view-fg/10 transition-all duration-200 ease-in-out"
|
||||
title="Edit Assistant"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user