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)