diff --git a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx index 0f8de7f..3be684f 100644 --- a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx +++ b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx @@ -16,8 +16,15 @@ interface PluginDetailsModalProps { onOpenChange: () => void; } +enum ValidationState { + UNCHECKED, + VALID, + INVALID, + IN_PROGRESS +} + export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: PluginDetailsModalProps) { - const [configValidated, setConfigValidated] = useState(false); + const [configValidated, setConfigValidated] = useState(ValidationState.UNCHECKED); async function saveConfig(values: Record) { await PluginEndpoint.updateConfig(plugin.id, values); @@ -94,21 +101,36 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi

Configuration

-
{(plugin.configMetadata && plugin.configMetadata.length > 0) && <> - {configValidated && -

Validation successful

} +
+ {(() => { + switch (configValidated) { + case ValidationState.VALID: + return

+ Configuration valid +

; + case ValidationState.INVALID: + return

+ Configuration invalid +

; + default: + return null; + } + })()} @@ -131,7 +153,7 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi