mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-13 21:53:43 +01:00
Merge pull request #27678 from overleaf/dp-open-new-file
Immediately open doc after creation GitOrigin-RevId: a202a9ed4e03668a04594e7fe352d5c52d5d5572
This commit is contained in:
+9
-3
@@ -5,28 +5,34 @@ import { useFileTreeCreateName } from '../../../contexts/file-tree-create-name'
|
||||
import { useFileTreeCreateForm } from '../../../contexts/file-tree-create-form'
|
||||
import * as eventTracking from '../../../../../infrastructure/event-tracking'
|
||||
import ErrorMessage from '../error-message'
|
||||
import { useEditorManagerContext } from '@/features/ide-react/context/editor-manager-context'
|
||||
|
||||
export default function FileTreeCreateNewDoc() {
|
||||
const { name, validName } = useFileTreeCreateName()
|
||||
const { setValid } = useFileTreeCreateForm()
|
||||
const { error, finishCreatingDoc, inFlight } = useFileTreeActionable()
|
||||
|
||||
// form validation: name is valid
|
||||
useEffect(() => {
|
||||
setValid(validName)
|
||||
}, [setValid, validName])
|
||||
|
||||
const { openDoc } = useEditorManagerContext()
|
||||
|
||||
// form submission: create an empty doc with this name
|
||||
const handleSubmit = useCallback(
|
||||
event => {
|
||||
async event => {
|
||||
event.preventDefault()
|
||||
|
||||
finishCreatingDoc({ name })
|
||||
const doc = await finishCreatingDoc({ name })
|
||||
eventTracking.sendMB('new-file-created', {
|
||||
method: 'doc',
|
||||
extension: name.split('.').length > 1 ? name.split('.').pop() : '',
|
||||
})
|
||||
|
||||
openDoc(doc)
|
||||
},
|
||||
[finishCreatingDoc, name]
|
||||
[finishCreatingDoc, name, openDoc]
|
||||
)
|
||||
|
||||
return (
|
||||
|
||||
@@ -445,8 +445,9 @@ export const FileTreeActionableProvider: FC<React.PropsWithChildren> = ({
|
||||
dispatch({ type: ACTION_TYPES.CREATING_FILE })
|
||||
|
||||
return finishCreatingEntity(entity)
|
||||
.then(() => {
|
||||
.then(docOrFile => {
|
||||
dispatch({ type: ACTION_TYPES.CLEAR })
|
||||
return docOrFile
|
||||
})
|
||||
.catch(error => {
|
||||
dispatch({ type: ACTION_TYPES.ERROR, error })
|
||||
|
||||
Reference in New Issue
Block a user