Fix plugin config UI: use JSONForms uiSchema format, not RJSF
Navidrome's plugin config editor renders manifest.json's config.uiSchema
directly through @jsonforms/react (JsonForms component), not
react-jsonschema-form. The previous uiSchema ({"field": {"ui:widget":
"password"}}) is RJSF syntax, which JsonForms can't map to any
renderer, producing "No applicable renderer found" and blocking
plugin configuration/enabling entirely.
Replace it with a proper JSONForms UI schema (VerticalLayout of
Control elements referencing each property by JSON pointer), using
options.format: "password" on the two secret fields, matching how
Navidrome's own OutlinedTextRenderer picks the password input type.
Bump to 0.1.1.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018n5ffHCn5QUjpDtuWTk3fh
This commit is contained in:
+18
-3
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Scrobbled",
|
"name": "Scrobbled",
|
||||||
"author": "Matt Daubney",
|
"author": "Matt Daubney",
|
||||||
"version": "0.1.0",
|
"version": "0.1.1",
|
||||||
"description": "Scrobbles Navidrome playback to a self-hosted Scrobbled (Last.fm-compatible) server.",
|
"description": "Scrobbles Navidrome playback to a self-hosted Scrobbled (Last.fm-compatible) server.",
|
||||||
"website": "https://scrobbled.uk",
|
"website": "https://scrobbled.uk",
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@@ -44,8 +44,23 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uiSchema": {
|
"uiSchema": {
|
||||||
"scrobbled_password": { "ui:widget": "password" },
|
"type": "VerticalLayout",
|
||||||
"shared_secret": { "ui:widget": "password" }
|
"elements": [
|
||||||
|
{ "type": "Control", "scope": "#/properties/server_url" },
|
||||||
|
{ "type": "Control", "scope": "#/properties/api_key" },
|
||||||
|
{
|
||||||
|
"type": "Control",
|
||||||
|
"scope": "#/properties/shared_secret",
|
||||||
|
"options": { "format": "password" }
|
||||||
|
},
|
||||||
|
{ "type": "Control", "scope": "#/properties/scrobbled_username" },
|
||||||
|
{
|
||||||
|
"type": "Control",
|
||||||
|
"scope": "#/properties/scrobbled_password",
|
||||||
|
"options": { "format": "password" }
|
||||||
|
},
|
||||||
|
{ "type": "Control", "scope": "#/properties/navidrome_username" }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "navidromescrobbledplugin"
|
name = "navidromescrobbledplugin"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
license = "BSD-3-Clause"
|
license = "BSD-3-Clause"
|
||||||
license-files = ["LICENSE"]
|
license-files = ["LICENSE"]
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ requires-python = ">=3.13"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "navidromescrobbledplugin"
|
name = "navidromescrobbledplugin"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
|
|
||||||
[package.dev-dependencies]
|
[package.dev-dependencies]
|
||||||
|
|||||||
Reference in New Issue
Block a user