Fix bug with multiple uploadcare events being triggered with one button
This commit is contained in:
parent
67bae3fb17
commit
4d476e687b
|
|
@ -4,14 +4,14 @@
|
||||||
<document-block
|
<document-block
|
||||||
:value="{ url: document }"
|
:value="{ url: document }"
|
||||||
show-trash-icon
|
show-trash-icon
|
||||||
@trash="$emit('change-document-url', '')"
|
@trash="changeDocumentUrl('')"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<simple-file-upload
|
<simple-file-upload
|
||||||
:with-text="withText"
|
:with-text="withText"
|
||||||
:value="document"
|
:value="document"
|
||||||
@link-change-url="$emit('change-document-url', $event)"
|
@link-change-url="changeDocumentUrl($event)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -35,7 +35,13 @@ export default {
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
emits: ['changeDocumentUrl'],
|
||||||
components: { SimpleFileUpload, DocumentBlock },
|
components: { SimpleFileUpload, DocumentBlock },
|
||||||
|
methods: {
|
||||||
|
changeDocumentUrl(val) {
|
||||||
|
this.$emit('change-document-url', val);
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,8 @@ const clickUploadCare = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.uploadcare--widget) {
|
/* :deep(.uploadcare--widget) { */
|
||||||
|
.uploadcare--widget {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -5,23 +5,27 @@
|
||||||
role="uploadcare-uploader"
|
role="uploadcare-uploader"
|
||||||
name="file-upload"
|
name="file-upload"
|
||||||
data-system-dialog
|
data-system-dialog
|
||||||
|
:id="id"
|
||||||
ref="uploadcare-filedialog"
|
ref="uploadcare-filedialog"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script setup>
|
||||||
|
import { onMounted } from 'vue';
|
||||||
import uploadcareWidget from 'uploadcare-widget';
|
import uploadcareWidget from 'uploadcare-widget';
|
||||||
|
|
||||||
export default {
|
const id = crypto.randomUUID();
|
||||||
mounted() {
|
|
||||||
let widget = uploadcareWidget.Widget('[role=uploadcare-uploader]');
|
|
||||||
|
|
||||||
widget.onChange((result) => {
|
const emit = defineEmits(['linkChangeUrl']);
|
||||||
result.done((fileInfo) => {
|
|
||||||
let urlWithFilename = fileInfo.cdnUrl + fileInfo.name;
|
onMounted(() => {
|
||||||
this.$emit('link-change-url', urlWithFilename);
|
let widget = uploadcareWidget.Widget(`#${id}`);
|
||||||
});
|
|
||||||
|
widget.onChange((result) => {
|
||||||
|
result.done((fileInfo) => {
|
||||||
|
let urlWithFilename = fileInfo.cdnUrl + fileInfo.name;
|
||||||
|
emit('link-change-url', urlWithFilename);
|
||||||
});
|
});
|
||||||
},
|
});
|
||||||
};
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue