import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { commands } from "@/bindings"; import { SettingContainer } from "../../ui/SettingContainer"; import { PathDisplay } from "../../ui/PathDisplay"; interface LogDirectoryProps { descriptionMode?: "tooltip" | "inline"; grouped?: boolean; } export const LogDirectory: React.FC = ({ descriptionMode = "tooltip", grouped = false, }) => { const { t } = useTranslation(); const [logDir, setLogDir] = useState(""); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const loadLogDirectory = async () => { try { const result = await commands.getLogDirPath(); if (result.status === "ok") { setLogDir(result.data); } else { setError(result.error); } } catch (err) { const errorMessage = err && typeof err === "object" && "message" in err ? String(err.message) : "Failed to load log directory"; setError(errorMessage); } finally { setLoading(false); } }; loadLogDirectory(); }, []); const handleOpen = async () => { if (!logDir) return; try { await commands.openLogDir(); } catch (openError) { console.error("Failed to open log directory:", openError); } }; return ( {loading ? (
) : error ? (
{t("errors.loadDirectory", { error })}
) : ( )} ); };