rusackas commented on issue #35655: URL: https://github.com/apache/superset/issues/35655#issuecomment-3433660513
Agreed, memoization is key. While I don't _personally_ know if this step requires a SIP, _per se_, since it's essentially a foundational step toward making our frontend codebase just _actually USE React_ like it should have for years :) That said it's a great place to discuss this for now, so maybe I'll take a moment to say where I think this effort probably leads (with a SIP along the way, when we get to the point of adopting new packages/architecture). So where I believe this ought to go in future steps is as follows: 1) Get rid of all the sting-based controls in favor of components with props wherever needed 2) Get rid of the config object controls in favor of props based on the current config options 3) Get rid of this array-of-arrays layout method in favor of something like JSONForms (this would need a SIP) 4) Add a proper state management layer around these JSONForms-driven control panels 5) Make sure that all control panels use standardized sections/layouts, so they're all consistent 6) Add proper linting/testing to make sure people stick to the pattern 7) Update developer docs so people know how to build these things going forward 8) Consider this pattern for adoption in other forms throughout Superset (Alerts & Reports, database connection modals, etc) Somewhere along that roadmap, there's a very intricate step: we should also standardized FormData so that control panels don't have their current misaligned contols/keys (metric, metrics, secondaryMetric, etc... there are lots) so that our schemas used to build charts and queries are all consistent for both DevEx and AIEx. Long ramble, but what you're up to here is VERY important. Just... start small... hammer on bits and pieces in small PRs to make sure our patterns don't run into unexpected roadblocks or snowball to any giant PRs that are hard to merge :D -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
