diff --git a/desktop/public/icons/bilibili.svg b/desktop/public/icons/bilibili.svg new file mode 100644 index 00000000..eaa6187b --- /dev/null +++ b/desktop/public/icons/bilibili.svg @@ -0,0 +1 @@ + diff --git a/desktop/public/icons/douyin.svg b/desktop/public/icons/douyin.svg new file mode 100644 index 00000000..dfadf6a5 --- /dev/null +++ b/desktop/public/icons/douyin.svg @@ -0,0 +1 @@ +Douyin diff --git a/desktop/public/icons/github.svg b/desktop/public/icons/github.svg new file mode 100644 index 00000000..08cd946f --- /dev/null +++ b/desktop/public/icons/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/desktop/public/icons/xiaohongshu.svg b/desktop/public/icons/xiaohongshu.svg new file mode 100644 index 00000000..cca8a96f --- /dev/null +++ b/desktop/public/icons/xiaohongshu.svg @@ -0,0 +1 @@ + diff --git a/desktop/src/i18n/locales/en.ts b/desktop/src/i18n/locales/en.ts index cf5f22d1..b639e840 100644 --- a/desktop/src/i18n/locales/en.ts +++ b/desktop/src/i18n/locales/en.ts @@ -224,6 +224,14 @@ export const en = { 'settings.skills.source.mcp': 'MCP', 'settings.skills.source.bundled': 'Built-in', + // Settings > About + 'settings.tab.about': 'About', + 'settings.about.version': 'Version', + 'settings.about.repo': 'GitHub Repository', + 'settings.about.starHint': 'If this project helps you, consider giving it a Star', + 'settings.about.author': 'Author', + 'settings.about.socialMedia': 'Social Media', + // Settings > General 'settings.general.languageTitle': 'Language', 'settings.general.languageDescription': 'Choose the display language for the application.', diff --git a/desktop/src/i18n/locales/zh.ts b/desktop/src/i18n/locales/zh.ts index 64044d37..e1b0e921 100644 --- a/desktop/src/i18n/locales/zh.ts +++ b/desktop/src/i18n/locales/zh.ts @@ -226,6 +226,14 @@ export const zh: Record = { 'settings.skills.source.mcp': 'MCP', 'settings.skills.source.bundled': '内置', + // Settings > About + 'settings.tab.about': '关于', + 'settings.about.version': '版本', + 'settings.about.repo': 'GitHub 仓库', + 'settings.about.starHint': '如果这个项目对你有帮助,欢迎给个 Star', + 'settings.about.author': '作者', + 'settings.about.socialMedia': '社交媒体', + // Settings > General 'settings.general.languageTitle': '语言', 'settings.general.languageDescription': '选择应用程序的显示语言。', diff --git a/desktop/src/pages/Settings.tsx b/desktop/src/pages/Settings.tsx index 4da18e86..e37a6876 100644 --- a/desktop/src/pages/Settings.tsx +++ b/desktop/src/pages/Settings.tsx @@ -19,7 +19,7 @@ import { useSkillStore } from '../stores/skillStore' import { SkillList } from '../components/skills/SkillList' import { SkillDetail } from '../components/skills/SkillDetail' -type SettingsTab = 'providers' | 'permissions' | 'general' | 'adapters' | 'agents' | 'skills' +type SettingsTab = 'providers' | 'permissions' | 'general' | 'adapters' | 'agents' | 'skills' | 'about' export function Settings() { const [activeTab, setActiveTab] = useState('providers') @@ -29,13 +29,18 @@ export function Settings() {
{/* Tab navigation */} -
- setActiveTab('providers')} /> - setActiveTab('permissions')} /> - setActiveTab('general')} /> - setActiveTab('adapters')} /> - setActiveTab('agents')} /> - setActiveTab('skills')} /> +
+
+ setActiveTab('providers')} /> + setActiveTab('permissions')} /> + setActiveTab('general')} /> + setActiveTab('adapters')} /> + setActiveTab('agents')} /> + setActiveTab('skills')} /> +
+
+ setActiveTab('about')} /> +
{/* Tab content */} @@ -46,6 +51,7 @@ export function Settings() { {activeTab === 'adapters' && } {activeTab === 'agents' && } {activeTab === 'skills' && } + {activeTab === 'about' && }
@@ -1178,3 +1184,94 @@ function SkillSettings() { ) } + +// ─── About Settings ────────────────────────────────────── + +const GITHUB_REPO = 'https://github.com/NanmiCoder/cc-haha' +const AUTHOR_GITHUB = 'https://github.com/NanmiCoder' +const SOCIAL_LINKS = [ + { name: 'Bilibili', icon: '/icons/bilibili.svg', url: 'https://space.bilibili.com/434377496', label: '程序员阿江-Relakkes' }, + { name: 'Douyin', icon: '/icons/douyin.svg', url: 'https://www.douyin.com/user/MS4wLjABAAAATJPY7LAlaa5X-c8uNdWkvz0jUGgpw4eeXIwu_8BhvqE', label: '程序员阿江-Relakkes' }, + { name: 'Xiaohongshu', icon: '/icons/xiaohongshu.svg', url: 'https://www.xiaohongshu.com/user/profile/5f58bd990000000001003753', label: '程序员阿江-Relakkes' }, +] as const + +function AboutSettings() { + const t = useTranslation() + const [version, setVersion] = useState('') + + useEffect(() => { + import('@tauri-apps/api/app').then((mod) => mod.getVersion()).then(setVersion).catch(() => setVersion('0.1.0')) + }, []) + + const openUrl = (url: string) => { + import('@tauri-apps/plugin-shell').then((mod) => mod.open(url)).catch(() => window.open(url, '_blank')) + } + + return ( +
+ {/* Logo + App Name + Version */} + Claude Code Haha +

Claude Code Haha

+ {version && ( + {t('settings.about.version')} {version} + )} + + {/* GitHub Repo */} +
+ +
+ + {/* Divider */} +
+ + {/* Author */} +
+

{t('settings.about.author')}

+ +
+ + {/* Social Media */} +
+

{t('settings.about.socialMedia')}

+
+ {SOCIAL_LINKS.map((link) => ( + + ))} + +
+
+
+ ) +}