diff --git a/src/windows/Settings/LndLog.tsx b/src/windows/Settings/LndLog.tsx index e9349bf1..54c976f3 100644 --- a/src/windows/Settings/LndLog.tsx +++ b/src/windows/Settings/LndLog.tsx @@ -3,27 +3,31 @@ import { NativeModules } from "react-native"; import { StackNavigationProp } from "@react-navigation/stack"; import { Icon } from "native-base"; import Clipboard from "@react-native-clipboard/clipboard"; - import { SettingsStackParamList } from "./index"; import Container from "../../components/Container"; import { NavigationButton } from "../../components/NavigationButton"; import { toast } from "../../utils"; import LogBox from "../../components/LogBox"; - import { useTranslation } from "react-i18next"; import { namespaces } from "../../i18n/i18n.constants"; export interface ILndLogProps { navigation: StackNavigationProp; } + export default function LndLog({ navigation }: ILndLogProps) { const t = useTranslation(namespaces.settings.lndLog).t; const [logs, setLogs] = useState(""); + const lastLogRef = useRef(""); const fetchLogs = async () => { try { const tailLog = await NativeModules.LndMobileTools.tailLog(100); - setLogs(tailLog); + setLogs((prevLogs) => { + const newLogs = tailLog.replace(lastLogRef.current, "").trim(); + lastLogRef.current = tailLog; + return prevLogs + (prevLogs ? "\n" : "") + newLogs; + }); } catch (error) { console.error("Error fetching logs:", error); } diff --git a/src/windows/SyncInfo.tsx b/src/windows/SyncInfo.tsx index 26fd2c87..24e3e889 100644 --- a/src/windows/SyncInfo.tsx +++ b/src/windows/SyncInfo.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useRef, useState } from "react"; -import { EmitterSubscription, NativeModules, StyleSheet, View, ScrollView } from "react-native"; +import { NativeModules, StyleSheet, View, ScrollView } from "react-native"; import { Card, Text, CardItem, H1, Button } from "native-base"; import Clipboard from "@react-native-clipboard/clipboard"; import Bar from "../components/ProgressBar"; @@ -49,11 +49,16 @@ export default function SyncInfo({}: ISyncInfoProps) { let bestBlockheight = useStoreState((store) => store.lightning.bestBlockheight); const [showLndLog, setShowLndLog] = useState(false); const [logs, setLogs] = useState(""); + const lastLogRef = useRef(""); const fetchLogs = async () => { try { const tailLog = await NativeModules.LndMobileTools.tailLog(100); - setLogs(tailLog); + setLogs((prevLogs) => { + const newLogs = tailLog.replace(lastLogRef.current, "").trim(); + lastLogRef.current = tailLog; + return prevLogs + (prevLogs ? "\n" : "") + newLogs; + }); } catch (error) { console.error("Error fetching logs:", error); }