Hyperlinkv0.8.0-beta.28

MutableRef

MutableRef.toggleconsteffect/MutableRef.ts:822
(self: MutableRef<boolean>): MutableRef<boolean>

Switches a boolean MutableRef between true and false, then returns the reference.

When to use

Use when you need an in-place boolean MutableRef toggle that returns the same MutableRef.

Example (Toggling boolean refs)

import { MutableRef } from "effect"

const flag = MutableRef.make(false)

// Toggle the flag
MutableRef.toggle(flag)
console.log(MutableRef.get(flag)) // true

// Toggle again
MutableRef.toggle(flag)
console.log(MutableRef.get(flag)) // false

// Useful for state switches
const isVisible = MutableRef.make(true)
MutableRef.toggle(isVisible) // Hide
console.log(MutableRef.get(isVisible)) // false

// Toggle button implementation
const darkMode = MutableRef.make(false)
const toggleDarkMode = () => {
  MutableRef.toggle(darkMode)
  console.log(`Dark mode: ${MutableRef.get(darkMode) ? "ON" : "OFF"}`)
}

toggleDarkMode() // "Dark mode: ON"
toggleDarkMode() // "Dark mode: OFF"

// Returns the reference for chaining
const result = MutableRef.toggle(flag)
console.log(result === flag) // true
boolean
export const toggle = (self: MutableRef<boolean>): MutableRef<boolean> => update(self, (_) => !_)