diff --git a/src/pages/dashboard/dashboard.tsx b/src/pages/dashboard/dashboard.tsx
index 75a58fd..c533a48 100644
--- a/src/pages/dashboard/dashboard.tsx
+++ b/src/pages/dashboard/dashboard.tsx
@@ -49,7 +49,8 @@ export function DashboardForLink({ link }: { link: NostrLink }) {
const provider = useMemo(() => (service ? new NostrStreamProvider("", service) : DefaultProvider), [service]);
const defaultEndpoint = useMemo(() => {
- return info?.endpoints.find(a => a.name == (recording ? "Best" : "Good"));
+ return info?.endpoints.find(a => a.name == (recording ? "Best" : "Good"))
+ ?? info?.endpoints[0];
}, [info, recording]);
useEffect(() => {
@@ -98,9 +99,8 @@ export function DashboardForLink({ link }: { link: NostrLink }) {
+ className={`w-3 h-3 rounded-full ${status === StreamState.Live ? "animate-pulse bg-green-500" : "bg-red-500"
+ }`}>
{status === StreamState.Live ? (
) : (
diff --git a/src/pages/dashboard/intro/final.tsx b/src/pages/dashboard/intro/final.tsx
index 863bf26..621bd52 100644
--- a/src/pages/dashboard/intro/final.tsx
+++ b/src/pages/dashboard/intro/final.tsx
@@ -12,7 +12,8 @@ export default function DashboardIntroFinal() {
const [info, setInfo] = useState();
const defaultEndpoint = useMemo(() => {
- return info?.endpoints.find(a => a.name == "Best");
+ return info?.endpoints.find(a => a.name == "Best")
+ ?? info?.endpoints[0];
}, [info]);
async function loadInfo() {
diff --git a/src/pages/dashboard/intro/index.tsx b/src/pages/dashboard/intro/index.tsx
index e6f0777..31bc38f 100644
--- a/src/pages/dashboard/intro/index.tsx
+++ b/src/pages/dashboard/intro/index.tsx
@@ -16,7 +16,8 @@ export default function DashboardIntro() {
const exampleHours = 4;
const defaultEndpoint = useMemo(() => {
- return info?.endpoints.find(a => a.name == "Best");
+ return info?.endpoints.find(a => a.name == "Best")
+ ?? info?.endpoints[0];
}, [info]);
const rate = useRates("BTCUSD");
const exampleCost = rate.ask * (exampleHours * (defaultEndpoint?.rate ?? 0) * 60) * 1e-8;