Update dependency jsdom to v29 - autoclosed #51

Closed
renovate-bot wants to merge 52 commits from renovate/jsdom-29.x into master
Showing only changes of commit 054f8773f0 - Show all commits
+29
View File
@@ -366,6 +366,35 @@ and its scoped lifecycle can restart with the new environment. For services that
should not trigger that behavior, pass their tags with `Component.withOptions({ should not trigger that behavior, pass their tags with `Component.withOptions({
nonReactiveTags: [...] })`. nonReactiveTags: [...] })`.
## Provide Services To A Subtree
Use `Component.useContextFromLayer` when an Effect-FC component should provide
extra services to another Effect-FC component. It turns a `Layer` into a runtime
context that can be provided to `.use`.
```tsx title="src/GreetingPageView.tsx"
import { Effect } from "effect"
import { Component } from "effect-fc"
import { GreetingView } from "./Greeting"
import { GreetingService } from "./services"
const GreetingLive = GreetingService.Default({
greet: (name: string) => `Welcome, ${name}`,
})
export const GreetingPageView = Component.make("GreetingPage")(function* () {
const context = yield* Component.useContextFromLayer(GreetingLive)
const Greeting = yield* Effect.provide(GreetingView.use, context)
return <Greeting name="Effect" />
})
```
The layer passed to `useContextFromLayer` should be stable. If a new layer value
is created on every render, Effect-FC has to build a new context, which can
cause unnecessary re-renders and scoped lifecycle restarts. Define static layers
outside the component, or memoize layers that depend on React props or state.
## Where To Go Next ## Where To Go Next
Once the runtime and component boundary are in place, the rest of the library Once the runtime and component boundary are in place, the rest of the library