overleaf/services/web/frontend/js/ide/review-panel/directives/reviewPanelToggle.js
Jessica Lawshe 30a2997b43 Merge pull request #2789 from overleaf/as-fix-no-undef
Enable no-undef linting rule for all frontend files and fix errors

GitOrigin-RevId: bf9c789a381af982bdece55a2f518a2b610c9202
2020-05-13 03:23:18 +00:00

50 lines
1.6 KiB
JavaScript

/* eslint-disable
max-len,
no-return-assign,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
define(['../../../base'], App =>
App.directive('reviewPanelToggle', () => ({
restrict: 'E',
scope: {
onToggle: '&',
ngModel: '=',
valWhenUndefined: '=?',
isDisabled: '=?',
onDisabledClick: '&?',
description: '@'
},
link(scope) {
if (scope.disabled == null) {
scope.disabled = false
}
scope.onChange = (...args) => scope.onToggle({ isOn: scope.localModel })
scope.handleClick = function() {
if (scope.disabled && scope.onDisabledClick != null) {
return scope.onDisabledClick()
}
}
scope.localModel = scope.ngModel
return scope.$watch('ngModel', function(value) {
if (scope.valWhenUndefined != null && value == null) {
value = scope.valWhenUndefined
}
return (scope.localModel = value)
})
},
template: `\
<fieldset class="rp-toggle" ng-click="handleClick();">
<legend class="sr-only">{{description}}</legend>
<input id="rp-toggle-{{$id}}" ng-disabled="isDisabled" type="checkbox" class="rp-toggle-hidden-input" ng-model="localModel" ng-change="onChange()" />
<label for="rp-toggle-{{$id}}" class="rp-toggle-btn"></label>
</fieldset>\
`
})))