solidjs-community / solidjs-community/solid-primitives

Extend `presence` to reach feature parity with `transition-group`

Open
#466 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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:

  1. Modes: parallel and in-out
  2. Callbacks for animation completion (instead of duration-based timeout)
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.