From 7f5ddff568ce9f87bd45420cbd36690b190bd633 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 19 Aug 2023 00:14:54 -0700 Subject: [PATCH] Fixed: Allow decimals for Custom Format size Closes #5809 --- frontend/src/Components/Form/NumberInput.js | 2 +- frontend/src/Helpers/Props/inputTypes.js | 2 ++ src/Sonarr.Http/ClientSchema/Field.cs | 1 + src/Sonarr.Http/ClientSchema/SchemaBuilder.cs | 5 +++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/Components/Form/NumberInput.js b/frontend/src/Components/Form/NumberInput.js index 454aad997..cac274d95 100644 --- a/frontend/src/Components/Form/NumberInput.js +++ b/frontend/src/Components/Form/NumberInput.js @@ -41,7 +41,7 @@ class NumberInput extends Component { componentDidUpdate(prevProps, prevState) { const { value } = this.props; - if (value !== prevProps.value && !this.state.isFocused) { + if (!isNaN(value) && value !== prevProps.value && !this.state.isFocused) { this.setState({ value: value == null ? '' : value.toString() }); diff --git a/frontend/src/Helpers/Props/inputTypes.js b/frontend/src/Helpers/Props/inputTypes.js index d0aecd281..575dc698a 100644 --- a/frontend/src/Helpers/Props/inputTypes.js +++ b/frontend/src/Helpers/Props/inputTypes.js @@ -4,6 +4,7 @@ export const CHECK = 'check'; export const DEVICE = 'device'; export const KEY_VALUE_LIST = 'keyValueList'; export const MONITOR_EPISODES_SELECT = 'monitorEpisodesSelect'; +export const FLOAT = 'float'; export const NUMBER = 'number'; export const OAUTH = 'oauth'; export const PASSWORD = 'password'; @@ -30,6 +31,7 @@ export const all = [ DEVICE, KEY_VALUE_LIST, MONITOR_EPISODES_SELECT, + FLOAT, NUMBER, OAUTH, PASSWORD, diff --git a/src/Sonarr.Http/ClientSchema/Field.cs b/src/Sonarr.Http/ClientSchema/Field.cs index 4769b5a99..578c7bde5 100644 --- a/src/Sonarr.Http/ClientSchema/Field.cs +++ b/src/Sonarr.Http/ClientSchema/Field.cs @@ -21,6 +21,7 @@ namespace Sonarr.Http.ClientSchema public string Hidden { get; set; } public PrivacyLevel Privacy { get; set; } public string Placeholder { get; set; } + public bool IsFloat { get; set; } public Field Clone() { diff --git a/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs b/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs index 4f1bb8383..8d2392f2e 100644 --- a/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs +++ b/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs @@ -140,6 +140,11 @@ namespace Sonarr.Http.ClientSchema field.Hidden = fieldAttribute.Hidden.ToString().FirstCharToLower(); } + if (fieldAttribute.Type is FieldType.Number && propertyInfo.PropertyType == typeof(double)) + { + field.IsFloat = true; + } + var valueConverter = GetValueConverter(propertyInfo.PropertyType); result.Add(new FieldMapping