local Rojo = script:FindFirstAncestor("Rojo") local Plugin = Rojo.Plugin local Roact = require(Rojo.Roact) local Dictionary = require(Plugin.Dictionary) local StudioPluginContext = require(script.Parent.StudioPluginContext) local e = Roact.createElement local StudioPluginAction = Roact.Component:extend("StudioPluginAction") function StudioPluginAction:init() self.pluginAction = self.props.plugin:CreatePluginAction( self.props.name, self.props.title, self.props.description, self.props.icon, self.props.bindable ) self.pluginAction.Triggered:Connect(self.props.onTriggered) end function StudioPluginAction:render() return nil end function StudioPluginAction:willUnmount() self.pluginAction:Destroy() end local function StudioPluginActionWrapper(props) return e(StudioPluginContext.Consumer, { render = function(plugin) return e(StudioPluginAction, Dictionary.merge(props, { plugin = plugin, })) end, }) end return StudioPluginActionWrapper