# setOpen

Sets desired dialog visibility.

## Signatures

```ts
export declare function setOpen<E, R>(state: RefSubject.RefSubject<State, E, R>, open: boolean): Effect.Effect<State, E, R>;
```

## Why

Explicit state transitions stay outside renderers and retain Effect typing.

## Ownership and lifetime

The Effect uses the existing RefSubject lifetime and acquires no resource.

## Examples

```ts
import { Effect } from "effect"
import * as Dialog from "@typed/ui/Dialog"

const program = Effect.gen(function* () {
  const state = yield* Dialog.makeState()
  yield* Dialog.setOpen(state, true)
})
```
