show resources table, check org access, and handle redirects on root

This commit is contained in:
Milo Schwartz
2024-10-19 15:49:16 -04:00
parent edde7a247a
commit f6c7c017cb
14 changed files with 416 additions and 95 deletions

View File

@@ -1,14 +1,45 @@
export default async function Page() {
import { internal } from "@app/api";
import { authCookieHeader } from "@app/api/cookies";
import ResourcesTable, { ResourceRow } from "./components/ResourcesTable";
import { AxiosResponse } from "axios";
import { ListResourcesResponse } from "@server/routers/resource";
type ResourcesPageProps = {
params: { orgId: string };
};
export default async function Page({ params }: ResourcesPageProps) {
let resources: ListResourcesResponse["resources"] = [];
try {
const res = await internal.get<AxiosResponse<ListResourcesResponse>>(
`/org/${params.orgId}/resources`,
authCookieHeader(),
);
resources = res.data.data.resources;
} catch (e) {
console.error("Error fetching resources", e);
}
const resourceRows: ResourceRow[] = resources.map((resource) => {
return {
id: resource.resourceId.toString(),
name: resource.name,
orgId: params.orgId,
};
});
return (
<>
<div className="space-y-0.5 select-none">
<div className="space-y-0.5 select-none mb-6">
<h2 className="text-2xl font-bold tracking-tight">
Manage Resources
</h2>
<p className="text-muted-foreground">
Create secure proxies to your private resources.
Create secure proxies to your private applications.
</p>
</div>
<ResourcesTable resources={resourceRows} orgId={params.orgId} />
</>
);
}