- 建立 pnpm workspace + Turborepo 单仓、ESLint 9/Prettier/commitlint/husky 门禁 - NestJS + Fastify API:统一错误体、trace_id、Zod 管道、/health 真实依赖探活、OpenAPI 3.1 契约 - Prisma 基线:outbox_events/idempotency_keys/system_configs 与首版迁移、幂等种子 - shared 契约包:错误码、权限点、ULID、游标分页、命名/时间工具 - ui 包与 Web 壳层:Semi + Remix 图标统一出口、Cloud Blue 视觉、登录/工作台/错误页 - worker 骨架、Playwright 冒烟、Gitea CI、OpenAPI 快照与 oasdiff 回退脚本 - 补充 A0 实施报告与本地开发说明
This commit is contained in:
1 parent
9c3ab9768a
commit
04f49690f4
155 files changed
+18402
-28
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { Skeleton } from '@douyinfe/semi-ui-19';
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
export interface PageSkeletonProps {
|
||||
loading?: boolean;
|
||||
rows?: number;
|
||||
children?: ReactNode;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
/** 统一加载骨架:页面级加载用段落占位,避免布局跳动 */
|
||||
export function PageSkeleton({
|
||||
loading = true,
|
||||
rows = 6,
|
||||
children,
|
||||
className,
|
||||
}: PageSkeletonProps): ReactNode {
|
||||
return (
|
||||
<Skeleton
|
||||
loading={loading}
|
||||
placeholder={<Skeleton.Paragraph rows={rows} />}
|
||||
className={`lx-page-skeleton${className === undefined ? '' : ` ${className}`}`}
|
||||
>
|
||||
{children}
|
||||
</Skeleton>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user