mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-21 20:59:05 +00:00
- Create constants.ts for RECORD_A_MEETING_URL - Add api-types.ts for backward compatible type exports - Update all imports from deleted api folder to new locations - Add missing React Query hooks for rooms and zulip operations - Create useApi compatibility layer for unmigrated components
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { useState } from "react";
|
|
import { GetTranscript, GetTranscriptTopic } from "../../lib/api-types";
|
|
import { Button, BoxProps, Box } from "@chakra-ui/react";
|
|
|
|
type ShareCopyProps = {
|
|
finalSummaryRef: any;
|
|
transcriptResponse: GetTranscript;
|
|
topicsResponse: GetTranscriptTopic[];
|
|
};
|
|
|
|
export default function ShareCopy({
|
|
finalSummaryRef,
|
|
transcriptResponse,
|
|
topicsResponse,
|
|
...boxProps
|
|
}: ShareCopyProps & BoxProps) {
|
|
const [isCopiedSummary, setIsCopiedSummary] = useState(false);
|
|
const [isCopiedTranscript, setIsCopiedTranscript] = useState(false);
|
|
|
|
const onCopySummaryClick = () => {
|
|
let text_to_copy = finalSummaryRef.current?.innerText;
|
|
|
|
text_to_copy &&
|
|
navigator.clipboard.writeText(text_to_copy).then(() => {
|
|
setIsCopiedSummary(true);
|
|
// Reset the copied state after 2 seconds
|
|
setTimeout(() => setIsCopiedSummary(false), 2000);
|
|
});
|
|
};
|
|
|
|
const onCopyTranscriptClick = () => {
|
|
let text_to_copy =
|
|
topicsResponse
|
|
?.map((topic) => topic.transcript)
|
|
.join("\n\n")
|
|
.replace(/ +/g, " ")
|
|
.trim() || "";
|
|
|
|
text_to_copy &&
|
|
navigator.clipboard.writeText(text_to_copy).then(() => {
|
|
setIsCopiedTranscript(true);
|
|
// Reset the copied state after 2 seconds
|
|
setTimeout(() => setIsCopiedTranscript(false), 2000);
|
|
});
|
|
};
|
|
|
|
return (
|
|
<Box {...boxProps}>
|
|
<Button onClick={onCopyTranscriptClick} mr={2} variant="subtle">
|
|
{isCopiedTranscript ? "Copied!" : "Copy Transcript"}
|
|
</Button>
|
|
<Button onClick={onCopySummaryClick} variant="subtle">
|
|
{isCopiedSummary ? "Copied!" : "Copy Summary"}
|
|
</Button>
|
|
</Box>
|
|
);
|
|
}
|