52 lines
1.2 KiB
Lua
52 lines
1.2 KiB
Lua
local CorePackages = game:GetService("CorePackages")
|
|
|
|
local Roact = require(CorePackages.Roact)
|
|
|
|
local ClickScamDetector = require(script.Parent.Parent.Parent.ClickScamDetector)
|
|
|
|
local Button = require(script.Parent.Button)
|
|
|
|
local withLayoutValues = require(script.Parent.Parent.Connection.withLayoutValues)
|
|
|
|
local CONFIRM_BUTTON = Enum.KeyCode.ButtonA
|
|
|
|
local ConfirmButton = Roact.Component:extend("ConfirmButton")
|
|
|
|
function ConfirmButton:init()
|
|
local onClick = self.props.onClick
|
|
|
|
self.activated = function()
|
|
if self.clickScamDetector:isClickValid() then
|
|
onClick()
|
|
end
|
|
end
|
|
|
|
self.clickScamDetector = ClickScamDetector.new({
|
|
buttonInput = CONFIRM_BUTTON,
|
|
initialDelay = 0.5,
|
|
})
|
|
end
|
|
|
|
function ConfirmButton:willUnmount()
|
|
self.clickScamDetector:destroy()
|
|
end
|
|
|
|
function ConfirmButton:render()
|
|
return withLayoutValues(function(values)
|
|
local stringKey = self.props.stringKey
|
|
|
|
return Roact.createElement(Button, {
|
|
font = Enum.Font.SourceSansBold,
|
|
imageUp = "ButtonUpLeft",
|
|
imageDown = "ButtonDownLeft",
|
|
gamepadButton = CONFIRM_BUTTON,
|
|
|
|
stringKey = stringKey,
|
|
size = UDim2.new(0.5, 0, 1, 0),
|
|
|
|
onClick = self.activated,
|
|
})
|
|
end)
|
|
end
|
|
|
|
return ConfirmButton |