Fix: visible-Flag für Scan-Müll, editierbare Hostname/Port/HTTPS, Sidebar fixiert, Suche nur bei Eingabe

This commit is contained in:
2026-07-19 12:27:45 +02:00
parent d65897b8e1
commit 20ea4d382d
12 changed files with 238 additions and 44 deletions

View File

@@ -31,6 +31,7 @@ export function HomePage() {
const { data: services, isLoading, isError } = useServices();
const inputRef = useRef<HTMLInputElement>(null);
const queryClient = useQueryClient();
const isSearching = query.trim().length > 0;
const toggleFavorite = useMutation({
mutationFn: toggleServiceFavorite,
@@ -39,9 +40,16 @@ export function HomePage() {
},
});
// Ausgeblendete Dienste (z. B. Fehlerseiten/nicht erreichbare Scan-Treffer,
// siehe Admin -> Dienste) tauchen in der Suche nicht auf.
const visibleServices = useMemo(
() => (services ?? []).filter((s) => s.visible),
[services]
);
const results = useMemo(
() => rankServices(services ?? [], query),
[services, query]
() => rankServices(visibleServices, query),
[visibleServices, query]
);
// Auswahl zurücksetzen, sobald sich die Trefferliste ändert
@@ -61,6 +69,7 @@ export function HomePage() {
}
if (document.activeElement !== inputRef.current) return;
if (query.trim().length === 0) return; // keine sichtbare Liste, nichts zu steuern
if (e.key === "ArrowDown") {
e.preventDefault();
@@ -80,7 +89,7 @@ export function HomePage() {
window.addEventListener("keydown", onKeyDown);
return () => window.removeEventListener("keydown", onKeyDown);
}, [results, selectedIndex]);
}, [results, selectedIndex, query]);
const isOnline = !healthError && health?.status === "ok";
@@ -124,7 +133,7 @@ export function HomePage() {
autoFocus
/>
{isLoading ? (
{!isSearching ? null : isLoading ? (
<p className="mt-4 text-center text-sm text-black/40 dark:text-white/40">
Lade Dienste
</p>
@@ -140,7 +149,7 @@ export function HomePage() {
onOpen={openService}
onToggleFavorite={(service) => toggleFavorite.mutate(service)}
emptyLabel={
(services?.length ?? 0) === 0
(visibleServices?.length ?? 0) === 0
? "Noch keine Dienste angelegt. Füge welche im Adminbereich hinzu."
: "Keine Treffer für deine Suche."
}