overleaf/services/web/frontend/js/features/clone-project-modal/controllers/left-menu-clone-project-modal-controller.js
Alf Eaton f375362894 Always use mockable location methods (#11929)
* Always use mockable location methods
* Add eslint rules for window.location calls/assignment
* Add useLocation hook
* Update tests

GitOrigin-RevId: eafb846db89f884a7a9a8570cce7745be605152c
2023-03-17 09:05:21 +00:00

36 lines
918 B
JavaScript

import App from '../../../base'
import { react2angular } from 'react2angular'
import EditorCloneProjectModalWrapper from '../components/editor-clone-project-modal-wrapper'
import { rootContext } from '../../../shared/context/root-context'
import { assign } from '../../../shared/components/location'
export default App.controller(
'LeftMenuCloneProjectModalController',
function ($scope) {
$scope.show = false
$scope.handleHide = () => {
$scope.$applyAsync(() => {
$scope.show = false
})
}
$scope.openCloneProjectModal = () => {
$scope.$applyAsync(() => {
$scope.show = true
})
}
$scope.openProject = project => {
assign(`/project/${project.project_id}`)
}
}
)
App.component(
'cloneProjectModal',
react2angular(
rootContext.use(EditorCloneProjectModalWrapper),
Object.keys(EditorCloneProjectModalWrapper.propTypes)
)
)