mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
581d9ec925
- removed lots of console.logs - working on the auto scrol, doesn't quite work yet
34 lines
743 B
CoffeeScript
34 lines
743 B
CoffeeScript
define [
|
|
"base"
|
|
], (App) ->
|
|
|
|
fakeNgModel = (initValue) ->
|
|
$setViewValue: (value) ->
|
|
@$viewValue = value
|
|
return
|
|
|
|
$viewValue: initValue
|
|
|
|
App.directive "scrollGlue", ->
|
|
return {
|
|
|
|
priority: 1
|
|
require: ["?ngModel"]
|
|
restrict: "A"
|
|
|
|
link: (scope, $el, attrs, ctrls) ->
|
|
scrollToBottom = ->
|
|
el.scrollTop = el.scrollHeight
|
|
|
|
shouldActivateAutoScroll = ->
|
|
el.scrollTop + el.clientHeight + 1 >= el.scrollHeight
|
|
|
|
el = $el[0]
|
|
ngModel = ctrls[0] or fakeNgModel(true)
|
|
scope.$watch ->
|
|
scrollToBottom() if ngModel.$viewValue
|
|
|
|
$el.bind "scroll", ->
|
|
activate = shouldActivateAutoScroll()
|
|
scope.$apply ngModel.$setViewValue.bind(ngModel, activate) if activate isnt ngModel.$viewValue
|
|
}
|