mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-06-13 15:21:10 +00:00
Improved string diff viewer (#994)
This commit is contained in:
@@ -15,8 +15,10 @@ local VirtualScroller = Roact.Component:extend("VirtualScroller")
|
||||
function VirtualScroller:init()
|
||||
self.scrollFrameRef = Roact.createRef()
|
||||
self:setState({
|
||||
WindowSize = Vector2.new(),
|
||||
CanvasPosition = Vector2.new(),
|
||||
WindowSize = Vector2.zero,
|
||||
CanvasPosition = if self.props.canvasPosition
|
||||
then self.props.canvasPosition:getValue() or Vector2.zero
|
||||
else Vector2.zero,
|
||||
})
|
||||
|
||||
self.totalCanvas, self.setTotalCanvas = Roact.createBinding(0)
|
||||
@@ -41,6 +43,10 @@ function VirtualScroller:didMount()
|
||||
|
||||
local canvasPositionSignal = rbx:GetPropertyChangedSignal("CanvasPosition")
|
||||
self.canvasPositionChanged = canvasPositionSignal:Connect(function()
|
||||
if self.props.onCanvasPositionChanged then
|
||||
pcall(self.props.onCanvasPositionChanged, rbx.CanvasPosition)
|
||||
end
|
||||
|
||||
if math.abs(rbx.CanvasPosition.Y - self.state.CanvasPosition.Y) > 5 then
|
||||
self:setState({ CanvasPosition = rbx.CanvasPosition })
|
||||
self:refresh()
|
||||
@@ -134,8 +140,9 @@ function VirtualScroller:render()
|
||||
BackgroundColor3 = props.backgroundColor3 or theme.BorderedContainer.BackgroundColor,
|
||||
BorderColor3 = props.borderColor3 or theme.BorderedContainer.BorderColor,
|
||||
CanvasSize = self.totalCanvas:map(function(s)
|
||||
return UDim2.fromOffset(0, s)
|
||||
return UDim2.fromOffset(props.canvasWidth or 0, s)
|
||||
end),
|
||||
CanvasPosition = self.props.canvasPosition,
|
||||
ScrollBarThickness = 9,
|
||||
ScrollBarImageColor3 = theme.ScrollBarColor,
|
||||
ScrollBarImageTransparency = props.transparency:map(function(value)
|
||||
@@ -146,7 +153,7 @@ function VirtualScroller:render()
|
||||
BottomImage = Assets.Images.ScrollBar.Bottom,
|
||||
|
||||
ElasticBehavior = Enum.ElasticBehavior.Always,
|
||||
ScrollingDirection = Enum.ScrollingDirection.Y,
|
||||
ScrollingDirection = Enum.ScrollingDirection.XY,
|
||||
VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar,
|
||||
[Roact.Ref] = self.scrollFrameRef,
|
||||
}, {
|
||||
|
||||
Reference in New Issue
Block a user