"use client"; import React, { useState } from "react"; import { GetTranscript } from "../../api"; import { Title } from "../../lib/textComponents"; import Pagination from "./pagination"; import Link from "next/link"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCheck, faGear, faMicrophone, faStar, faTrash, faX, } from "@fortawesome/free-solid-svg-icons"; import useTranscriptList from "../transcripts/useTranscriptList"; import { formatTime } from "../../lib/time"; import getApi from "../../api"; import { useError } from "../../(errors)/errorContext"; export default function TranscriptBrowser() { const [page, setPage] = useState(1); const { loading, response, refetch } = useTranscriptList(page); const [transcriptToDeleteId, setTranscriptToDeleteId] = useState(""); const [deletionLoading, setDeletionLoading] = useState(false); const [deletedItems, setDeletedItems] = useState([]); const api = getApi(); const { setError } = useError(); if (loading && !response) return (
); if (!loading && !response) return (
No transcripts found, but you can  record a meeting  to get started.
); const handleDelete = (id: string) => (e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); setTranscriptToDeleteId(id); }; const deleteTranscript = () => (e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); if (!deletionLoading) { api ?.v1TranscriptDelete({ transcriptId: transcriptToDeleteId }) .then(() => { setDeletionLoading(false); setDeletedItems([...deletedItems, transcriptToDeleteId]); setTranscriptToDeleteId(""); refetch(); }) .catch((err) => { setDeletionLoading(false); setError(err, "There was an error deleting the transcript"); }); } }; const cancelDelete = (e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); setTranscriptToDeleteId(""); }; return (
Past transcripts
{response?.items .filter((item) => !deletedItems.includes(item.id)) .map((item: GetTranscript) => (

{item.title || item.name}

{item.locked && (
Locked
)} {item.status == "ended" && ( )} {item.status == "error" && ( )} {item.status == "idle" && ( )} {item.status == "processing" && ( )} {item.status == "recording" && ( )} {item.sourceLanguage && (
{item.sourceLanguage}
)}
{new Date(item.createdAt).toLocaleDateString("en-US")} {"\u00A0"}-{"\u00A0"} {formatTime(Math.floor(item.duration))}
{item.shortSummary}
{item.status !== "ended" && ( )}

Are you sure you want to delete {item.title} ?

This action is not reversible.

))}
); }