39 lines · 1.2 KB · TypeScript
RawDownload
import type { MobileThemeId } from "../../lib/mobileTheme";import type { ShowcaseScene } from "./nativeShowcaseScene"; export type ShowcaseRenderSignal = Readonly<{  scene: ShowcaseScene;  themeId: MobileThemeId;}>; const listeners = new Set<() => void>();let renderSignal: ShowcaseRenderSignal | null = null; export function getShowcaseRenderSignal(): ShowcaseRenderSignal | null {  return renderSignal;} export function subscribeToShowcaseRenderSignal(listener: () => void): () => void {  listeners.add(listener);  return () => listeners.delete(listener);} export function reportShowcaseSceneRendered(signal: ShowcaseRenderSignal): void {  renderSignal = signal;  for (const listener of listeners) listener();} export function clearShowcaseRenderSignal(): void {  if (renderSignal === null) return;  renderSignal = null;  for (const listener of listeners) listener();} export function isShowcaseNativeContentReady(input: {  readonly scene: ShowcaseScene;  readonly themeId: MobileThemeId;  readonly renderSignal: ShowcaseRenderSignal | null;}): boolean {  if (input.scene !== "review") return true;  return input.renderSignal?.scene === "review" && input.renderSignal.themeId === input.themeId;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t