File size: 935 Bytes
f5ed9bf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Check, ClipboardList } from 'lucide-react';
import { Message } from '../ChatWindow';
import { useState } from 'react';

const Copy = ({

  message,

  initialMessage,

}: {

  message: Message;

  initialMessage: string;

}) => {
  const [copied, setCopied] = useState(false);

  return (
    <button

      onClick={() => {

        const contentToCopy = `${initialMessage}${message.sources && message.sources.length > 0 && `\n\nCitations:\n${message.sources?.map((source: any, i: any) => `[${i + 1}] ${source.metadata.url}`).join(`\n`)}`}`;

        navigator.clipboard.writeText(contentToCopy);

        setCopied(true);

        setTimeout(() => setCopied(false), 1000);

      }}

      className="p-2 text-white/70 rounded-xl hover:bg-[#1c1c1c] transition duration-200 hover:text-white"

    >

      {copied ? <Check size={18} /> : <ClipboardList size={18} />}

    </button>
  );
};

export default Copy;