mirror of
				https://github.com/ItzCrazyKns/Perplexica.git
				synced 2025-11-04 04:38:15 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			982 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			982 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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-black/70 dark:text-white/70 rounded-xl hover:bg-light-secondary dark:hover:bg-dark-secondary transition duration-200 hover:text-black dark:hover:text-white"
 | 
						|
    >
 | 
						|
      {copied ? <Check size={18} /> : <ClipboardList size={18} />}
 | 
						|
    </button>
 | 
						|
  );
 | 
						|
};
 | 
						|
 | 
						|
export default Copy;
 |