feat: improved agents page filtering and layout adjustments, added russian translations support

This commit is contained in:
kangfenmao 2024-11-19 12:04:01 +08:00
parent 535b7d0a92
commit 9b7e2282fe
2 changed files with 85 additions and 39 deletions

View File

@ -44,16 +44,23 @@ const AgentsPage: FC = () => {
const { t, i18n } = useTranslation() const { t, i18n } = useTranslation()
const filteredAgentGroups = useMemo(() => { const filteredAgentGroups = useMemo(() => {
const groups = { : [] } const groups: Record<string, Agent[]> = {
: [],
精选: agentGroups['精选'] || []
}
if (!search.trim()) { if (!search.trim()) {
Object.entries(agentGroups).forEach(([group, agents]) => { Object.entries(agentGroups).forEach(([group, agents]) => {
groups[group] = agents if (group !== '精选') {
groups[group] = agents
}
}) })
return groups return groups
} }
Object.entries(agentGroups).forEach(([group, agents]) => { Object.entries(agentGroups).forEach(([group, agents]) => {
if (group === '精选') return
const filteredAgents = agents.filter( const filteredAgents = agents.filter(
(agent) => (agent) =>
agent.name.toLowerCase().includes(search.toLowerCase()) || agent.name.toLowerCase().includes(search.toLowerCase()) ||
@ -111,9 +118,7 @@ const AgentsPage: FC = () => {
) )
const tabItems = useMemo(() => { const tabItems = useMemo(() => {
let groups = Object.keys(filteredAgentGroups) const groups = Object.keys(filteredAgentGroups)
groups = groups.includes('精选') ? [groups[0], '精选', ...groups.filter((g) => g !== '精选')] : groups
return groups.map((group, i) => { return groups.map((group, i) => {
const id = String(i + 1) const id = String(i + 1)
@ -250,6 +255,12 @@ const Tabs = styled(TabsAntd)`
font-size: 13px; font-size: 13px;
justify-content: left; justify-content: left;
padding: 7px 12px !important; padding: 7px 12px !important;
.ant-tabs-tab-btn {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100px;
}
&:hover { &:hover {
color: var(--color-text) !important; color: var(--color-text) !important;
background-color: var(--color-background-soft); background-color: var(--color-background-soft);

View File

@ -3,6 +3,7 @@ export type GroupTranslations = {
'en-US': string 'en-US': string
'zh-CN': string 'zh-CN': string
'zh-TW': string 'zh-TW': string
'ru-RU': string
} }
} }
@ -10,171 +11,205 @@ export const groupTranslations: GroupTranslations = {
: { : {
'en-US': 'My Agents', 'en-US': 'My Agents',
'zh-CN': '我的', 'zh-CN': '我的',
'zh-TW': '我的' 'zh-TW': '我的',
'ru-RU': 'Мои агенты'
}, },
: { : {
'en-US': 'Career', 'en-US': 'Career',
'zh-CN': '职业', 'zh-CN': '职业',
'zh-TW': '職業' 'zh-TW': '職業',
'ru-RU': 'Карьера'
}, },
: { : {
'en-US': 'Business', 'en-US': 'Business',
'zh-CN': '商业', 'zh-CN': '商业',
'zh-TW': '商業' 'zh-TW': '商業',
'ru-RU': 'Бизнес'
}, },
: { : {
'en-US': 'Tools', 'en-US': 'Tools',
'zh-CN': '工具', 'zh-CN': '工具',
'zh-TW': '工具' 'zh-TW': '工具',
'ru-RU': 'Инструменты'
}, },
: { : {
'en-US': 'Language', 'en-US': 'Language',
'zh-CN': '语言', 'zh-CN': '语言',
'zh-TW': '語言' 'zh-TW': '語言',
'ru-RU': 'Язык'
}, },
: { : {
'en-US': 'Office', 'en-US': 'Office',
'zh-CN': '办公', 'zh-CN': '办公',
'zh-TW': '辦公' 'zh-TW': '辦公',
'ru-RU': 'Офис'
}, },
: { : {
'en-US': 'General', 'en-US': 'General',
'zh-CN': '通用', 'zh-CN': '通用',
'zh-TW': '通用' 'zh-TW': '通用',
'ru-RU': 'Общее'
}, },
: { : {
'en-US': 'Writing', 'en-US': 'Writing',
'zh-CN': '写作', 'zh-CN': '写作',
'zh-TW': '寫作' 'zh-TW': '寫作',
'ru-RU': 'Письмо'
}, },
: { : {
'en-US': 'Featured', 'en-US': 'Featured',
'zh-CN': '精选', 'zh-CN': '精选',
'zh-TW': '精選' 'zh-TW': '精選',
'ru-RU': 'Избранное'
}, },
: { : {
'en-US': 'Programming', 'en-US': 'Programming',
'zh-CN': '编程', 'zh-CN': '编程',
'zh-TW': '編程' 'zh-TW': '編程',
'ru-RU': 'Программирование'
}, },
: { : {
'en-US': 'Emotion', 'en-US': 'Emotion',
'zh-CN': '情感', 'zh-CN': '情感',
'zh-TW': '情感' 'zh-TW': '情感',
'ru-RU': 'Эмоции'
}, },
: { : {
'en-US': 'Education', 'en-US': 'Education',
'zh-CN': '教育', 'zh-CN': '教育',
'zh-TW': '教育' 'zh-TW': '教育',
'ru-RU': 'Образование'
}, },
: { : {
'en-US': 'Creative', 'en-US': 'Creative',
'zh-CN': '创意', 'zh-CN': '创意',
'zh-TW': '創意' 'zh-TW': '創意',
'ru-RU': 'Креатив'
}, },
: { : {
'en-US': 'Academic', 'en-US': 'Academic',
'zh-CN': '学术', 'zh-CN': '学术',
'zh-TW': '學術' 'zh-TW': '學術',
'ru-RU': 'Академический'
}, },
: { : {
'en-US': 'Design', 'en-US': 'Design',
'zh-CN': '设计', 'zh-CN': '设计',
'zh-TW': '設計' 'zh-TW': '設計',
'ru-RU': 'Дизайн'
}, },
: { : {
'en-US': 'Art', 'en-US': 'Art',
'zh-CN': '艺术', 'zh-CN': '艺术',
'zh-TW': '藝術' 'zh-TW': '藝術',
'ru-RU': 'Искусство'
}, },
: { : {
'en-US': 'Entertainment', 'en-US': 'Entertainment',
'zh-CN': '娱乐', 'zh-CN': '娱乐',
'zh-TW': '娛樂' 'zh-TW': '娛樂',
'ru-RU': 'Развлечения'
}, },
: { : {
'en-US': 'Life', 'en-US': 'Life',
'zh-CN': '生活', 'zh-CN': '生活',
'zh-TW': '生活' 'zh-TW': '生活',
'ru-RU': 'Жизнь'
}, },
: { : {
'en-US': 'Medical', 'en-US': 'Medical',
'zh-CN': '医疗', 'zh-CN': '医疗',
'zh-TW': '醫療' 'zh-TW': '醫療',
'ru-RU': 'Медицина'
}, },
: { : {
'en-US': 'Games', 'en-US': 'Games',
'zh-CN': '游戏', 'zh-CN': '游戏',
'zh-TW': '遊戲' 'zh-TW': '遊戲',
'ru-RU': 'Игры'
}, },
: { : {
'en-US': 'Translation', 'en-US': 'Translation',
'zh-CN': '翻译', 'zh-CN': '翻译',
'zh-TW': '翻譯' 'zh-TW': '翻譯',
'ru-RU': 'Перевод'
}, },
: { : {
'en-US': 'Music', 'en-US': 'Music',
'zh-CN': '音乐', 'zh-CN': '音乐',
'zh-TW': '音樂' 'zh-TW': '音樂',
'ru-RU': 'Музыка'
}, },
: { : {
'en-US': 'Review', 'en-US': 'Review',
'zh-CN': '点评', 'zh-CN': '点评',
'zh-TW': '點評' 'zh-TW': '點評',
'ru-RU': 'Обзор'
}, },
: { : {
'en-US': 'Copywriting', 'en-US': 'Copywriting',
'zh-CN': '文案', 'zh-CN': '文案',
'zh-TW': '文案' 'zh-TW': '文案',
'ru-RU': 'Копирайтинг'
}, },
: { : {
'en-US': 'Encyclopedia', 'en-US': 'Encyclopedia',
'zh-CN': '百科', 'zh-CN': '百科',
'zh-TW': '百科' 'zh-TW': '百科',
'ru-RU': 'Энциклопедия'
}, },
: { : {
'en-US': 'Health', 'en-US': 'Health',
'zh-CN': '健康', 'zh-CN': '健康',
'zh-TW': '健康' 'zh-TW': '健康',
'ru-RU': 'Здоровье'
}, },
: { : {
'en-US': 'Marketing', 'en-US': 'Marketing',
'zh-CN': '营销', 'zh-CN': '营销',
'zh-TW': '營銷' 'zh-TW': '營銷',
'ru-RU': 'Маркетинг'
}, },
: { : {
'en-US': 'Science', 'en-US': 'Science',
'zh-CN': '科学', 'zh-CN': '科学',
'zh-TW': '科學' 'zh-TW': '科學',
'ru-RU': 'Наука'
}, },
: { : {
'en-US': 'Analysis', 'en-US': 'Analysis',
'zh-CN': '分析', 'zh-CN': '分析',
'zh-TW': '分析' 'zh-TW': '分析',
'ru-RU': 'Анализ'
}, },
: { : {
'en-US': 'Legal', 'en-US': 'Legal',
'zh-CN': '法律', 'zh-CN': '法律',
'zh-TW': '法律' 'zh-TW': '法律',
'ru-RU': 'Право'
}, },
: { : {
'en-US': 'Consulting', 'en-US': 'Consulting',
'zh-CN': '咨询', 'zh-CN': '咨询',
'zh-TW': '諮詢' 'zh-TW': '諮詢',
'ru-RU': 'Консалтинг'
}, },
: { : {
'en-US': 'Finance', 'en-US': 'Finance',
'zh-CN': '金融', 'zh-CN': '金融',
'zh-TW': '金融' 'zh-TW': '金融',
'ru-RU': 'Финансы'
}, },
: { : {
'en-US': 'Travel', 'en-US': 'Travel',
'zh-CN': '旅游', 'zh-CN': '旅游',
'zh-TW': '旅遊' 'zh-TW': '旅遊',
'ru-RU': 'Путешествия'
}, },
: { : {
'en-US': 'Management', 'en-US': 'Management',
'zh-CN': '管理', 'zh-CN': '管理',
'zh-TW': '管理' 'zh-TW': '管理',
'ru-RU': 'Управление'
} }
} }