This commit is contained in:
lx
2026-07-06 14:01:11 -04:00
commit c4f97d729d
16468 changed files with 935321 additions and 0 deletions
@@ -0,0 +1,53 @@
local CorePackages = game:GetService("CorePackages")
local Roact = require(CorePackages.Roact)
local Modalifier = Roact.Component:extend("Modalifier")
function Modalifier:init()
self.state = {
ContentAbsolutePosition = Vector2.new(0, 0),
Showing = false,
}
end
function Modalifier:render()
local visibleChildren = {}
if self.state.Showing then
visibleChildren = {
content = self.props.Render(self.state.ContentAbsolutePosition),
}
end
return Roact.createElement("Frame", {
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
[Roact.Change.AbsolutePosition] = function(instance)
spawn(function()
self:setState({
ContentAbsolutePosition = instance.AbsolutePosition,
Showing = true,
})
end)
end,
}, {
Portal = Roact.createElement(Roact.Portal, {
-- Future redesign strongly suggested here: https://jira.roblox.com/browse/CLILUACORE-287
target = self.props.Window,
}, {
Curtain = Roact.createElement("TextButton", {
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Text = "",
[Roact.Event.Activated] = function()
self.props.OnClosed()
end,
}, visibleChildren),
}),
})
end
return Modalifier