From fc53a7d760a59ee1732194cb6fa498c1fc221ef7 Mon Sep 17 00:00:00 2001 From: Gauvain Date: Tue, 16 Jun 2026 21:49:35 +0200 Subject: [PATCH] fix(logs): keep the filter bar below the header on iOS The logs page rendered its filter bar in a plain View with no top inset, so under the transparent iOS header it sat behind the header and the filter buttons weren't tappable. Use a root ScrollView with contentInsetAdjustmentBehavior='automatic' (like the sibling settings pages) and make the filter bar a sticky header, so iOS insets the content below the header and the bar stays pinned while logs scroll. --- .../(tabs)/(home)/settings/logs/page.tsx | 118 +++++++++--------- 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/app/(auth)/(tabs)/(home)/settings/logs/page.tsx b/app/(auth)/(tabs)/(home)/settings/logs/page.tsx index 4ce5736c..f94c4279 100644 --- a/app/(auth)/(tabs)/(home)/settings/logs/page.tsx +++ b/app/(auth)/(tabs)/(home)/settings/logs/page.tsx @@ -88,8 +88,15 @@ export default function Page() { }, [share, loading]); return ( - - + + - - - {filteredLogs?.map((log, index) => ( - - - setState((v) => ({ - ...v, - [log.timestamp]: !v[log.timestamp], - })) - } - > - - + {filteredLogs?.map((log, index) => ( + + + setState((v) => ({ + ...v, + [log.timestamp]: !v[log.timestamp], + })) + } + > + + - {log.level} - - - - {new Date(log.timestamp).toLocaleString()} - - - - {log.message} + > + {log.level} - - {log.data && ( - <> - {!state[log.timestamp] && ( - - {t("home.settings.logs.click_for_more_info")} - - )} - - - - {JSON.stringify(log.data, null, 2)} - - - - - )} - - ))} - {filteredLogs?.length === 0 && ( - - {t("home.settings.logs.no_logs_available")} - - )} - - - + + {new Date(log.timestamp).toLocaleString()} + + + + {log.message} + + + + {log.data && ( + <> + {!state[log.timestamp] && ( + + {t("home.settings.logs.click_for_more_info")} + + )} + + + + {JSON.stringify(log.data, null, 2)} + + + + + )} + + ))} + {filteredLogs?.length === 0 && ( + + {t("home.settings.logs.no_logs_available")} + + )} + + ); }