Intertwined server and client components parts
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 36
- Avg merge
- 6d 17h
- Merged PRs (30d)
- 7
Description
Description
Some client components are composed of parts bound by hooks or callbacks, and other parts, which does not contain interactive elements. Therefore, each of them could be divided into two separte components:
- One with the part connected to hooks, callbacks, event handlers etc., which would have
use clientsentence at the top of its file. - Another one with the part which could be easily rendered on server side, i.e. headers, subheaders, descriptions.
After this split, these components could be combined in one component passed to the server side.
Steps to reproduce
One example of such component:
- Go into the
/src/component-library/pages/Rule/approve/ApproveRule.tsx. - Look at its structure and distinguish between the part containing headers and tips, and the part with interactive elements.
Rucio WebUI Version
No response
Additional Information
These problem occur in many components, not only in the example provided above.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with /src/component-library/pages/Rule/approve/ApproveRule.tsx and inspect how its headers and tips are mixed with hooks, callbacks, and other interactive elements. Identify similar intertwined components before changing scope. Done means the static portions can render on the server while interactive portions remain in client components, with the parts composed together.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100