react-share-project-modal-controller.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import App from '../../../base'
  2. import { react2angular } from 'react2angular'
  3. import ShareProjectModal from '../components/share-project-modal'
  4. import { rootContext } from '../../../shared/context/root-context'
  5. import { listProjectInvites, listProjectMembers } from '../utils/api'
  6. import { debugConsole } from '@/utils/debugging'
  7. App.component(
  8. 'shareProjectModal',
  9. react2angular(rootContext.use(ShareProjectModal), [
  10. 'animation',
  11. 'handleHide',
  12. 'show',
  13. ])
  14. )
  15. export default App.controller('ReactShareProjectModalController', [
  16. '$scope',
  17. 'eventTracking',
  18. 'ide',
  19. function ($scope, eventTracking, ide) {
  20. $scope.show = false
  21. $scope.handleHide = () => {
  22. $scope.$applyAsync(() => {
  23. $scope.show = false
  24. })
  25. }
  26. $scope.openShareProjectModal = () => {
  27. eventTracking.sendMBOnce('ide-open-share-modal-once')
  28. $scope.$applyAsync(() => {
  29. $scope.show = true
  30. })
  31. }
  32. ide.socket.on('project:membership:changed', data => {
  33. if (data.members) {
  34. listProjectMembers($scope.project._id)
  35. .then(({ members }) => {
  36. if (members) {
  37. $scope.$applyAsync(() => {
  38. $scope.project.members = members
  39. })
  40. }
  41. })
  42. .catch(err => {
  43. debugConsole.error('Error fetching members for project', err)
  44. })
  45. }
  46. if (data.invites) {
  47. listProjectInvites($scope.project._id)
  48. .then(({ invites }) => {
  49. if (invites) {
  50. $scope.$applyAsync(() => {
  51. $scope.project.invites = invites
  52. })
  53. }
  54. })
  55. .catch(err => {
  56. debugConsole.error('Error fetching invites for project', err)
  57. })
  58. }
  59. })
  60. },
  61. ])