fix: emoji icon empty

This commit is contained in:
kangfenmao
2025-04-14 10:43:39 +08:00
parent 81538a5446
commit ffc8a33ccf
3 changed files with 36 additions and 20 deletions

View File

@@ -1,7 +1,24 @@
import { getLeadingEmoji } from '@renderer/utils'
import { FC } from 'react'
import styled from 'styled-components'
const EmojiIcon = styled.div<{ $emoji: string }>`
interface EmojiIconProps {
emoji: string
className?: string
}
const EmojiIcon: FC<EmojiIconProps> = ({ emoji, className }) => {
const _emoji = getLeadingEmoji(emoji || '⭐️') || '⭐️'
return (
<Container className={className}>
<EmojiBackground>{_emoji}</EmojiBackground>
{_emoji}
</Container>
)
}
const Container = styled.div`
width: 26px;
height: 26px;
border-radius: 13px;
@@ -13,20 +30,20 @@ const EmojiIcon = styled.div<{ $emoji: string }>`
position: relative;
overflow: hidden;
margin-right: 3px;
&:before {
width: 100%;
height: 100%;
content: ${({ $emoji }) => `'${getLeadingEmoji($emoji || ' ')}'`};
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 200%;
transform: scale(1.5);
filter: blur(5px);
opacity: 0.4;
}
`
const EmojiBackground = styled.div`
width: 100%;
height: 100%;
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 200%;
transform: scale(1.5);
filter: blur(5px);
opacity: 0.4;
`
export default EmojiIcon

View File

@@ -188,7 +188,7 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
className={`agent-item ${agent.id === 'default' ? 'default' : ''} ${index === selectedIndex ? 'keyboard-selected' : ''}`}
onMouseEnter={() => setSelectedIndex(index)}>
<HStack alignItems="center" gap={5} style={{ overflow: 'hidden', maxWidth: '100%' }}>
<EmojiIcon $emoji={agent.emoji || ''}>{agent.emoji}</EmojiIcon>
<EmojiIcon emoji={agent.emoji || ''} />
<span className="text-nowrap">{agent.name}</span>
</HStack>
{agent.id === 'default' && <Tag color="green">{t('agents.tag.system')}</Tag>}

View File

@@ -217,10 +217,9 @@ const AssistantItem: FC<AssistantItemProps> = ({ assistant, isActive, onSwitch,
) : (
assistantIconType === 'emoji' && (
<EmojiIcon
$emoji={assistant.emoji || assistantName.slice(0, 1)}
className={isPending && !isActive ? 'animation-pulse' : ''}>
{assistant.emoji || assistantName.slice(0, 1)}
</EmojiIcon>
emoji={assistant.emoji || assistantName.slice(0, 1)}
className={isPending && !isActive ? 'animation-pulse' : ''}
/>
)
)}
<AssistantName className="text-nowrap">{assistantName}</AssistantName>