Giter Club home page Giter Club logo

Comments (3)

raduncicen avatar raduncicen commented on June 5, 2024

I am experiencing the same issue

from swift-composable-architecture.

mbrandonw avatar mbrandonw commented on June 5, 2024

Hi @heoblitz, this is happening because effect actions that emit actions immediately (such as is the case with Effect.send) are handled differently than asynchronous effect actions. The synchronous action is processed immediately in the same call stack as when the original action was sent, and so I don't believe there is a way to process that action with an animation.

Note that this doesn't have anything to do with Effect.publisher vs Effect.run. It entirely has to do with synchronous actions from effects. If you update your action like so:

return .publisher {
  Just(.changeShowingDetailView)
    .delay(for: 0, scheduler: DispatchQueue.main)
}
.animation(.default)

…it will also work.

I'm not really sure there is anything the library can do to change this behavior. Our choice to process synchronous actions in the same call stack as when the original action was sent is due to people relying and expecting that kind of behavior. Breaking that expectation will lead to a lot of problems.

I'm inclined to convert this to a discussion since I don't think the library can really do anything to remedy this, and there are simple workarounds. How does that sound?

from swift-composable-architecture.

heoblitz avatar heoblitz commented on June 5, 2024

@mbrandonw Thanks for the clarification.

It's a minor comment, but it would be nice to have the publisher animation usage in the documentation or comments.

As you say, it would be great to close the issue and turn it into a discussion!

from swift-composable-architecture.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.