Files
standardnotes-app-web/app/assets/javascripts/directives/functional/click-outside.js
2020-03-23 19:59:55 -05:00

41 lines
1.2 KiB
JavaScript

/* @ngInject */
export function clickOutside($document) {
return {
restrict: 'A',
replace: false,
link: function ($scope, $element, attrs) {
// Causes memory leak as-is:
// let didApplyClickOutside = false;
// $scope.$on('$destroy', () => {
// attrs.clickOutside = null;
// $element.unbind('click', $scope.onElementClick);
// $document.unbind('click', $scope.onDocumentClick);
// $scope.onElementClick = null;
// $scope.onDocumentClick = null;
// });
// $scope.onElementClick = (event) => {
// didApplyClickOutside = false;
// if (attrs.isOpen) {
// event.stopPropagation();
// }
// };
// $scope.onDocumentClick = (event) => {
// /* Ignore click if on SKAlert */
// if (event.target.closest('.sk-modal')) {
// return;
// }
// if (!didApplyClickOutside) {
// $scope.$apply(attrs.clickOutside);
// didApplyClickOutside = true;
// }
// };
// $element.bind('click', $scope.onElementClick);
// $document.bind('click', $scope.onDocumentClick);
}
};
}