35 lines · 1.1 KB
import { createFileRoute } from "@tanstack/react-router";
import { listAccountContainers, stopAccountContainerFn } from "~/fns/containers";
import { useAction } from "~/hooks/use-action";
import { ContainerSessionList } from "~/components/containers/ContainerSessionList";
import { Heading } from "~/ui/Heading";

export const Route = createFileRoute("/settings/containers")({
  loader: () => listAccountContainers({ data: { org: null } }),
  component: UserContainersPage,
});

function UserContainersPage() {
  const overview = Route.useLoaderData();
  const stop = useAction(stopAccountContainerFn);
  return (
    <div className="space-y-4">
      <div>
        <Heading level={2} size="md">
          Editor containers
        </Heading>
        <p className="text-sm text-kumo-subtle">
          Containers you started from the editor's "Run in container". Time is billed to you per second.
        </p>
      </div>
      <ContainerSessionList
        overview={overview}
        canStop
        error={stop.error}
        pending={stop.pending}
        onStop={(sessionId) => stop.run({ data: { org: null, sessionId } })}
      />
    </div>
  );
}