feat: 优化首页帖子列表并新增右侧栏最新注册组件
首页列表精简 meta 与统计展示,板块色标前移并淡化;有回复时显示最后回复人。右侧栏新增最新注册(4 列头像网格),友链改为标签块并排换行。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import type { AsideWidget, AsideWidgetId, ForumLimits, ForumLimitsPublic } from '../api/types';
|
||||
import { DEFAULT_ASIDE_WIDGETS } from '../api/types';
|
||||
|
||||
const ASIDE_WIDGET_IDS: AsideWidgetId[] = ['tag_cloud', 'recent_comments', 'friend_links'];
|
||||
const ASIDE_WIDGET_IDS: AsideWidgetId[] = ['tag_cloud', 'recent_comments', 'recent_users', 'friend_links'];
|
||||
|
||||
/** 从 limits 解析右侧栏组件列表(兼容仅有布尔开关的旧数据) */
|
||||
export function resolveAsideWidgets(
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import type { Board, ForumStats, RecentComment, TagCount } from '../api/types';
|
||||
import type { Board, ForumStats, RecentComment, RecentUser, TagCount } from '../api/types';
|
||||
|
||||
const BOARDS_KEY = 'j13-cache-boards';
|
||||
const STATS_KEY = 'j13-cache-stats';
|
||||
const RECENT_COMMENTS_KEY = 'j13-cache-recent-comments';
|
||||
const RECENT_USERS_KEY = 'j13-cache-recent-users';
|
||||
const TAGS_KEY = 'j13-cache-tags';
|
||||
|
||||
function readJson<T>(key: string): T | null {
|
||||
@@ -38,6 +39,12 @@ export function getCachedRecentComments(): RecentComment[] {
|
||||
return Array.isArray(list) ? list : [];
|
||||
}
|
||||
|
||||
/** 读取缓存的最新注册用户 */
|
||||
export function getCachedRecentUsers(): RecentUser[] {
|
||||
const list = readJson<RecentUser[]>(RECENT_USERS_KEY);
|
||||
return Array.isArray(list) ? list : [];
|
||||
}
|
||||
|
||||
/** 读取缓存的标签云 */
|
||||
export function getCachedTags(): TagCount[] {
|
||||
const list = readJson<TagCount[]>(TAGS_KEY);
|
||||
@@ -47,7 +54,9 @@ export function getCachedTags(): TagCount[] {
|
||||
/** 右栏是否已有可展示的 session 缓存(含空列表) */
|
||||
export function hasCachedAside(): boolean {
|
||||
try {
|
||||
return sessionStorage.getItem(RECENT_COMMENTS_KEY) != null;
|
||||
return sessionStorage.getItem(RECENT_COMMENTS_KEY) != null
|
||||
|| sessionStorage.getItem(RECENT_USERS_KEY) != null
|
||||
|| sessionStorage.getItem(TAGS_KEY) != null;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
@@ -65,6 +74,10 @@ export function setCachedRecentComments(list: RecentComment[]) {
|
||||
writeJson(RECENT_COMMENTS_KEY, list);
|
||||
}
|
||||
|
||||
export function setCachedRecentUsers(list: RecentUser[]) {
|
||||
writeJson(RECENT_USERS_KEY, list);
|
||||
}
|
||||
|
||||
export function setCachedTags(tags: TagCount[]) {
|
||||
writeJson(TAGS_KEY, tags);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user