TanStack
API Reference

FocusManager

Defined in: packages/query-core/src/focusManager.ts:14

The FocusManager manages the focus state within TanStack Query.

It can be used to change the default event listeners or to manually change the focus state.

Extends

  • Subscribable<Listener>

Properties

PropertyModifierType
listenersprotectedSet<Listener>

Methods

hasListeners()

ts
hasListeners(): boolean;

Defined in: packages/query-core/src/subscribable.ts:41

Returns true while at least one listener is registered, false once they have all unsubscribed.

Returns

boolean

Inherited from

ts
Subscribable.hasListeners

isFocused()

ts
isFocused(): boolean;

Defined in: packages/query-core/src/focusManager.ts:128

isFocused can be used to get the current focus state.

Returns

boolean


onFocus()

ts
onFocus(): void;

Defined in: packages/query-core/src/focusManager.ts:118

onFocus notifies all subscribed listeners with the current focus state.

Returns

void


onSubscribe()

ts
protected onSubscribe(): void;

Defined in: packages/query-core/src/focusManager.ts:39

Returns

void

Overrides

ts
Subscribable.onSubscribe

onUnsubscribe()

ts
protected onUnsubscribe(): void;

Defined in: packages/query-core/src/focusManager.ts:45

Returns

void

Overrides

ts
Subscribable.onUnsubscribe

setEventListener()

ts
setEventListener(setup: SetupFn): void;

Defined in: packages/query-core/src/focusManager.ts:77

setEventListener can be used to set a custom event listener that will be used to determine the focus state. The provided setup function receives a setFocused callback: call it with a boolean to manually set the focus state, or with no arguments to re-evaluate the current focus state and notify subscribers.

Parameters

setup

SetupFn

Returns

void

Example

ts
import { focusManager } from '@tanstack/query-core'

focusManager.setEventListener((handleFocus) => {
  const listener = () => handleFocus()
  // Listen to visibilitychange
  if (typeof window !== 'undefined' && window.addEventListener) {
    window.addEventListener('visibilitychange', listener, false)
  }

  return () => {
    // Be sure to unsubscribe if a new handler is set
    window.removeEventListener('visibilitychange', listener)
  }
})

setFocused()

ts
setFocused(focused?: boolean): void;

Defined in: packages/query-core/src/focusManager.ts:107

setFocused can be used to manually set the focus state. Set undefined to fall back to the default focus check.

Parameters

focused?

boolean

Returns

void

Example

ts
import { focusManager } from '@tanstack/query-core'

// Set focused
focusManager.setFocused(true)

// Set unfocused
focusManager.setFocused(false)

// Fallback to the default focus check
focusManager.setFocused(undefined)

subscribe()

ts
subscribe(listener: Listener): () => void;

Defined in: packages/query-core/src/subscribable.ts:27

Registers a listener to be called on every update this object notifies about. Returns a function that removes the listener again — call it to stop listening. The base class never drops a listener on its own, though some subclasses clear all of theirs in destroy().

Parameters

listener

Listener

Called on each update, with whatever the subclass passes to its subscribers.

Returns

ts
(): void;
Returns

void

Example

ts
const unsubscribe = subscribable.subscribe(() => {
  // react to the update
})

unsubscribe()

Inherited from

ts
Subscribable.subscribe