1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-12-18 18:35:58 +01:00
upscayl/renderer/components/sidebar/settings-tab/log-area.tsx

54 lines
1.4 KiB
TypeScript
Raw Normal View History

import { translationAtom } from "@/atoms/translations-atom";
import { useAtomValue } from "jotai";
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);
const t = useAtomValue(translationAtom);
2024-04-17 18:18:45 +02:00
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>{t("SETTINGS.LOG_AREA.ON_COPY")}</span>
) : (
<span>{t("SETTINGS.LOG_AREA.BUTTON_TITLE")}</span>
)}
2023-11-22 16:54:02 +01:00
</button>
</div>
2024-04-17 18:18:45 +02:00
<code
className="relative flex h-52 max-h-52 flex-col gap-3 overflow-y-auto break-all rounded-btn rounded-r-none bg-base-200 p-4 text-xs"
2024-04-17 18:18:45 +02:00
ref={ref}
>
2023-07-22 13:07:53 +02:00
{logData.length === 0 && (
<p className="text-base-content/70">
{t("SETTINGS.LOG_AREA.NO_LOGS")}
</p>
2023-07-22 13:07:53 +02:00
)}
{logData.map((logLine: any) => {
return <p className="">{logLine}</p>;
})}
</code>
</div>
);
}