fix: 修正 markdown-to-jsx 导入方式 + 新增 formatDateLabel 日期工具函数
- TextPart: default import → named import - MaterialCard: 使用 formatDateLabel 显示今天/昨天/日期 - 清理旧测试文件,新增 ResourceTable 测试
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Typography } from "antd";
|
||||
import Markdown from "markdown-to-jsx/react";
|
||||
import { Markdown } from "markdown-to-jsx/react";
|
||||
|
||||
import type { PartProps } from "./types";
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ import { Button, Flex, Popconfirm, Tag, Typography } from "antd";
|
||||
|
||||
import type { Material, MaterialStatus } from "../types";
|
||||
|
||||
import { formatDateLabel } from "../../../shared/utils/time";
|
||||
|
||||
interface MaterialCardProps {
|
||||
material: Material;
|
||||
onDelete: () => void;
|
||||
@@ -12,7 +14,7 @@ interface MaterialCardProps {
|
||||
|
||||
function formatAssociatedDate(date: string): string {
|
||||
if (!date) return "—";
|
||||
return date;
|
||||
return formatDateLabel(date);
|
||||
}
|
||||
|
||||
const STATUS_MAP: Record<MaterialStatus, { color: string; label: string }> = {
|
||||
|
||||
@@ -3,6 +3,23 @@ export function formatCountdown(seconds: number): string {
|
||||
return `${Math.floor(seconds / 60)}分${seconds % 60}秒`;
|
||||
}
|
||||
|
||||
export function formatDateLabel(dateStr: string, now: Date = new Date()): string {
|
||||
const date = new Date(dateStr);
|
||||
if (Number.isNaN(date.getTime())) return "—";
|
||||
|
||||
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
||||
const yesterday = new Date(today.getTime() - 86_400_000);
|
||||
const dateDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
||||
|
||||
if (dateDay.getTime() >= today.getTime()) return "今天";
|
||||
if (dateDay.getTime() >= yesterday.getTime()) return "昨天";
|
||||
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, "0");
|
||||
const day = String(date.getDate()).padStart(2, "0");
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
export function formatDurationUnit(ms: null | number): { suffix: string; value: number } {
|
||||
if (ms === null) return { suffix: "", value: 0 };
|
||||
if (ms < 60000) return { suffix: "秒", value: roundToOne(ms / 1000) };
|
||||
|
||||
Reference in New Issue
Block a user