mirror of
https://github.com/fosrl/pangolin.git
synced 2026-08-05 12:10:52 +02:00
adjust placeholder ui for rules and targets
This commit is contained in:
@@ -930,6 +930,7 @@ export const ProxyResourceTargetsForm = forwardRef<
|
|||||||
colSpan={columns.length}
|
colSpan={columns.length}
|
||||||
message={emptyMessage ?? t("targetNoOne")}
|
message={emptyMessage ?? t("targetNoOne")}
|
||||||
action={addTargetButton}
|
action={addTargetButton}
|
||||||
|
compact
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
|
|||||||
@@ -961,6 +961,7 @@ export function PolicyAccessRulesTable({
|
|||||||
colSpan={columns.length}
|
colSpan={columns.length}
|
||||||
message={t("rulesNoOne")}
|
message={t("rulesNoOne")}
|
||||||
action={emptyStateAction}
|
action={emptyStateAction}
|
||||||
|
compact
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
|
|||||||
@@ -5,34 +5,48 @@ import { useTranslations } from "next-intl";
|
|||||||
import { type ReactNode } from "react";
|
import { type ReactNode } from "react";
|
||||||
|
|
||||||
const PLACEHOLDER_ROW_COUNT = 5;
|
const PLACEHOLDER_ROW_COUNT = 5;
|
||||||
|
const COMPACT_PLACEHOLDER_ROW_COUNT = 2;
|
||||||
|
|
||||||
type DataTableEmptyStateProps = {
|
type DataTableEmptyStateProps = {
|
||||||
colSpan: number;
|
colSpan: number;
|
||||||
action?: ReactNode;
|
action?: ReactNode;
|
||||||
message?: string;
|
message?: string;
|
||||||
|
compact?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function DataTableEmptyState({
|
export function DataTableEmptyState({
|
||||||
colSpan,
|
colSpan,
|
||||||
action,
|
action,
|
||||||
message
|
message,
|
||||||
|
compact = false
|
||||||
}: DataTableEmptyStateProps) {
|
}: DataTableEmptyStateProps) {
|
||||||
const t = useTranslations();
|
const t = useTranslations();
|
||||||
|
const placeholderRows = compact
|
||||||
|
? COMPACT_PLACEHOLDER_ROW_COUNT
|
||||||
|
: PLACEHOLDER_ROW_COUNT;
|
||||||
|
const minHeightClass = compact ? "min-h-[4.5rem]" : "min-h-[11rem]";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableRow className="hidden sm:table-row hover:bg-transparent data-[state=selected]:bg-transparent">
|
<TableRow className="hidden sm:table-row hover:bg-transparent data-[state=selected]:bg-transparent">
|
||||||
<TableCell colSpan={colSpan} className="p-0">
|
<TableCell colSpan={colSpan} className="p-0">
|
||||||
<div className="relative min-h-[11rem] w-full overflow-hidden">
|
<div
|
||||||
|
className={`relative w-full overflow-hidden ${minHeightClass}`}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
className="absolute inset-0 flex flex-col justify-start"
|
className="absolute inset-0 flex flex-col justify-start"
|
||||||
aria-hidden
|
aria-hidden
|
||||||
>
|
>
|
||||||
{Array.from({ length: PLACEHOLDER_ROW_COUNT }).map(
|
{Array.from({ length: placeholderRows }).map((_, i) => (
|
||||||
(_, i) => (
|
<div key={i} className="h-10 shrink-0" />
|
||||||
<div key={i} className="h-10 shrink-0" />
|
))}
|
||||||
)
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
<div className="relative flex min-h-[11rem] w-full flex-col items-center justify-center gap-4 px-4 py-8">
|
<div
|
||||||
|
className={`relative flex w-full flex-col items-center justify-center px-4 ${
|
||||||
|
compact
|
||||||
|
? "min-h-[4.5rem] gap-3 py-4"
|
||||||
|
: "min-h-[11rem] gap-4 py-8"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
<p className="text-sm text-muted-foreground">
|
<p className="text-sm text-muted-foreground">
|
||||||
{message ?? t("noResults")}
|
{message ?? t("noResults")}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user