- Add Workspace domain (entity, repository, service, handler, DTO) - Add multi-tenant K8s client with tenant binding and quota management - Add K8s diagnostics client (instance diagnostics) - Add authorization middleware (authz package) - Restructure frontend to feature-based architecture (features/) - Add User Management page in configuration - Add AccessDenied page and route guards - Refactor shared components (form inputs, layout, UI) - Update Tailwind config for new design system - Add comprehensive documentation (docs/, tasks/, plans) - Improve cluster service with better kubeconfig handling - Add tests for crypto, config, helm client, tenant binding
34 lines
850 B
TypeScript
34 lines
850 B
TypeScript
/**
|
|
* 配置性界面的空状态组件(无引导按钮)
|
|
* 仅提示用户当前没有配置数据
|
|
*/
|
|
import React from "react";
|
|
import type { LucideIcon } from "lucide-react";
|
|
|
|
interface EmptyStateSimpleProps {
|
|
/** 标题 */
|
|
title: string;
|
|
/** 描述文字 */
|
|
description: string;
|
|
/** 图标组件 */
|
|
Icon: LucideIcon;
|
|
/** 自定义样式(可选) */
|
|
className?: string;
|
|
}
|
|
|
|
export const EmptyStateSimple: React.FC<EmptyStateSimpleProps> = ({
|
|
title,
|
|
description,
|
|
Icon,
|
|
className = "",
|
|
}) => {
|
|
return (
|
|
<div className={`bg-white border border-slate-200 rounded-lg p-8 text-center ${className}`}>
|
|
<Icon className="w-16 h-16 text-gray-600 mx-auto mb-4" />
|
|
<h3 className="text-lg font-semibold text-slate-700 mb-2">{title}</h3>
|
|
<p className="text-slate-500">{description}</p>
|
|
</div>
|
|
);
|
|
};
|
|
|