Possible settings types are visible here: https://github.com/ItsRiprod/deskthing-types/blob/master/src/apps/appSettings.ts
I propose to make settings completely customizable using some JSON schema and dynamically generating form based on that.
There are many benefits to this solution, like:
- User might define validation
- User might create conditional settings
- Users might create nested settings
- Available settings, schema etc will be easy to version, migrate on update etc
- It's industry standard
Most of the work will be done by external libraries like https://github.com/rjsf-team/react-jsonschema-form which will render custom solution obsolete.
I wanted to create Streamdeck where user would be able to assign shortcuts by actually pressing buttons, not by typing them by hand into text input.
There are also macros, that could work in the same way but we would define this field as an array in our schema.
Overall it gives much more freedom, has greater expressibility, and is better solution in the long run
Possible settings types are visible here: https://github.com/ItsRiprod/deskthing-types/blob/master/src/apps/appSettings.ts
I propose to make settings completely customizable using some JSON schema and dynamically generating form based on that.
There are many benefits to this solution, like:
Most of the work will be done by external libraries like https://github.com/rjsf-team/react-jsonschema-form which will render custom solution obsolete.
I wanted to create Streamdeck where user would be able to assign shortcuts by actually pressing buttons, not by typing them by hand into text input.
There are also macros, that could work in the same way but we would define this field as an array in our schema.
Overall it gives much more freedom, has greater expressibility, and is better solution in the long run