forked from rojo-rbx/rojo
51 lines
1.4 KiB
Lua
51 lines
1.4 KiB
Lua
local Rojo = script:FindFirstAncestor("Rojo")
|
|
local Plugin = Rojo.Plugin
|
|
local Packages = Rojo.Packages
|
|
|
|
local Roact = require(Packages.Roact)
|
|
|
|
local Assets = require(Plugin.Assets)
|
|
local Theme = require(Plugin.App.Theme)
|
|
local bindingUtil = require(Plugin.App.bindingUtil)
|
|
|
|
local e = Roact.createElement
|
|
|
|
local function ScrollingFrame(props)
|
|
return Theme.with(function(theme)
|
|
return e("ScrollingFrame", {
|
|
ScrollBarThickness = 9,
|
|
ScrollBarImageColor3 = theme.ScrollBarColor,
|
|
ScrollBarImageTransparency = props.transparency:map(function(value)
|
|
return bindingUtil.blendAlpha({ 0.65, value })
|
|
end),
|
|
TopImage = Assets.Images.ScrollBar.Top,
|
|
MidImage = Assets.Images.ScrollBar.Middle,
|
|
BottomImage = Assets.Images.ScrollBar.Bottom,
|
|
|
|
ElasticBehavior = Enum.ElasticBehavior.Always,
|
|
ScrollingDirection = props.scrollingDirection or Enum.ScrollingDirection.Y,
|
|
|
|
Size = props.size,
|
|
Position = props.position,
|
|
AnchorPoint = props.anchorPoint,
|
|
CanvasSize = props.contentSize:map(function(value)
|
|
return UDim2.new(
|
|
0,
|
|
if (props.scrollingDirection and props.scrollingDirection ~= Enum.ScrollingDirection.Y)
|
|
then value.X
|
|
else 0,
|
|
0,
|
|
value.Y
|
|
)
|
|
end),
|
|
|
|
BorderSizePixel = 0,
|
|
BackgroundTransparency = 1,
|
|
|
|
[Roact.Change.AbsoluteSize] = props[Roact.Change.AbsoluteSize],
|
|
}, props[Roact.Children])
|
|
end)
|
|
end
|
|
|
|
return ScrollingFrame
|