From f74e028d05559ac034b58e5fee6f79d54da1cb22 Mon Sep 17 00:00:00 2001 From: Giovane Cardoso Date: Thu, 18 Aug 2022 22:09:54 -0300 Subject: [PATCH] fix(editor): overlap in save large scale projects --- .../better-write-app/src/use/annotations.ts | 78 +++---------------- packages/better-write-app/src/use/editor.ts | 18 ++--- packages/better-write-app/src/use/utils.ts | 18 ----- .../better-write-languages/src/en-US/toast.ts | 4 + .../better-write-languages/src/pt-BR/toast.ts | 4 + .../src/set.ts | 1 - 6 files changed, 26 insertions(+), 97 deletions(-) diff --git a/packages/better-write-app/src/use/annotations.ts b/packages/better-write-app/src/use/annotations.ts index b84948f1d..13c139da5 100644 --- a/packages/better-write-app/src/use/annotations.ts +++ b/packages/better-write-app/src/use/annotations.ts @@ -1,97 +1,37 @@ -import { useNProgress } from '@vueuse/integrations/useNProgress' import { usePlugin } from 'better-write-plugin-core' import { ProjectStateAnnotationFile, ProjectStateAnnotationFolder, } from 'better-write-types' -import { useUtils } from './utils' +import { useI18n } from 'vue-i18n' export const useAnnotations = () => { - const { fn } = useUtils() const plugin = usePlugin() - const { isLoading } = useNProgress() + const { t } = useI18n() const onStart = (file: ProjectStateAnnotationFile) => { - fn().promisedFn( - () => { - plugin.emit('plugin-annotations-start', file) - }, - { - start: () => { - isLoading.value = true - }, - end: () => { - isLoading.value = false - }, - } - ) + plugin.emit('plugin-annotations-start', file) } const onFileCreate = (folder: ProjectStateAnnotationFolder) => { - fn().promisedFn( - () => { - plugin.emit('plugin-annotations-file-create', folder) - }, - { - start: () => { - isLoading.value = true - }, - end: () => { - isLoading.value = false - }, - } - ) + plugin.emit('plugin-annotations-file-create', folder) } const onFileDelete = (obj: { file: ProjectStateAnnotationFile folder: ProjectStateAnnotationFolder }) => { - fn().promisedFn( - () => { - plugin.emit('plugin-annotations-file-delete', obj) - }, - { - start: () => { - isLoading.value = true - }, - end: () => { - isLoading.value = false - }, - } - ) + if (confirm(t('toast.project.annotations.fileDelete'))) + plugin.emit('plugin-annotations-file-delete', obj) } const onFolderCreate = () => { - fn().promisedFn( - () => { - plugin.emit('plugin-annotations-folder-create') - }, - { - start: () => { - isLoading.value = true - }, - end: () => { - isLoading.value = false - }, - } - ) + plugin.emit('plugin-annotations-folder-create') } const onFolderDelete = (folder: ProjectStateAnnotationFolder) => { - fn().promisedFn( - () => { - plugin.emit('plugin-annotations-folder-delete', folder) - }, - { - start: () => { - isLoading.value = true - }, - end: () => { - isLoading.value = false - }, - } - ) + if (confirm(t('toast.project.annotations.folderDelete'))) + plugin.emit('plugin-annotations-folder-delete', folder) } return { onStart, onFileCreate, onFileDelete, onFolderCreate, onFolderDelete } diff --git a/packages/better-write-app/src/use/editor.ts b/packages/better-write-app/src/use/editor.ts index cf9b2261c..695afd3ab 100644 --- a/packages/better-write-app/src/use/editor.ts +++ b/packages/better-write-app/src/use/editor.ts @@ -4,7 +4,12 @@ import { useEntity } from '@/use/entity' import { useEnv } from '@/use/env' import { useProject } from '@/use/project' import { useLocalStorage } from '@/use/storage/local' -import { useEventListener, useFullscreen, useNetwork } from '@vueuse/core' +import { + useEventListener, + useFullscreen, + useIntervalFn, + useNetwork, +} from '@vueuse/core' import { useHead } from '@vueuse/head' import { usePlugin } from 'better-write-plugin-core' import { computed, onBeforeMount, onMounted, watch } from 'vue' @@ -52,14 +57,9 @@ export const useEditor = () => { }) if (EDITOR.configuration.autosave) { - // tracking all mutate cases - watch( - [PROJECT.$state], - () => { - if (EDITOR.configuration.autosave) local.onSaveProject(false) - }, - { deep: true } - ) + useIntervalFn(() => { + local.onSaveProject(false) + }, 1000 * 60) } // tracking normalize project cases diff --git a/packages/better-write-app/src/use/utils.ts b/packages/better-write-app/src/use/utils.ts index 5a6c5108a..875ec3d8e 100644 --- a/packages/better-write-app/src/use/utils.ts +++ b/packages/better-write-app/src/use/utils.ts @@ -1,23 +1,6 @@ import destr from 'destr' export const useUtils = () => { - const fn = () => { - const promisedFn = async ( - cb: () => any, - cl: { start: () => any; end: () => any }, - delayValue: number = 10 - ) => { - cl.start() - - await delay(delayValue) - ;(await cb) && (await cb()) - - cl.end() - } - - return { promisedFn } - } - const delay = (time: number) => { return new Promise((resolve) => setTimeout(resolve, time)) } @@ -416,7 +399,6 @@ export const useUtils = () => { } return { - fn, id, position, delay, diff --git a/packages/better-write-languages/src/en-US/toast.ts b/packages/better-write-languages/src/en-US/toast.ts index 0ab979643..fe615afce 100644 --- a/packages/better-write-languages/src/en-US/toast.ts +++ b/packages/better-write-languages/src/en-US/toast.ts @@ -42,6 +42,10 @@ export default { txt: { generate: 'Successfully Downloaded TXT!', }, + annotations: { + fileDelete: 'Are you sure you want to delete the file?', + folderDelete: 'Are you sure you want to delete the folder?', + }, }, dropbox: { load: 'Connected with Dropbox!', diff --git a/packages/better-write-languages/src/pt-BR/toast.ts b/packages/better-write-languages/src/pt-BR/toast.ts index 5a2bf9e3e..c642febbc 100644 --- a/packages/better-write-languages/src/pt-BR/toast.ts +++ b/packages/better-write-languages/src/pt-BR/toast.ts @@ -42,6 +42,10 @@ export default { html: { generate: 'HTML Baixado com Sucesso!', }, + annotations: { + fileDelete: 'VocĂȘ tem certeza que deseja deletar o arquivo?', + folderDelete: 'VocĂȘ tem certeza que deseja deletar a pasta?', + }, }, dropbox: { load: 'Conectado com o Dropbox!', diff --git a/packages/better-write-plugin-annotations/src/set.ts b/packages/better-write-plugin-annotations/src/set.ts index ee1e7dae7..08407a70d 100644 --- a/packages/better-write-plugin-annotations/src/set.ts +++ b/packages/better-write-plugin-annotations/src/set.ts @@ -85,7 +85,6 @@ export const PluginAnnotationsSet = ( const index = stores.PROJECT.annotations.folders.indexOf(folder) stores.PROJECT.annotations.folders[index].files.push(file) - stores.PROJECT.annotations.activeId = file.id return file }