Issue with tweening UI Offset

Hi, I am trying to make a level progress bar that changes depending on the max level etc. When I call the function, I pass through either true or false, true meaning to increment up, false meaning to increment down. Incrementing up works, but when I pass through false, it continues to tween up.

local function manageProgress(upOrDown)
	print(tostring(upOrDown))
	progBar.Visible = true
	local incrementUp
	
	if gameLevel == 0 then
		incrementUp = UIBarMaxSize / levelRequirements.Level0.RequiredPoints
	elseif gameLevel == 1 then
		incrementUp = UIBarMaxSize / levelRequirements.Level1.RequiredPoints
	elseif gameLevel == 2 then
		incrementUp = UIBarMaxSize / levelRequirements.Level2.RequiredPoints
	end
	
	warn(incrementUp)
	local newOffset = 0
	
	if upOrDown == true then
		newOffset = progBar.Size.X.Offset + incrementUp
	else
		newOffset = progBar.Size.X.Offset - incrementUp
	end
	
	print(newOffset)
	
	local newSize = UDim2.new(
		progBar.Size.X.Scale,
		newOffset,
		progBar.Size.Y.Scale,
		progBar.Size.Y.Offset
	)
	
	progBar:TweenSize(
		newSize,
		Enum.EasingDirection.Out,
		Enum.EasingStyle.Elastic,
		0.25
	)
end```