fix resources cell styling

This commit is contained in:
miloschwartz
2026-06-05 11:46:30 -07:00
parent add9b8dfb0
commit 253ba554a2
4 changed files with 36 additions and 39 deletions

View File

@@ -212,8 +212,9 @@
"resourceAdd": "Add Resource", "resourceAdd": "Add Resource",
"resourceErrorDelte": "Error deleting resource", "resourceErrorDelte": "Error deleting resource",
"resourcePoliciesTitle": "Manage Resource Policies", "resourcePoliciesTitle": "Manage Resource Policies",
"resourcePoliciesAttachedResourcesColumnTitle": "Attached resources", "resourcePoliciesAttachedResourcesColumnTitle": "Resources",
"resourcePoliciesAttachedResources": "{count} resource(s)", "resourcePoliciesAttachedResources": "{count} resource(s)",
"resourcePoliciesAttachedResourcesCount": "{count, plural, one {# resource} other {# resources}}",
"resourcePoliciesAttachedResourcesEmpty": "no resources", "resourcePoliciesAttachedResourcesEmpty": "no resources",
"resourcePoliciesDescription": "Create and manage authentication policies to control access to your resources", "resourcePoliciesDescription": "Create and manage authentication policies to control access to your resources",
"resourcePoliciesSearch": "Search policies...", "resourcePoliciesSearch": "Search policies...",

View File

@@ -216,6 +216,7 @@ export async function listResourcePolicies(
: await db : await db
.select({ .select({
resourceId: resources.resourceId, resourceId: resources.resourceId,
niceId: resources.niceId,
name: resources.name, name: resources.name,
fullDomain: resources.fullDomain, fullDomain: resources.fullDomain,
resourcePolicyId: resources.resourcePolicyId resourcePolicyId: resources.resourcePolicyId

View File

@@ -14,7 +14,7 @@ export type GetMaintenanceInfoResponse = {
export type AttachedResource = Pick< export type AttachedResource = Pick<
Resource, Resource,
"resourceId" | "name" | "fullDomain" "resourceId" | "niceId" | "name" | "fullDomain"
>; >;
export type ResourcePolicyWithResources = Pick< export type ResourcePolicyWithResources = Pick<

View File

@@ -8,12 +8,7 @@ import type {
ListResourcePoliciesResponse ListResourcePoliciesResponse
} from "@server/routers/resource/types"; } from "@server/routers/resource/types";
import type { PaginationState } from "@tanstack/react-table"; import type { PaginationState } from "@tanstack/react-table";
import { import { ArrowRight, ChevronDown, MoreHorizontal } from "lucide-react";
ArrowRight,
ChevronDown,
MoreHorizontal,
Waypoints
} from "lucide-react";
import { useTranslations } from "next-intl"; import { useTranslations } from "next-intl";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
@@ -98,55 +93,50 @@ export function ResourcePoliciesTable({
}; };
function ResourceListCell({ function ResourceListCell({
orgId,
resources resources
}: { }: {
orgId: string;
resources?: AttachedResource[]; resources?: AttachedResource[];
}) { }) {
if (!resources || resources.length === 0) { if (!resources || resources.length === 0) {
return ( return <span>-</span>;
<div
id="LOOK_FOR_ME"
className="flex items-center gap-2 text-muted-foreground"
>
<Waypoints className="size-4 flex-none" />
<span className="text-sm">
{t("resourcePoliciesAttachedResourcesEmpty")}
</span>
</div>
);
} }
const countLabel = t("resourcePoliciesAttachedResourcesCount", {
count: resources.length
});
return ( return (
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button <Button
variant="ghost" variant="ghost"
size="sm" size="sm"
className="flex items-center gap-2 h-8 px-0 font-normal" className="flex h-8 items-center gap-2 px-0 font-normal"
> >
<Waypoints className="size-4 flex-none" /> <span className="text-sm tabular-nums">
<span className="text-sm"> {countLabel}
{t("resourcePoliciesAttachedResources", {
count: resources.length
})}
</span> </span>
<ChevronDown className="h-3 w-3" /> <ChevronDown className="h-3 w-3 shrink-0" />
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent align="start" className="min-w-70"> <DropdownMenuContent align="start" className="min-w-56">
{resources.map((resource) => ( {resources.map((resource) => (
<DropdownMenuItem <DropdownMenuItem key={resource.resourceId} asChild>
key={resource.resourceId} <Link
className="flex items-center justify-between gap-4" href={`/${orgId}/settings/resources/public/${resource.niceId}`}
> className="flex cursor-pointer items-center justify-between gap-4"
<div className="flex items-center gap-2">
{resource.name}
</div>
<span
className={`capitalize text-muted-foreground`}
> >
{resource.fullDomain} <div className="flex min-w-0 items-center gap-2">
</span> <span className="truncate">
{resource.name}
</span>
</div>
<span className="shrink-0 text-muted-foreground">
{resource.fullDomain}
</span>
</Link>
</DropdownMenuItem> </DropdownMenuItem>
))} ))}
</DropdownMenuContent> </DropdownMenuContent>
@@ -182,7 +172,12 @@ export function ResourcePoliciesTable({
</span> </span>
), ),
cell: ({ row }) => { cell: ({ row }) => {
return <ResourceListCell resources={row.original.resources} />; return (
<ResourceListCell
orgId={row.original.orgId}
resources={row.original.resources}
/>
);
} }
}, },
{ {