From 31b644c93933a2960dcdaaa5f2e410f26a47bc56 Mon Sep 17 00:00:00 2001
From: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date: Mon, 7 Nov 2022 10:36:47 -0800
Subject: [PATCH] fix navidrome nothing playing, simplify widget params

---
 src/widgets/navidrome/component.jsx | 16 ++++++++++++----
 src/widgets/navidrome/widget.js     |  2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/widgets/navidrome/component.jsx b/src/widgets/navidrome/component.jsx
index 343eb0fe7..360dac97e 100644
--- a/src/widgets/navidrome/component.jsx
+++ b/src/widgets/navidrome/component.jsx
@@ -11,11 +11,11 @@ export default function Component({ service }) {
 
   const { data: navidromeData, error: navidromeError } = useWidgetAPI(widget, "getNowPlaying");
 
-  if (navidromeError) {
+  if (navidromeError || navidromeData?.error || navidromeData?.["subsonic-response"]?.error) {
     return <Container error={t("widget.api_error")} />;
   }
 
-  if (!navidromeData || Object.keys(navidromeData["subsonic-response"].nowPlaying).length === 0) {
+  if (!navidromeData) {
     return (
       <Container service={service}>
         <Block label="navidrome.user" />
@@ -26,10 +26,18 @@ export default function Component({ service }) {
     );
   }
 
-  const nowPlaying = Object.values(navidromeData["subsonic-response"].nowPlaying.entry);
+  const nowPlaying = navidromeData["subsonic-response"].nowPlaying;
+  if (!nowPlaying.entry) {
+    // nothing playing
+    return (
+      <Container service={service} />
+    );
+  }
+
+  const nowPlayingEntries = Object.values(nowPlaying.entry);
   const songList = [];
 
-  nowPlaying.forEach(userPlay => {
+  nowPlayingEntries.forEach(userPlay => {
       const playing = (
         <Container service={service}>
           <Block label="navidrome.user" value={userPlay.username} />
diff --git a/src/widgets/navidrome/widget.js b/src/widgets/navidrome/widget.js
index 9b8614350..9d7c03d45 100644
--- a/src/widgets/navidrome/widget.js
+++ b/src/widgets/navidrome/widget.js
@@ -1,7 +1,7 @@
 import genericProxyHandler from "utils/proxy/handlers/generic";
 
 const widget = {
-  api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v={version}&c={client}&f=json",
+  api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v=1.16.1&c=homepage&f=json",
   proxyHandler: genericProxyHandler,
 
   mappings: {