| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /* 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
- * DS103: Rewrite code to no longer use __guard__
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- import App from '../../../base'
- export default App.controller('ChatButtonController', function($scope, ide) {
- let clearNewMessageNotification
- $scope.toggleChat = function() {
- $scope.ui.chatOpen = !$scope.ui.chatOpen
- return $scope.resetUnreadMessages()
- }
- $scope.unreadMessages = 0
- $scope.resetUnreadMessages = () => ($scope.unreadMessages = 0)
- $scope.$on('chat:resetUnreadMessages', e => $scope.resetUnreadMessages())
- function handleNewMessage(message) {
- if (message != null) {
- if (
- __guard__(message != null ? message.user : undefined, x => x.id) !==
- ide.$scope.user.id
- ) {
- if (!$scope.ui.chatOpen) {
- $scope.$applyAsync(() => {
- $scope.unreadMessages += 1
- })
- }
- flashTitle()
- }
- }
- }
- $scope.$on('chat:newMessage', (e, message) => handleNewMessage(message))
- window.addEventListener('Chat.MessageReceived', ({ detail: { message } }) =>
- handleNewMessage(message)
- )
- let focussed = true
- let newMessageNotificationTimeout = null
- let originalTitle = null
- $(window).on('focus', function() {
- clearNewMessageNotification()
- return (focussed = true)
- })
- $(window).on('blur', () => (focussed = false))
- var flashTitle = function() {
- if (!focussed && newMessageNotificationTimeout == null) {
- let changeTitle
- if (!originalTitle) {
- originalTitle = window.document.title
- }
- return (changeTitle = () => {
- if (window.document.title === originalTitle) {
- window.document.title = 'New Message'
- } else {
- window.document.title = originalTitle
- }
- return (newMessageNotificationTimeout = setTimeout(changeTitle, 800))
- })()
- }
- }
- return (clearNewMessageNotification = function() {
- clearTimeout(newMessageNotificationTimeout)
- newMessageNotificationTimeout = null
- if (originalTitle != null) {
- return (window.document.title = originalTitle)
- }
- })
- })
- function __guard__(value, transform) {
- return typeof value !== 'undefined' && value !== null
- ? transform(value)
- : undefined
- }
|