influxdata / influxdata/giraffe
Ease the responsibilities of PlotEnv
- Dominant language
- TypeScript
- Stars
- 189
- Forks
- 33
- Avg merge
- 3d 15h
- Merged PRs (30d)
- 4
Description
### Background
[`PlotEnv`](http://github.com/influxdata/giraffe/blob/master/giraffe/src/utils/usePlotEnv.ts#L14), bless its heart, is just overworked and too darn busy. It has too many responsibilities, it does too much, and it's a big coupled, tangled dependency of everything.
It's not exactly clear what needs to be done. This will be exploratory. https://miro.com/app/board/o9J_lfLL9VU=/ is a Miro board that goes a little bit into what `PlotEnv` seems to do.
### Potential Areas to Pursue
- It seems like `PlotEnv` handles generic environment configuration, and specific plot configurations for the current plot. Creating concepts for both of these and making them distinct _might_ be a good idea.
- It looks like `PlotEnv` also contains a configuration. It might be a good idea to reify this into a real concept.
- Transformations may need to be their own system, rather than something managed by `PlotEnv`
Contributor guide
Research direction
Start by reading giraffe/src/utils/usePlotEnv.ts and reviewing the linked Miro board to map PlotEnv's responsibilities and dependencies. Explore separating environment configuration, plot configuration, configuration concepts, and transformations; done means the responsibilities and proposed boundaries are clearly defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- data-visualization, frontend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100