Function: defineWidget()
defineWidget(
id,content):Widget
Defined in: packages/core/src/passages/widget.ts:186
Factory function for creating Widget passages.
Identical in behaviour and signature to newWidget; it exists so that
every passage factory shares the define* prefix (defineStory,
defineInteractiveMap, defineWidget).
Important: When passing a function, it is always treated as a React
component and rendered via createElement. This ensures hooks work correctly
even in minified production builds where function names are mangled.
Parameters
id
string
Unique identifier for the widget
content
React node or React functional component to display
Returns
New Widget instance
Remarks
Widgets take no helper toolbox and no display props: they are ordinary React
trees, and Widget.display() accepts no arguments. Use Game.jumpTo()
directly for navigation inside a widget.
Example
import { defineWidget } from '@react-text-game/core';
// With ReactNode (static content)
const inventory = defineWidget('inventory', <InventoryComponent />);
// With React component (supports hooks)
const MyMenu = () => {
const [selected, setSelected] = useState(null);
return <MenuUI selected={selected} onSelect={setSelected} />;
};
const menu = defineWidget('menu', MyMenu);
See
newWidget - Previous name for the same factory, still supported