plugins/aks-desktop: Fix components to separate logic from presentation with tests and docs (umbrella issue)
- Dominant language
- TypeScript
- Stars
- 102
- Forks
- 25
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 22
Description
Many components mix up presentation and other logic, and could use some separation.
This is an umbrella issue, see sub issues.
This makes it easier to test both the presentation and the logic. As well it makes it easier to understand, change and maintain.
- [x] investigate which components especially need this done (the ones below are a good start)
- [x] get full list of components
- [x] estimated ~3-4 days per component (tested, documented and reviewed)
- [x] ~2 days (DeployButton, LogsTab, DeployWizard, ScalingCard, MetricsCard)
- [x] ~4 days (AzureProfilePage, AzureLoginPage, RegisterAKSClusterDialog, BasicsStep, AKSProjectDeleteButton)
- [x] ~5 days (InfoTab, ScalingTab, MetricsTab, ImportAKSProjects, CreateAKSProject)
---
Note: Each component has error and loading states.
---
Document all the code (functions, interfaces, components, etc) with tsdoc.
Notes:
- see https://tsdoc.org/ if you are not familiar.
- All props should be exported interfaces (because easier for storybooks)
- Please don't write things like for the color prop docs like "the color" but instead write any info people might need. Like "background color as hex, note to check accessibility".
- rename to be self documenting as well if it helps. eg, instead of col, backgroundColor or backgroundHexColor (if it needs to be hex).
- Use decorators like "@see" and "@example" where it matters. https://tsdoc.org/
---
Estimate: 11 weeks
Contributor guide
Research direction
Start by reviewing the component list and its sub-issues, beginning with the named components such as DeployButton, LogsTab, and DeployWizard. Read the existing component implementations and tests to identify presentation and logic boundaries. Done means the selected components separate those concerns, include tests for their states, and have documented TypeScript interfaces, functions, and components with TSDoc.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, documentation, testing
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100