App configuration fields of type number only allow inputting numeric values. However, if the user clears the field and clicks submit, Devvit silently sets the value to 0 without any indication. The user would not see this change unless they refresh the settings page.
For the app developer, this is impossible to handle when 0 is a valid value for the field. This breaks using input validation to make a field required since event.value = 0.
Potential Fix
settings.get() and settings.getAll() suggest that undefined is a valid value for settings:
Devvit should set fields of type number equal to undefined when the submitted field was empty. This will allow for using input validation to require the field when 0 is a valid value for the field.
Info
App configuration fields of type
number
only allow inputting numeric values. However, if the user clears the field and clicks submit, Devvit silently sets the value to0
without any indication. The user would not see this change unless they refresh the settings page.For the app developer, this is impossible to handle when
0
is a valid value for the field. This breaks using input validation to make a field required sinceevent.value = 0
.Potential Fix
settings.get()
andsettings.getAll()
suggest thatundefined
is a valid value for settings:https://github.com/reddit/devvit/blob/8ca9b5e50acee0e950467ef8be98e4d996d977f8/packages/public-api/src/types/settings.ts#L58
https://github.com/reddit/devvit/blob/8ca9b5e50acee0e950467ef8be98e4d996d977f8/packages/public-api/src/types/settings.ts#L46
Devvit should set fields of type
number
equal toundefined
when the submitted field was empty. This will allow for using input validation to require the field when0
is a valid value for the field.