import React from 'react'; import {getHost} from '../../helpers/getHost' interface AccessReportProps { accessData: { pdf?: string; docx?: string; json?: string; }; chatBoxSettings: { report_type?: string; }; report: string; } const AccessReport: React.FC<AccessReportProps> = ({ accessData, chatBoxSettings, report }) => { const host = getHost(); const getReportLink = (dataType: 'pdf' | 'docx' | 'json'): string => { // Early return if path is not available if (!accessData?.[dataType]) { console.warn(`No ${dataType} path provided`); return '#'; } const path = accessData[dataType] as string; // Clean the path - remove leading/trailing slashes and handle outputs/ prefix const cleanPath = path .trim() .replace(/^\/+|\/+$/g, ''); // Remove leading/trailing slashes // Only prepend outputs/ if it's not already there const finalPath = cleanPath.startsWith('outputs/') ? cleanPath : `outputs/${cleanPath}`; return `${host}/${finalPath}`; }; // Safety check for accessData if (!accessData || typeof accessData !== 'object') { return null; } return ( <div className="flex justify-center mt-4"> <a href={getReportLink('pdf')} className="bg-purple-500 text-white active:bg-purple-600 font-bold uppercase text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" target="_blank" rel="noopener noreferrer"> View as PDF </a> <a href={getReportLink('docx')} className="bg-purple-500 text-white active:bg-purple-600 font-bold uppercase text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" target="_blank" rel="noopener noreferrer"> Download DocX </a> {chatBoxSettings?.report_type === 'research_report' && ( <a href={getReportLink('json')} className="bg-purple-500 text-white active:bg-purple-600 font-bold uppercase text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" target="_blank" rel="noopener noreferrer"> Download Logs </a> )} </div> ); }; export default AccessReport;