Avoid redundant initialisation of TypedInput type #3263
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reported on the forum, if a TypedInput is initialised with a list of types where the first type in the list has no value (eg, timestamp), but the node property is a different type with value (eg
str
), then the TI gets the right type, but the value is blank.This is happening because when the TI is initialised, it first sets the types, which causes the type to be primed as the first in the list (
timestamp
). It then applies the actual type (str
), which is seen as a change in type from no-value to value - and it restores the 'old' value which is blank - overwriting the right value that was already there.The fix is to not set the
type
when setting thetypes
list if its part of the initialisation of the whole widget - because we know we'll be setting it to the right type a few lines later.