Skip to main content

Block

@dopt/javascript / Exports / Block

Class: Block<T>

Type parameters

NameType
Tunknown

Hierarchy

Table of contents

Accessors

Methods

Accessors

type

get type(): "custom" | "card" | "modal" | "checklist" | "checklistItem" | "hints" | "hintsItem" | "tour" | "tourItem"

Returns

"custom" | "card" | "modal" | "checklist" | "checklistItem" | "hints" | "hintsItem" | "tour" | "tourItem"

Defined in

packages/@dopt/javascript/src/block.ts:91


kind

get kind(): "block"

Returns

"block"

Defined in

packages/@dopt/javascript/src/block.ts:95


sid

get sid(): string

Returns

string

Defined in

packages/@dopt/javascript/src/block.ts:99


uid

get uid(): string

Returns

string

Defined in

packages/@dopt/javascript/src/block.ts:103


version

get version(): number

Returns

number

Defined in

packages/@dopt/javascript/src/block.ts:107


state

get state(): Object

Returns the up-to-date state of this Block instance.

Returns

Object

The state of this instance.

NameType
activeboolean
enteredboolean
exitedboolean

Defined in

packages/@dopt/javascript/src/block.ts:116


transitioned

get transitioned(): T extends [string, ...string[]] ? Record<T[number], undefined | boolean> : Record<string, undefined | boolean>

Returns the up-to-date transitioned values for this Block instance.

Example

const block = dopt.block("HNWvcT78tyTwygnbzU6SW");
const firstTransitioned = block.transitioned['first-edge'];

In typescript, if a block is accessed with generics:

const block = dopt.block<['a-edge']>("HNWvcT78tyTwygnbzU6SW");

// this is valid
block.transitioned['a-edge'];

// this is invalid
block.transitioned['b-edge'];

Returns

T extends [string, ...string[]] ? Record<T[number], undefined | boolean> : Record<string, undefined | boolean>

The edges which have been transitioned for this instance. If the edge exists, it's value will be true / false, otherwise the value will be undefined.

Defined in

packages/@dopt/javascript/src/block.ts:143

Methods

field

field<V>(name): undefined | null | V

Gets the field with the name contained by this Block.

If Dopt is loading or Block does not have a field with the specified name, undefined is returned.

null is returned when the field has been explicitly configured in app.dopt.com to have an empty value.

Type parameters

NameType
Vextends null | string | number | boolean | Record<string, any>[]

Parameters

NameType
namestring

Returns

undefined | null | V

Defined in

packages/@dopt/javascript/src/block.ts:68


transition

transition(...input): void

Transition this block. Will also update the state of blocks within this flow, as appropriate. This function must be called with at least one transition.

Example

const block = dopt.block("HNWvcT78tyTwygnbzU6SW");
// transitioning a single edge
block.transition('first-edge');

// transitioning multiple edges
block.transition('second-edge', 'third-edge');

In typescript, if a block is accessed with generics:

const block = dopt.block<['a-edge']>("HNWvcT78tyTwygnbzU6SW");

// this is valid
block.transition('a-edge');

// this is invalid
block.transition('b-edge');

Remarks

This function will update state with Dopt and trigger changes. Subscribe to the flows and blocks you care about to react to those changes.

Parameters

NameType
...inputT extends [string, ...string[]] ? [T[number], ...T[number][]] : [string, ...string[]]

Returns

void

void

Defined in

packages/@dopt/javascript/src/block.ts:181


subscribe

subscribe(listener): () => void

Subscribe to changes on this block.

Example

const block = dopt.block("HNWvcT78tyTwygnbzU6SW");
const unsubscribe = block.subscribe(async (block: Block) => {
if (block.state.exited) {
await showModal("Yay, you've completed your first step!");
unsubscribe();
}
});

Parameters

NameTypeDescription
listener(block: Block<T>) => voidThe listener function is called with this Block instance.

Returns

fn

A function which can be called to unsubscribe the listener.

▸ (): void

Returns

void

Defined in

packages/@dopt/javascript/src/block.ts:227