import React, { useState, useEffect, useRef } from 'react'; import { readTextFromClipboard } from '../Functions/ParseChallenge' import { Helmet } from 'react-helmet'; // Import Helmet function HomePage() { const [pssh, setPssh] = useState(''); const [licurl, setLicurl] = useState(''); const [proxy, setProxy] = useState(''); const [headers, setHeaders] = useState(''); const [cookies, setCookies] = useState(''); const [data, setData] = useState(''); const [message, setMessage] = useState(''); const [isVisible, setIsVisible] = useState(false); const bottomRef = useRef(null); const messageRef = useRef(null); // Reference to result container const handleReset = () => { if (isVisible) { setIsVisible(false); } setPssh(''); setLicurl(''); setProxy(''); setHeaders(''); setCookies(''); setData(''); }; const handleSubmitButton = (event) => { event.preventDefault(); fetch('/api/decrypt', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ pssh: pssh, licurl: licurl, proxy: proxy, headers: headers, cookies: cookies, data: data }), }) .then(response => response.json()) .then(data => { const resultMessage = data['message'].replace(/\n/g, '
'); setMessage(resultMessage); setIsVisible(true); }) .catch((error) => { console.error('Error during decryption request:', error); setMessage('Error: Unable to process request.'); setIsVisible(true); }); }; const handleCopy = (event) => { event.preventDefault(); if (messageRef.current) { const textToCopy = messageRef.current.innerText; // Grab the plain text (with visual line breaks) navigator.clipboard.writeText(textToCopy).catch(err => { alert('Failed to copy!'); console.error(err); }); } }; const handleFetchPaste = () => { event.preventDefault(); readTextFromClipboard().then(() => { setPssh(document.getElementById("pssh").value); setLicurl(document.getElementById("licurl").value); setHeaders(document.getElementById("headers").value); setData(document.getElementById("data").value); }).catch(err => { alert('Failed to paste from fetch!'); }); } useEffect(() => { if (isVisible && bottomRef.current) { bottomRef.current.scrollIntoView({ behavior: 'smooth' }); } }, [message, isVisible]); return ( <>
CDRM-Project
setPssh(e.target.value)} /> setLicurl(e.target.value)} /> setProxy(e.target.value)} />