add gs
This commit is contained in:
+105
@@ -0,0 +1,105 @@
|
||||
local CorePackages = game:GetService("CorePackages")
|
||||
|
||||
local Roact = require(CorePackages.Roact)
|
||||
|
||||
local PromptState = require(script.Parent.Parent.Parent.PromptState)
|
||||
|
||||
local purchaseItem = require(script.Parent.Parent.Parent.Thunks.purchaseItem)
|
||||
local launchRobuxUpsell = require(script.Parent.Parent.Parent.Thunks.launchRobuxUpsell)
|
||||
local launchBuildersClubUpsell = require(script.Parent.Parent.Parent.Thunks.launchBuildersClubUpsell)
|
||||
|
||||
local ConfirmButton = require(script.Parent.ConfirmButton)
|
||||
local CancelButton = require(script.Parent.CancelButton)
|
||||
local OkButton = require(script.Parent.OkButton)
|
||||
|
||||
local withLayoutValues = require(script.Parent.Parent.Connection.withLayoutValues)
|
||||
|
||||
local connectToStore = require(script.Parent.Parent.Parent.connectToStore)
|
||||
|
||||
local CONFIRM_PURCHASE_KEY = "CoreScripts.PurchasePrompt.ConfirmPurchase.%s"
|
||||
|
||||
local PromptButtons = Roact.PureComponent:extend("PromptButtons")
|
||||
|
||||
function PromptButtons:render()
|
||||
return withLayoutValues(function(values)
|
||||
local layoutOrder = self.props.layoutOrder
|
||||
local onClose = self.props.onClose
|
||||
local promptState = self.props.promptState
|
||||
local price = self.props.price
|
||||
|
||||
local onBuy = self.props.onBuy
|
||||
local onRobuxUpsell = self.props.onRobuxUpsell
|
||||
local onBuildersClubUpsell = self.props.onBuildersClubUpsell
|
||||
|
||||
local children
|
||||
if promptState == PromptState.PurchaseComplete
|
||||
or promptState == PromptState.CannotPurchase
|
||||
or promptState == PromptState.Error
|
||||
then
|
||||
children = {
|
||||
UIPadding = Roact.createElement("UIPadding", {
|
||||
PaddingBottom = UDim.new(0, 4),
|
||||
}),
|
||||
OkButton = Roact.createElement(OkButton, {
|
||||
onClick = onClose,
|
||||
}),
|
||||
}
|
||||
else
|
||||
local confirmButtonStringKey = CONFIRM_PURCHASE_KEY:format("BuyNow")
|
||||
local leftButtonCallback = onBuy
|
||||
if price == 0 then
|
||||
confirmButtonStringKey = CONFIRM_PURCHASE_KEY:format("TakeFree")
|
||||
elseif promptState == PromptState.RobuxUpsell then
|
||||
confirmButtonStringKey = CONFIRM_PURCHASE_KEY:format("BuyRobux")
|
||||
leftButtonCallback = onRobuxUpsell
|
||||
elseif promptState == PromptState.BuildersClubUpsell then
|
||||
confirmButtonStringKey = CONFIRM_PURCHASE_KEY:format("UpgradeBuildersClub")
|
||||
leftButtonCallback = onBuildersClubUpsell
|
||||
end
|
||||
children = {
|
||||
ConfirmButton = Roact.createElement(ConfirmButton, {
|
||||
stringKey = confirmButtonStringKey,
|
||||
onClick = leftButtonCallback,
|
||||
}),
|
||||
CancelButton = Roact.createElement(CancelButton, {
|
||||
onClick = onClose,
|
||||
}),
|
||||
}
|
||||
end
|
||||
|
||||
return Roact.createElement("Frame", {
|
||||
LayoutOrder = layoutOrder,
|
||||
BackgroundTransparency = 1,
|
||||
BorderSizePixel = 0,
|
||||
Size = UDim2.new(1, 0, 0, values.Size.ButtonHeight)
|
||||
}, children)
|
||||
end)
|
||||
end
|
||||
|
||||
local function mapStateToProps(state)
|
||||
return {
|
||||
promptState = state.promptState,
|
||||
price = state.productInfo.price,
|
||||
}
|
||||
end
|
||||
|
||||
local function mapDispatchToProps(dispatch)
|
||||
return {
|
||||
onBuy = function()
|
||||
dispatch(purchaseItem())
|
||||
end,
|
||||
onRobuxUpsell = function()
|
||||
dispatch(launchRobuxUpsell())
|
||||
end,
|
||||
onBuildersClubUpsell = function()
|
||||
dispatch(launchBuildersClubUpsell())
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
PromptButtons = connectToStore(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps
|
||||
)(PromptButtons)
|
||||
|
||||
return PromptButtons
|
||||
Reference in New Issue
Block a user