mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-21 13:15:50 +00:00
Slightly improve initial sync hangs (#1140)
This commit is contained in:
@@ -4,8 +4,6 @@ local Packages = Rojo.Packages
|
||||
|
||||
local Roact = require(Packages.Roact)
|
||||
|
||||
local Timer = require(Plugin.Timer)
|
||||
local PatchTree = require(Plugin.PatchTree)
|
||||
local Settings = require(Plugin.Settings)
|
||||
local Theme = require(Plugin.App.Theme)
|
||||
local TextButton = require(Plugin.App.Components.TextButton)
|
||||
@@ -24,7 +22,6 @@ function ConfirmingPage:init()
|
||||
self.containerSize, self.setContainerSize = Roact.createBinding(Vector2.new(0, 0))
|
||||
|
||||
self:setState({
|
||||
patchTree = nil,
|
||||
showingStringDiff = false,
|
||||
oldString = "",
|
||||
newString = "",
|
||||
@@ -32,28 +29,6 @@ function ConfirmingPage:init()
|
||||
oldTable = {},
|
||||
newTable = {},
|
||||
})
|
||||
|
||||
if self.props.confirmData and self.props.confirmData.patch and self.props.confirmData.instanceMap then
|
||||
self:buildPatchTree()
|
||||
end
|
||||
end
|
||||
|
||||
function ConfirmingPage:didUpdate(prevProps)
|
||||
if prevProps.confirmData ~= self.props.confirmData then
|
||||
self:buildPatchTree()
|
||||
end
|
||||
end
|
||||
|
||||
function ConfirmingPage:buildPatchTree()
|
||||
Timer.start("ConfirmingPage:buildPatchTree")
|
||||
self:setState({
|
||||
patchTree = PatchTree.build(
|
||||
self.props.confirmData.patch,
|
||||
self.props.confirmData.instanceMap,
|
||||
{ "Property", "Current", "Incoming" }
|
||||
),
|
||||
})
|
||||
Timer.stop()
|
||||
end
|
||||
|
||||
function ConfirmingPage:render()
|
||||
@@ -79,7 +54,7 @@ function ConfirmingPage:render()
|
||||
transparency = self.props.transparency,
|
||||
layoutOrder = 3,
|
||||
|
||||
patchTree = self.state.patchTree,
|
||||
patchTree = self.props.patchTree,
|
||||
|
||||
showStringDiff = function(oldString: string, newString: string)
|
||||
self:setState({
|
||||
|
||||
@@ -4,6 +4,8 @@ local Packages = Rojo.Packages
|
||||
|
||||
local Roact = require(Packages.Roact)
|
||||
|
||||
local Theme = require(Plugin.App.Theme)
|
||||
|
||||
local Spinner = require(Plugin.App.Components.Spinner)
|
||||
|
||||
local e = Roact.createElement
|
||||
@@ -11,11 +13,35 @@ local e = Roact.createElement
|
||||
local ConnectingPage = Roact.Component:extend("ConnectingPage")
|
||||
|
||||
function ConnectingPage:render()
|
||||
return e(Spinner, {
|
||||
position = UDim2.new(0.5, 0, 0.5, 0),
|
||||
anchorPoint = Vector2.new(0.5, 0.5),
|
||||
transparency = self.props.transparency,
|
||||
})
|
||||
return Theme.with(function(theme)
|
||||
return e("Frame", {
|
||||
Size = UDim2.new(1, 0, 1, 0),
|
||||
BackgroundTransparency = 1,
|
||||
}, {
|
||||
Spinner = e(Spinner, {
|
||||
position = UDim2.new(0.5, 0, 0.5, 0),
|
||||
anchorPoint = Vector2.new(0.5, 0.5),
|
||||
transparency = self.props.transparency,
|
||||
}),
|
||||
Text = if type(self.props.text) == "string" and #self.props.text > 0
|
||||
then e("TextLabel", {
|
||||
Text = self.props.text,
|
||||
Position = UDim2.new(0.5, 0, 0.5, 30),
|
||||
Size = UDim2.new(1, -40, 0.5, -40),
|
||||
AnchorPoint = Vector2.new(0.5, 0),
|
||||
TextXAlignment = Enum.TextXAlignment.Center,
|
||||
TextYAlignment = Enum.TextYAlignment.Top,
|
||||
RichText = true,
|
||||
FontFace = theme.Font.Thin,
|
||||
TextSize = theme.TextSize.Medium,
|
||||
TextColor3 = theme.SubTextColor,
|
||||
TextTruncate = Enum.TextTruncate.AtEnd,
|
||||
TextTransparency = self.props.transparency,
|
||||
BackgroundTransparency = 1,
|
||||
})
|
||||
else nil,
|
||||
})
|
||||
end)
|
||||
end
|
||||
|
||||
return ConnectingPage
|
||||
|
||||
Reference in New Issue
Block a user