diff --git a/package.json b/package.json index 78af4ee..ec81b1d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@json.ms/www", "private": true, "type": "module", - "version": "1.2.19", + "version": "1.2.20", "scripts": { "dev": "vite --host", "build": "run-p type-check \"build-only {@}\" --", diff --git a/src/components/StructureEditor.vue b/src/components/StructureEditor.vue index 6422625..081cb59 100644 --- a/src/components/StructureEditor.vue +++ b/src/components/StructureEditor.vue @@ -12,6 +12,7 @@ import {useGlobalStore} from '@/stores/global'; import {useTypings} from "@/composables/typings"; import {useModelStore} from "@/stores/model"; import {useSyncing} from "@/composables/syncing"; +import {useUserData} from "@/composables/user-data"; // import yaml from 'js-yaml'; const emit = defineEmits(['save', 'create', 'change', 'focus', 'blur']); @@ -23,8 +24,8 @@ const { columns = false, userData } = defineProps<{ }>(); const { canSaveStructure, yamlException, structureStates } = useStructure(); const modelStore = useModelStore(); -const { getTypescriptTypings, getTypescriptDefaultObj, lastStateTimestamp } = useTypings(); -const { isFolderSynced, askToSyncFolder, unSyncFolder } = useSyncing(); +const { getTypescriptTypings, getTypescriptDefaultObj } = useTypings(); +const { isFolderSynced, askToSyncFolder, unSyncFolder, lastStateTimestamp } = useSyncing(); const showParsingDelay = ref(false); const progressBarValue = ref(0); const progressBarCompleted = ref(false); @@ -108,11 +109,10 @@ const value = computed({ return structure.value.content; }, set(value: string) { + modelStore.setTemporaryContent(value); if (globalStore.userSettings.data.editorLiveUpdate) { emit('change', value); } else { - modelStore.setTemporaryContent(value); - clearInterval(parseInterval); clearInterval(showParseInterval); clearInterval(parseValueInterval); @@ -582,7 +582,7 @@ watch(() => globalStore.userSettings.data, () => { size="small" /> @@ -591,7 +591,7 @@ watch(() => globalStore.userSettings.data, () => { v-if="structure" v-bind="props" :loading="structureStates.saving" - :disabled="!canSaveStructure || structureStates.saving || structureStates.saved" + :disabled="!canSaveStructure || (!modelStore.structure.server_url && !isFolderSynced(modelStore.structure)) || structureStates.saving || structureStates.saved" :prepend-icon="!structureStates.saved ? 'mdi-content-save' : 'mdi-check'" variant="outlined" color="primary" diff --git a/src/components/Toolbar.vue b/src/components/Toolbar.vue index 986671b..64928b6 100644 --- a/src/components/Toolbar.vue +++ b/src/components/Toolbar.vue @@ -365,18 +365,21 @@ watch(() => currentRoute.params.locale, () => {