import { useTranslation } from "react-i18next";
import { ActivityIndicator, View } from "react-native";
import type { ServerUrlResolverState } from "@/hooks/useServerUrlResolver";
import { Text } from "./Text";
/**
* Compact status line for the server-URL resolver, for screens whose layout
* (e.g. ListItem rows) doesn't fit the full `ServerUrlField`. Renders nothing
* while idle.
*/
export function ServerUrlStatusText({
state,
minVersion,
className = "",
}: {
state: ServerUrlResolverState;
minVersion?: string;
className?: string;
}) {
const { t } = useTranslation();
if (state.status === "idle") return null;
if (state.status === "resolving") {
return (
{t("server_url.resolving")}
);
}
if (state.status === "ok") {
return (
{t("server_url.resolved", { url: state.resolvedUrl })}
);
}
const message =
state.reason === "version-too-low"
? t("server_url.version_too_low", {
version: state.version ?? "?",
min: minVersion ?? "",
})
: state.reason === "wrong-service"
? t("server_url.wrong_service")
: state.reason === "invalid"
? t("server_url.invalid_url")
: t("server_url.unreachable");
return {message};
}