Skip to content
Source
Sign inSign up

settleAndAdvance.ts

19 lines656 Bytes

1import type { ScopedThreadRef } from "@t3tools/contracts";
2​
3type SettleAndAdvance = (threadRef: ScopedThreadRef) => void;
4​
5let registeredSettleAndAdvance: SettleAndAdvance | null = null;
6​
7export function registerSettleAndAdvance(handler: SettleAndAdvance): () => void {
8 registeredSettleAndAdvance = handler;
9 return () => {
10 if (registeredSettleAndAdvance === handler) registeredSettleAndAdvance = null;
11 };
13​
14/** False means no sidebar is mounted; settle in place. */
15export function settleAndAdvance(threadRef: ScopedThreadRef): boolean {
16 if (!registeredSettleAndAdvance) return false;
17 registeredSettleAndAdvance(threadRef);
18 return true;