TypeScript 97.5%
SQL 1.4%
Python 0.8%
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