solidjs-community / solidjs-community/solid-primitives
Extend `presence` to reach feature parity with `transition-group`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.6k
- Forks
- 162
- Avg merge
- 19h 40m
- Merged PRs (30d)
- 8
Description
Describe The Problem To Be Solved
presence is super helpful for transitioning between components without unmounting them. However, it is missing some features that are present in transition-group despite being useful in the same scenarios, mainly:
- Modes:
parallelandin-out - Callbacks for animation completion (instead of duration-based timeout)
- List transitions
Suggest A Solution
Update createPresence to match the API of createSwitchTransition. Add an additional hook, createPresenceList that matches the API of createListTransition. I don't anticipate any major difficulty in this because the implementation should mirror that of transition-group but I haven't looked into the source of either library too deeply yet.
I would be open to creating a PR for this as I will be building this functionality anyway as part of a private project.
Contributor guide
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 by reading the implementations and APIs of createPresence and createSwitchTransition, then compare them with createListTransition. Define how parallel and in-out modes, animation-completion callbacks, and list transitions should behave before changing the API. Done means createPresence matches createSwitchTransition and the new createPresenceList matches createListTransition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100