Merge pull request #32857 from overleaf/ds-pandoc-import-md
[WEB + CLSI] Import markdown files using pandoc GitOrigin-RevId: adad7831ddb13a8fcb8063871166bde13cbbf1b6
This commit is contained in:
committed by
Copybot
parent
44efc9d745
commit
eddcc5a42e
@@ -6,7 +6,7 @@ import { debugConsole } from '@/utils/debugging'
|
||||
import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
|
||||
import { OLToastContainer } from '@/shared/components/ol/ol-toast-container'
|
||||
import clipboardToastGenerators from '@/features/source-editor/components/clipboard-toasts'
|
||||
import importDocxFeedbackToastGenerators from '@/features/project-list/components/new-project-button/import-docx-feedback-toast'
|
||||
import importDocumentFeedbackToastGenerators from '@/features/project-list/components/new-project-button/import-document-feedback-toast'
|
||||
import exportDocumentToastGenerators from '@/features/ide-react/components/toolbar/export-document-toasts'
|
||||
|
||||
const moduleGeneratorsImport = importOverleafModules('toastGenerators') as {
|
||||
@@ -29,7 +29,7 @@ type GlobalToastGenerator = (
|
||||
const GENERATOR_LIST: GlobalToastGeneratorEntry[] = [
|
||||
...moduleGenerators.flat(),
|
||||
...clipboardToastGenerators,
|
||||
...importDocxFeedbackToastGenerators,
|
||||
...importDocumentFeedbackToastGenerators,
|
||||
...exportDocumentToastGenerators,
|
||||
]
|
||||
const GENERATOR_MAP: Map<string, GlobalToastGenerator> = new Map(
|
||||
|
||||
@@ -3,7 +3,7 @@ import ForceDisconnected from '@/features/ide-react/components/modals/force-disc
|
||||
import { UnsavedDocs } from '@/features/ide-react/components/unsaved-docs/unsaved-docs'
|
||||
import SystemMessages from '@/shared/components/system-messages'
|
||||
import ViewOnlyAccessModal from '@/features/share-project-modal/components/view-only-access-modal'
|
||||
import ProjectConvertedFromDocxModal from '@/features/ide-react/components/modals/project-converted-from-docx-modal'
|
||||
import ProjectConvertedFromDocumentModal from '@/features/ide-react/components/modals/project-converted-from-document-modal'
|
||||
|
||||
export const Modals = memo(() => {
|
||||
return (
|
||||
@@ -12,7 +12,7 @@ export const Modals = memo(() => {
|
||||
<UnsavedDocs />
|
||||
<SystemMessages />
|
||||
<ViewOnlyAccessModal />
|
||||
<ProjectConvertedFromDocxModal />
|
||||
<ProjectConvertedFromDocumentModal />
|
||||
</>
|
||||
)
|
||||
})
|
||||
|
||||
+17
-18
@@ -8,36 +8,35 @@ import {
|
||||
} from '@/shared/components/ol/ol-modal'
|
||||
import OLButton from '@/shared/components/ol/ol-button'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { showImportDocxFeedbackToast } from '@/features/project-list/components/new-project-button/import-docx-feedback-toast'
|
||||
import { showImportDocumentFeedbackToast } from '@/features/project-list/components/new-project-button/import-document-feedback-toast'
|
||||
|
||||
function ProjectConvertedFromDocxModal() {
|
||||
const [
|
||||
showProjectConvertedFromDocxModal,
|
||||
setShowProjectConvertedFromDocxModal,
|
||||
] = useState(false)
|
||||
function ProjectConvertedFromDocumentModal() {
|
||||
const [convertedFrom, setConvertedFrom] = useState<string | null>(null)
|
||||
|
||||
useEffect(() => {
|
||||
const query = window.location.search
|
||||
const queryString = new URLSearchParams(query)
|
||||
const queryString = new URLSearchParams(window.location.search)
|
||||
const from = queryString.get('converted-from')
|
||||
|
||||
if (queryString.get('converted-from-docx') === 'true') {
|
||||
setShowProjectConvertedFromDocxModal(true)
|
||||
if (from) {
|
||||
setConvertedFrom(from)
|
||||
|
||||
// Clean the URL immediately so a refresh doesn't trigger the modal again,
|
||||
// but preserve other search params and the hash.
|
||||
const url = new URL(window.location.href)
|
||||
url.searchParams.delete('converted-from-docx')
|
||||
url.searchParams.delete('converted-from')
|
||||
window.history.replaceState(window.history.state, '', url.toString())
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<>
|
||||
{showProjectConvertedFromDocxModal && (
|
||||
<ProjectConvertedFromDocxModalContent
|
||||
{convertedFrom && (
|
||||
<ProjectConvertedFromImportModalContent
|
||||
onHide={() => {
|
||||
setShowProjectConvertedFromDocxModal(false)
|
||||
showImportDocxFeedbackToast()
|
||||
setConvertedFrom(null)
|
||||
if (convertedFrom === 'docx' || convertedFrom === 'markdown') {
|
||||
showImportDocumentFeedbackToast(convertedFrom)
|
||||
}
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
@@ -45,7 +44,7 @@ function ProjectConvertedFromDocxModal() {
|
||||
)
|
||||
}
|
||||
|
||||
function ProjectConvertedFromDocxModalContent({
|
||||
function ProjectConvertedFromImportModalContent({
|
||||
onHide,
|
||||
}: {
|
||||
onHide: () => void
|
||||
@@ -57,7 +56,7 @@ function ProjectConvertedFromDocxModalContent({
|
||||
show
|
||||
animation
|
||||
onHide={onHide}
|
||||
id="converted-from-docx-modal"
|
||||
id="converted-from-document-modal"
|
||||
backdrop="static"
|
||||
>
|
||||
<OLModalHeader>
|
||||
@@ -73,4 +72,4 @@ function ProjectConvertedFromDocxModalContent({
|
||||
)
|
||||
}
|
||||
|
||||
export default ProjectConvertedFromDocxModal
|
||||
export default ProjectConvertedFromDocumentModal
|
||||
Reference in New Issue
Block a user