diff --git a/src/components/ChangelogModal.tsx b/src/components/ChangelogModal.tsx index bffdb86..b312f90 100644 --- a/src/components/ChangelogModal.tsx +++ b/src/components/ChangelogModal.tsx @@ -46,7 +46,19 @@ function formatDate(date: string) { return `${year}年${month}月${day}日` } +// 按日期分组 +function groupByDate(entries: typeof changelogEntries) { + const groups = new Map() + entries.forEach((entry) => { + const existing = groups.get(entry.date) || [] + groups.set(entry.date, [...existing, entry]) + }) + return Array.from(groups.entries()).sort((a, b) => b[0].localeCompare(a[0])) +} + export function ChangelogModal({ isOpen, onClose }: ChangelogModalProps) { + const groupedEntries = groupByDate(changelogEntries) + return ( {isOpen && ( @@ -97,31 +109,30 @@ export function ChangelogModal({ isOpen, onClose }: ChangelogModalProps) { variants={containerVariants} initial="hidden" animate="visible" - className="relative max-w-4xl mx-auto" + className="max-w-4xl mx-auto space-y-8" > - {/* 时间轴竖线 */} -
+ {/* 按日期分组显示 */} + {groupedEntries.map(([date, entries]) => ( +
+ {/* 日期标题 */} +
+ +

+ {formatDate(date)} +

+
+
- {/* 更新记录列表 */} -
- {changelogEntries.map((entry, index) => { - const meta = typeMeta[entry.type] - return ( - - {/* 时间轴节点 */} -
-
-
-
-
- - {/* 更新卡片 */} -
-
+ {/* 该日期下的更新列表 */} +
+ {entries.map((entry, index) => { + const meta = typeMeta[entry.type] + return ( + {/* 标签行 */}
{/* 类型标签 */} @@ -136,24 +147,18 @@ export function ChangelogModal({ isOpen, onClose }: ChangelogModalProps) { {entry.scope} )} - - {/* 日期(桌面端靠右,移动端换行) */} - - - {formatDate(entry.date)} -
{/* 标题 */} -

+

{entry.title} -

-
-
- - ) - })} -
+ + + ) + })} +
+
+ ))} ) : (
diff --git a/src/data/changelog.json b/src/data/changelog.json index f16b553..3dae3e8 100644 --- a/src/data/changelog.json +++ b/src/data/changelog.json @@ -1,5 +1,12 @@ { "changelogEntries": [ + { + "id": "2026-03-08-changelog-group-by-date", + "date": "2026-03-08", + "type": "feat", + "title": "优化更新日志显示,按日期分组并突出日期标题", + "scope": "整合" + }, { "id": "2026-03-08-fix-modal-zindex-again", "date": "2026-03-08",