Create a solid UI for the new Panels design
Use the lessons that we've learned over the past (X) years while maintaining dialogs
Work towards a "standard" for React/TS development on Pro2-UI
Determine which systems no longer serve us
maintain = debug, update, extend (for our purposes)
Siloed knowledge
Who is setting state? Where? How?
maintain = debug, update, extend (for our purposes)
A framework with lots of answers on the web and helpful debugging tools
Safety
Bonus: Nice DevEx
"code should look like it was written by a single individual"
Example: new API endpoint
There's a single way to do these things! (for the most part)
able to form a simple mental model of its behavior
Huxley --- [///////////~~MAGIC~~/////////] ---> Working Dialog
Huxley --- [/~MAGIC~/] ---> Working Dialog
(responsibilities go to components)
Design Panel (Home/Nav)
Customizations Panel (Detail)
Descriptors contain info about laying out a panel but not the actual user data!
Metadata: "create a row with a slider linking to theme.masthead.height"
Data: the user's value of `theme.masthead.height` is 86
Inputs
(building blocks of panels)
Metadata
(descriptors/specs)
onChangeAndConfirm(path, newValue)
Redux Store (Data)
Ractive Store
documentation!
integrations with other open source tools
debugging tools - amazing to see values in the devtools window - I.e. what does the spec look like for this specific panel row
people have run into the same problems and have documented solutions
easier to reuse a lib someone already created vs having to create our own
Take aways post-panels
CSS Modules with 3rd party components is dangerous
Typescript is the best
Productivity sped up after we established a component pattern
A few old systems
Nice to have: Integration and/or screenshot tests
Nice to have: Single source of truth for validation values
Take aways post-panels