1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-12-19 10:55:53 +01:00
upscayl/renderer/components/settings-tab/LogArea.tsx

45 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-04-17 18:18:45 +02:00
import React, { useEffect } from "react";
2023-07-22 13:07:53 +02:00
type LogAreaProps = {
copyOnClickHandler: () => void;
isCopied: boolean;
logData: string[];
};
2023-09-18 20:30:43 +02:00
export function LogArea({
copyOnClickHandler,
isCopied,
logData,
}: LogAreaProps) {
2024-04-17 18:18:45 +02:00
const ref = React.useRef<HTMLElement>(null);
useEffect(() => {
if (ref.current) {
ref.current.scrollTop = ref.current.scrollHeight;
}
}, [logData]);
2023-07-22 13:07:53 +02:00
return (
<div className="relative flex flex-col gap-2">
2023-11-22 16:54:02 +01:00
<div className="flex items-center gap-2">
<p className="text-sm font-medium">LOGS</p>
2024-04-17 18:18:45 +02:00
<button className="btn btn-primary btn-xs" onClick={copyOnClickHandler}>
{isCopied ? <span>COPIED </span> : <span>COPY LOGS 📋</span>}
2023-11-22 16:54:02 +01:00
</button>
</div>
2024-04-17 18:18:45 +02:00
<code
className="rounded-btn relative flex h-52 max-h-52 flex-col gap-3 overflow-y-auto break-all rounded-r-none bg-base-200 p-4 text-xs"
ref={ref}
>
2023-07-22 13:07:53 +02:00
{logData.length === 0 && (
<p className="text-base-content/70">No logs to show</p>
)}
{logData.map((logLine: any) => {
return <p className="">{logLine}</p>;
})}
</code>
</div>
);
}