import { useState } from 'react'
import {
FileText, Folder, Slash, MousePointer, Save,
Search, Moon, Plus, Hash, Star, Image, Code2,
BookOpen, Maximize2, Zap, Wand2, Bot,
} from 'lucide-react'
import { useAppStore } from '../../stores/appStore'
const FEATURES = [
{
icon: ,
title: '富文本编辑',
desc: '标题、列表、引用、代码块、表格、任务清单,应有尽有',
},
{
icon: ,
title: '语法高亮',
desc: '代码块自动识别语言并高亮,支持 JS、TS、Python、Go 等数十种语言',
},
{
icon: ,
title: '图片插入',
desc: '斜杠命令输入 URL,或直接拖拽 / 粘贴截图到编辑器',
},
{
icon: ,
title: '斜杠命令',
desc: '输入 / 唤出命令菜单,用键盘快速插入任意内容块',
},
{
icon: ,
title: '浮动工具栏',
desc: '选中文字后浮现格式工具栏,点击即可加粗、高亮、转标题',
},
{
icon: ,
title: '自动保存',
desc: '停止输入 1 秒后自动写入本地 IndexedDB,无需手动保存',
},
{
icon: ,
title: '字数 & 阅读时长',
desc: '底部实时显示字数,并估算当前笔记的阅读时长',
},
{
icon: ,
title: '专注模式',
desc: '点击标题栏图标收起侧边栏,全屏沉浸写作,按 Esc 退出',
},
{
icon: ,
title: '文件夹管理',
desc: '创建多级文件夹,右键可重命名或删除,笔记可分类归档',
},
{
icon: ,
title: '收藏',
desc: '点击标题旁星标或笔记列表 hover 按钮,快速收藏重要笔记',
},
{
icon: ,
title: '全文搜索',
desc: '侧边栏搜索框实时过滤笔记标题和标签',
},
{
icon: ,
title: '标签系统',
desc: '为笔记添加多个标签,跨文件夹快速定位相关内容',
},
{
icon: ,
title: '深色模式',
desc: '点击左上角图标一键切换亮色 / 暗色主题',
},
{
icon: ,
title: 'AI 续写',
desc: '点击标题旁 ⚡ 按钮,AI 基于当前上下文流式续写下一段',
},
{
icon: ,
title: 'AI 润色',
desc: '选中文字 → 浮动工具栏 → 润色,流式预览后一键替换原文',
},
{
icon: ,
title: 'AI 摘要',
desc: '选中段落生成片段摘要,或在 AI 面板一键生成全文摘要',
},
{
icon: ,
title: 'AI 问答',
desc: '点击 ✨ 打开 AI 助手面板,针对当前笔记内容自由提问',
},
]
const SHORTCUTS: { mac: string[]; win: string[]; desc: string }[] = [
{ mac: ['⌘', 'B'], win: ['Ctrl', 'B'], desc: '粗体' },
{ mac: ['⌘', 'I'], win: ['Ctrl', 'I'], desc: '斜体' },
{ mac: ['⌘', 'U'], win: ['Ctrl', 'U'], desc: '下划线' },
{ mac: ['⌘', 'E'], win: ['Ctrl', 'E'], desc: '行内代码' },
{ mac: ['⌘', 'Z'], win: ['Ctrl', 'Z'], desc: '撤销' },
{ mac: ['⌘', '⇧', 'Z'], win: ['Ctrl', 'Y'], desc: '重做' },
{ mac: ['/'], win: ['/'], desc: '命令菜单' },
{ mac: ['Esc'], win: ['Esc'], desc: '退出专注模式' },
{ mac: ['⌘', 'N'], win: ['Ctrl', 'N'], desc: '新建笔记' },
{ mac: ['⌘', '\\'], win: ['Ctrl', '\\'], desc: '切换专注模式' },
{ mac: ['⌘', '⇧', 'J'], win: ['Ctrl', '⇧', 'J'], desc: '打开 AI 助手' },
]
function detectOS(): 'mac' | 'win' {
return /mac/i.test(navigator.platform) ? 'mac' : 'win'
}
export function WelcomeView() {
const { createNote } = useAppStore()
const [os, setOs] = useState<'mac' | 'win'>(detectOS)
return (
{/* Hero */}
✏️
欢迎使用笔记
一款基于 Vite + React + TipTap 构建的现代笔记应用。
点击左侧笔记开始阅读,或新建一篇属于你的笔记。
{/* Divider */}
{/* Features */}
功能一览
{FEATURES.map(f => (
{f.icon}
{f.title}
{f.desc}
))}
{/* Shortcuts */}
常用快捷键
{(['mac', 'win'] as const).map(opt => (
))}
{SHORTCUTS.map((s, i) => (
0 ? '1px solid var(--border)' : 'none',
background: 'var(--bg-subtle)',
}}
>
{s.desc}
{s[os].map(k => (
{k}
))}
))}
)
}