SPB Git forge

spb/fetcha

Public
11commits 1branches 0releases
1.5 MBsize
maindefault branch
16 days agolast push
TypeScript 97.5% SQL 1.4% Python 0.8%
1000 B · 33 lines tsx
Raw Blame History
1"use client";2import * as React from "react";3import { useRouter } from "next/navigation";4import { closeDashboardSession } from "@/actions/sessions";5import { Button } from "@/components/ui/button";67export function CloseSessionButton({ id }: { id: string }) {8  const router = useRouter();9  const [pending, startTransition] = React.useTransition();10  const [error, setError] = React.useState<string | null>(null);11  return (12    <span className="inline-flex items-center gap-2">13      {error ? <span className="text-[11.5px] text-danger">{error}</span> : null}14      <Button15        variant="outline"16        size="xs"17        loading={pending}18        onClick={() =>19          startTransition(async () => {20            setError(null);21            const res = await closeDashboardSession(id);22            if (!res.ok) setError(res.error);23            else router.refresh();24          })25        }26        aria-label={`Close session ${id}`}27      >28        Close29      </Button>30    </span>31  );32}33