overleaf/services/web/frontend/js/features/share-project-modal/controllers/react-share-project-modal-controller.js
Jakob Ackermann e959529828 Merge pull request #15129 from overleaf/mj-jpa-angular-parameters
[web] Explicitly name angular parameters

GitOrigin-RevId: 91beae68989d6c8122132b531a4338b116d87424
2023-10-16 08:04:25 +00:00

67 lines
1.8 KiB
JavaScript

import App from '../../../base'
import { react2angular } from 'react2angular'
import ShareProjectModal from '../components/share-project-modal'
import { rootContext } from '../../../shared/context/root-context'
import { listProjectInvites, listProjectMembers } from '../utils/api'
import { debugConsole } from '@/utils/debugging'
App.component(
'shareProjectModal',
react2angular(
rootContext.use(ShareProjectModal),
Object.keys(ShareProjectModal.propTypes)
)
)
export default App.controller('ReactShareProjectModalController', [
'$scope',
'eventTracking',
'ide',
function ($scope, eventTracking, ide) {
$scope.show = false
$scope.handleHide = () => {
$scope.$applyAsync(() => {
$scope.show = false
})
}
$scope.openShareProjectModal = () => {
eventTracking.sendMBOnce('ide-open-share-modal-once')
$scope.$applyAsync(() => {
$scope.show = true
})
}
ide.socket.on('project:membership:changed', data => {
if (data.members) {
listProjectMembers($scope.project._id)
.then(({ members }) => {
if (members) {
$scope.$applyAsync(() => {
$scope.project.members = members
})
}
})
.catch(err => {
debugConsole.error('Error fetching members for project', err)
})
}
if (data.invites) {
listProjectInvites($scope.project._id)
.then(({ invites }) => {
if (invites) {
$scope.$applyAsync(() => {
$scope.project.invites = invites
})
}
})
.catch(err => {
debugConsole.error('Error fetching invites for project', err)
})
}
})
},
])