set loading of deletions

This commit is contained in:
grimhilt 2023-05-06 13:30:50 +02:00
parent b137263bef
commit 686e6a4911
3 changed files with 26 additions and 4 deletions

View File

@ -281,6 +281,7 @@ function sendMessage() {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
padding: 0 10px 10px 10px; padding: 0 10px 10px 10px;
min-height: 90px;
max-height: 500px; max-height: 500px;
overflow: auto; overflow: auto;
} }
@ -296,7 +297,7 @@ function sendMessage() {
border-radius: 10px; border-radius: 10px;
padding: 0 10px; padding: 0 10px;
overflow: auto; overflow: auto;
min-height: 150px; min-height: 80px;
} }
.bubble-menu, .bubble-menu,

View File

@ -14,6 +14,7 @@ const room: any = inject("room");
const seenLoading = ref(false); const seenLoading = ref(false);
const flaggedLoading = ref(false); const flaggedLoading = ref(false);
const deletionLoading = ref(false);
const setReadFlag = () => setFlag("\\Seen", seenLoading); const setReadFlag = () => setFlag("\\Seen", seenLoading);
const setFlaggedFlag = () => setFlag("\\Flagged", flaggedLoading); const setFlaggedFlag = () => setFlag("\\Flagged", flaggedLoading);
@ -44,26 +45,34 @@ const setFlag = (flag: string, loadingState: Ref<boolean>) => {
}; };
const deleteEverywhere = () => { const deleteEverywhere = () => {
if (deletionLoading.value) return;
if (!room?.value || !props.msg) return; if (!room?.value || !props.msg) return;
deletionLoading.value = true;
API.deleteEverywhere({ mailboxId: room.value?.mailboxId, messageId: props.msg?.id }) API.deleteEverywhere({ mailboxId: room.value?.mailboxId, messageId: props.msg?.id })
.then((res) => { .then((res) => {
store.commit("removeMsg", { roomId: room.value?.id, messageId: props.msg?.id }); store.commit("removeMsg", { roomId: room.value?.id, messageId: props.msg?.id });
deletionLoading.value = false;
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
deletionLoading.value = false;
}); });
}; };
const deleteRemoteOnly = () => { const deleteRemoteOnly = () => {
if (deletionLoading.value) return;
if (!room?.value || !props.msg) return; if (!room?.value || !props.msg) return;
deletionLoading.value = true;
API.deleteRemoteOnly({ mailboxId: room.value?.mailboxId, messageId: props.msg?.id }) API.deleteRemoteOnly({ mailboxId: room.value?.mailboxId, messageId: props.msg?.id })
.then((res) => { .then((res) => {
if (!hasFlag(props.msg?.flags, "\\Deleted")) { if (!hasFlag(props.msg?.flags, "\\Deleted")) {
store.commit("addFlag", { roomId: room.value?.id, messageId: props.msg?.id, flag: "\\Deleted" }); store.commit("addFlag", { roomId: room.value?.id, messageId: props.msg?.id, flag: "\\Deleted" });
} }
deletionLoading.value = false;
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
deletionLoading.value = false;
}); });
}; };
</script> </script>
@ -98,10 +107,22 @@ const deleteRemoteOnly = () => {
</span> </span>
<SvgLoader svg="reply-line" class="option" /> <SvgLoader svg="reply-line" class="option" />
<span @click="deleteRemoteOnly()"> <span @click="deleteRemoteOnly()">
<SvgLoader svg="delete-bin-4-line" class="option" classes="danger" v-tooltip="'Delete from remote'" /> <SvgLoader
svg="delete-bin-4-line"
class="option"
:loading="deletionLoading"
classes="danger"
v-tooltip="'Delete from remote'"
/>
</span> </span>
<span @click="deleteEverywhere()"> <span @click="deleteEverywhere()">
<SvgLoader svg="delete-bin-6-line" class="option" classes="danger" v-tooltip="'Delete everywhere'" /> <SvgLoader
svg="delete-bin-6-line"
class="option"
:loading="deletionLoading"
classes="danger"
v-tooltip="'Delete everywhere'"
/>
</span> </span>
<SvgLoader svg="share-forward-line" class="option" /> <SvgLoader svg="share-forward-line" class="option" />
<SvgLoader svg="reply-all-line" class="option" /> <SvgLoader svg="reply-all-line" class="option" />

View File

@ -37,7 +37,7 @@ img {
} }
.lds-dual-ring { .lds-dual-ring {
display: inline-block; display: flex;
width: 26px; width: 26px;
height: 26px; height: 26px;
} }