Skip to main content

useWidgetId

The useWidgetId hook gives you a way to reference the active widget node in event handlers like onClick. It returns a node id which can be used to retrieve and identify the active WidgetNode via the plugin API (eg. figma.getNodeById).

Signature

useWidgetId(): string

Remarks

caution

Note that figma.getNodeById shouldn’t be called when rendering a widget (this will throw an error). Instead, this should be used inside event handlers where using the plugin API is allowed. See the Rendering Code for more details.

Usage Example

useWidgetId example
const { widget } = figma
const { Text, useWidgetId } = widget

function UseWidgetIdExample() {
const widgetId = useWidgetId()

return (
<Text
onClick={() => {
const widgetNode = figma.getNodeById(widgetId) as WidgetNode;
const clonedWidget = widgetNode.clone();

// Position the cloned widget beside this widget
widgetNode.parent!.appendChild(clonedWidget);
clonedWidget.x = widgetNode.x + widgetNode.width + 50;
clonedWidget.y = widgetNode.y;
}}
>
Make a copy
</Text>
)
}

widget.register(UseWidgetIdExample)