feat: 帖子收藏与用户关注
- 新增收藏功能:favorite 服务与 handler、FavoriteButton 组件 - 新增关注功能:follow 服务与 handler、FollowButton 组件 - 用户主页适配关注/粉丝与收藏展示 - flash 消息工具、广告与侧边栏组件微调
This commit is contained in:
@@ -6,3 +6,22 @@ export const AD_TEXT_COL_WIDTH = 121;
|
||||
/** 购买页建议文案 */
|
||||
export const AD_IMAGE_SIZE_LABEL = `${AD_IMAGE_WIDTH}×${AD_IMAGE_HEIGHT}`;
|
||||
export const AD_IMAGE_SIZE_LABEL_2X = `${AD_IMAGE_WIDTH * 2}×${AD_IMAGE_HEIGHT * 2}`;
|
||||
|
||||
/** 广告悬停提示第二行:统一免责声明 */
|
||||
export const AD_TIP_DISCLAIMER = "斟酌选择,本站不做担保。";
|
||||
/** 广告悬停提示延迟弹出时长(毫秒):停留一会再显示 */
|
||||
export const AD_TIP_DELAY_MS = 600;
|
||||
|
||||
/** 到期时间展示格式:2026-10-01 23:59 */
|
||||
export function formatAdEndsAt(value: string): string {
|
||||
const d = new Date(value);
|
||||
if (Number.isNaN(d.getTime())) return "";
|
||||
const p = (n: number) => String(n).padStart(2, "0");
|
||||
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
|
||||
}
|
||||
|
||||
/** 广告悬停提示:首行到期时间(可选),第二行免责声明(\n 由气泡 pre-line 换行) */
|
||||
export function adHoverTip(endsAt?: string | null): string {
|
||||
const t = endsAt ? formatAdEndsAt(endsAt) : "";
|
||||
return t ? `到期时间:${t}\n${AD_TIP_DISCLAIMER}` : AD_TIP_DISCLAIMER;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user