refactor: separate selectAndUploadFile and uploadFile functions (#2085)

This commit is contained in:
Aman Harwara
2022-12-04 11:11:37 +05:30
committed by GitHub
parent 2175c9cdcb
commit 90e10c76f7
9 changed files with 108 additions and 113 deletions

View File

@@ -114,7 +114,7 @@ const ContentListView = forwardRef<HTMLDivElement, Props>(
}, [selectedTag, application, onPanelWidthLoad])
const fileDropCallback = useCallback(
async (files: FileItem[]) => {
async (file: FileItem) => {
const currentTag = navigationController.selected
if (!currentTag) {
@@ -126,9 +126,7 @@ const ContentListView = forwardRef<HTMLDivElement, Props>(
return
}
files.forEach(async (file) => {
await linkingController.linkItems(file, currentTag)
})
await linkingController.linkItems(file, currentTag)
},
[navigationController, linkingController],
)
@@ -170,7 +168,7 @@ const ContentListView = forwardRef<HTMLDivElement, Props>(
return
}
void filesController.uploadNewFile()
void filesController.selectAndUploadNewFiles()
} else {
await createNewNote()
toggleAppPane(AppPaneId.Editor)

View File

@@ -11,7 +11,7 @@ import Portal from './Portal/Portal'
type FileDragTargetData = {
tooltipText: string
callback: (files: FileItem[]) => void
callback: (files: FileItem) => void
}
type FileDnDContextData = {
@@ -203,14 +203,14 @@ const FileDragNDropProvider = ({ application, children, featuresController, file
return
}
const uploadedFiles = await filesController.uploadNewFile(fileOrHandle)
const uploadedFile = await filesController.uploadNewFile(fileOrHandle)
if (!uploadedFiles) {
if (!uploadedFile) {
return
}
if (closestDragTarget && dragTargets.current.has(closestDragTarget)) {
dragTargets.current.get(closestDragTarget)?.callback(uploadedFiles)
dragTargets.current.get(closestDragTarget)?.callback(uploadedFile)
}
})

View File

@@ -51,10 +51,8 @@ const FileViewWithoutProtection = ({ application, viewControllerManager, file }:
if (target) {
addDragTarget(target, {
tooltipText: 'Drop your files to upload and link them to the current file',
callback(files) {
files.forEach(async (uploadedFile) => {
await viewControllerManager.linkingController.linkItems(uploadedFile, file)
})
async callback(uploadedFile) {
await viewControllerManager.linkingController.linkItems(uploadedFile, file)
},
})
}

View File

@@ -63,13 +63,9 @@ const LinkedItemsPanel = ({
return
}
const uploadedFiles = await filesController.uploadNewFile()
if (uploadedFiles && uploadedFiles.length) {
uploadedFiles.forEach((file) => {
void linkItemToSelectedItem(file)
})
}
void filesController.selectAndUploadNewFiles((file) => {
void linkItemToSelectedItem(file)
})
}
return (

View File

@@ -20,11 +20,9 @@ const NoteViewFileDropTarget = ({ note, linkingController, noteViewElement, file
if (target) {
addDragTarget(target, {
tooltipText: 'Drop your files to upload and link them to the current note',
callback: (files) => {
files.forEach(async (uploadedFile) => {
await linkingController.linkItems(note, uploadedFile)
filesController.notifyObserversOfUploadedFileLinkingToCurrentNote(uploadedFile.uuid)
})
callback: async (uploadedFile) => {
await linkingController.linkItems(note, uploadedFile)
filesController.notifyObserversOfUploadedFileLinkingToCurrentNote(uploadedFile.uuid)
},
})
}

View File

@@ -28,11 +28,9 @@ export default function FilePlugin(): JSX.Element | null {
const uploadFilesList = (files: FileList) => {
Array.from(files).forEach(async (file) => {
try {
const uploadedFiles = await filesController.uploadNewFile(file)
if (uploadedFiles) {
uploadedFiles.forEach((uploadedFile) => {
editor.dispatchCommand(INSERT_FILE_COMMAND, uploadedFile.uuid)
})
const uploadedFile = await filesController.uploadNewFile(file)
if (uploadedFile) {
editor.dispatchCommand(INSERT_FILE_COMMAND, uploadedFile.uuid)
}
} catch (error) {
console.error(error)

View File

@@ -178,10 +178,8 @@ export const TagsListItem: FunctionComponent<Props> = observer(
if (target) {
addDragTarget(target, {
tooltipText: `Drop your files to upload and link them to tag "${tag.title}"`,
callback(files) {
files.forEach(async (file) => {
await linkingController.linkItems(file, tag)
})
async callback(file) {
await linkingController.linkItems(file, tag)
},
})
}