Merge pull request #27678 from overleaf/dp-open-new-file

Immediately open doc after creation

GitOrigin-RevId: a202a9ed4e03668a04594e7fe352d5c52d5d5572
This commit is contained in:
David
2025-08-08 08:06:16 +00:00
committed by Copybot
parent c9a1ecd060
commit a169f90b76
2 changed files with 11 additions and 4 deletions
@@ -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 })