Some checks failed
build and push / build_n_push (push) Has been cancelled
* Fix wrong ui state for routing peer modal in networks * Add confirmation dialog when blocking users * Keep peer sort order when switching pages * Update sidebar navigation order and remove deprecation notice * Fix issue when hovering over truncated text in a group badge closes the multiple groups popover * Update group text in network resource modal * Update networks page text * Fix line height * Add search to resource table * Switch networks flow to create first resources and then add routers * Add enabled toggle to routing peers * Add enabled toggle to network resources * Add resource group modal and adjust tables * Clarify networks * Fix not properly aligned horizontal scroll bar * Add option to install netbird after creating a setup key * Fix text for install netbird modal * Show resources count in group settings * Fix "no results" and "no routing peers" text showing at the same time * Fix wording * Fix resource policy count * Hide resource count when selection source groups * Extend networks routing peer modal with option to create a setup key and install netbird * Add option for horizontal stepper * Generate setup key when installing netbird from routing peer modal * Add confirm dialog to let the user know a one-off setup-key will be created. This avoids accidental clicking and later confusion on the setup keys page --------- Co-authored-by: Misha Bragin <bangvalo@gmail.com>
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import Paragraph from "@components/Paragraph";
|
|
import SkeletonTable, {
|
|
SkeletonTableHeader,
|
|
} from "@components/skeletons/SkeletonTable";
|
|
import { usePortalElement } from "@hooks/usePortalElement";
|
|
import useFetchApi from "@utils/api";
|
|
import * as React from "react";
|
|
import { Suspense } from "react";
|
|
import { Network, NetworkResource } from "@/interfaces/Network";
|
|
import ResourcesTable from "@/modules/networks/resources/ResourcesTable";
|
|
|
|
type ResourcesSectionProps = {
|
|
network: Network;
|
|
};
|
|
|
|
export const ResourcesSection = ({ network }: ResourcesSectionProps) => {
|
|
const { data: resources, isLoading } = useFetchApi<NetworkResource[]>(
|
|
`/networks/${network.id}/resources`,
|
|
);
|
|
const { ref: headingRef, portalTarget } =
|
|
usePortalElement<HTMLHeadingElement>();
|
|
|
|
return (
|
|
<div className={"py-7 px-8"}>
|
|
<div className={"max-w-6xl"}>
|
|
<div className={"flex justify-between items-center mb-6"}>
|
|
<div>
|
|
<h2 ref={headingRef}>Resources</h2>
|
|
<Paragraph>Add and manage resources for this network.</Paragraph>
|
|
</div>
|
|
</div>
|
|
|
|
<Suspense
|
|
fallback={
|
|
<div>
|
|
<SkeletonTableHeader className={"!p-0"} />
|
|
<div className={"mt-8 w-full"}>
|
|
<SkeletonTable withHeader={false} />
|
|
</div>
|
|
</div>
|
|
}
|
|
>
|
|
<ResourcesTable
|
|
isLoading={isLoading}
|
|
headingTarget={portalTarget}
|
|
resources={resources}
|
|
/>
|
|
</Suspense>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|