mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-05 07:09:02 +02:00
975d1ee250
Add copy and submit project options to new editor file menu GitOrigin-RevId: 7f402d96f278f2b084375441089b286adaa731b8
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import React, { useCallback } from 'react'
|
|
import { useProjectContext } from '../../../shared/context/project-context'
|
|
import withErrorBoundary from '../../../infrastructure/error-boundary'
|
|
import CloneProjectModal from './clone-project-modal'
|
|
|
|
type ProjectCopyResponse = {
|
|
project_id: string
|
|
}
|
|
|
|
const EditorCloneProjectModalWrapper = React.memo(
|
|
function EditorCloneProjectModalWrapper({
|
|
show,
|
|
handleHide,
|
|
openProject,
|
|
}: {
|
|
show: boolean
|
|
handleHide: () => void
|
|
openProject: (projectId: string) => void
|
|
}) {
|
|
const { project, tags: projectTags } = useProjectContext()
|
|
const handleAfterCloned = useCallback(
|
|
({ project_id: projectId }: ProjectCopyResponse) => {
|
|
openProject(projectId)
|
|
},
|
|
[openProject]
|
|
)
|
|
|
|
if (!project) {
|
|
// wait for useProjectContext
|
|
return null
|
|
} else {
|
|
return (
|
|
<CloneProjectModal
|
|
handleHide={handleHide}
|
|
show={show}
|
|
handleAfterCloned={handleAfterCloned}
|
|
projectId={project._id}
|
|
projectName={project.name}
|
|
projectTags={projectTags}
|
|
/>
|
|
)
|
|
}
|
|
}
|
|
)
|
|
|
|
export default withErrorBoundary(EditorCloneProjectModalWrapper)
|