fix: emoji icon empty
This commit is contained in:
parent
81538a5446
commit
ffc8a33ccf
@ -1,7 +1,24 @@
|
|||||||
import { getLeadingEmoji } from '@renderer/utils'
|
import { getLeadingEmoji } from '@renderer/utils'
|
||||||
|
import { FC } from 'react'
|
||||||
import styled from 'styled-components'
|
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;
|
width: 26px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
border-radius: 13px;
|
border-radius: 13px;
|
||||||
@ -13,20 +30,20 @@ const EmojiIcon = styled.div<{ $emoji: string }>`
|
|||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-right: 3px;
|
margin-right: 3px;
|
||||||
&:before {
|
`
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
const EmojiBackground = styled.div`
|
||||||
content: ${({ $emoji }) => `'${getLeadingEmoji($emoji || ' ')}'`};
|
width: 100%;
|
||||||
position: absolute;
|
height: 100%;
|
||||||
inset: 0;
|
position: absolute;
|
||||||
display: flex;
|
inset: 0;
|
||||||
align-items: center;
|
display: flex;
|
||||||
justify-content: center;
|
align-items: center;
|
||||||
font-size: 200%;
|
justify-content: center;
|
||||||
transform: scale(1.5);
|
font-size: 200%;
|
||||||
filter: blur(5px);
|
transform: scale(1.5);
|
||||||
opacity: 0.4;
|
filter: blur(5px);
|
||||||
}
|
opacity: 0.4;
|
||||||
`
|
`
|
||||||
|
|
||||||
export default EmojiIcon
|
export default EmojiIcon
|
||||||
|
|||||||
@ -188,7 +188,7 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
|
|||||||
className={`agent-item ${agent.id === 'default' ? 'default' : ''} ${index === selectedIndex ? 'keyboard-selected' : ''}`}
|
className={`agent-item ${agent.id === 'default' ? 'default' : ''} ${index === selectedIndex ? 'keyboard-selected' : ''}`}
|
||||||
onMouseEnter={() => setSelectedIndex(index)}>
|
onMouseEnter={() => setSelectedIndex(index)}>
|
||||||
<HStack alignItems="center" gap={5} style={{ overflow: 'hidden', maxWidth: '100%' }}>
|
<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>
|
<span className="text-nowrap">{agent.name}</span>
|
||||||
</HStack>
|
</HStack>
|
||||||
{agent.id === 'default' && <Tag color="green">{t('agents.tag.system')}</Tag>}
|
{agent.id === 'default' && <Tag color="green">{t('agents.tag.system')}</Tag>}
|
||||||
|
|||||||
@ -217,10 +217,9 @@ const AssistantItem: FC<AssistantItemProps> = ({ assistant, isActive, onSwitch,
|
|||||||
) : (
|
) : (
|
||||||
assistantIconType === 'emoji' && (
|
assistantIconType === 'emoji' && (
|
||||||
<EmojiIcon
|
<EmojiIcon
|
||||||
$emoji={assistant.emoji || assistantName.slice(0, 1)}
|
emoji={assistant.emoji || assistantName.slice(0, 1)}
|
||||||
className={isPending && !isActive ? 'animation-pulse' : ''}>
|
className={isPending && !isActive ? 'animation-pulse' : ''}
|
||||||
{assistant.emoji || assistantName.slice(0, 1)}
|
/>
|
||||||
</EmojiIcon>
|
|
||||||
)
|
)
|
||||||
)}
|
)}
|
||||||
<AssistantName className="text-nowrap">{assistantName}</AssistantName>
|
<AssistantName className="text-nowrap">{assistantName}</AssistantName>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user