delete room when empty

This commit is contained in:
grimhilt
2023-05-06 15:58:33 +02:00
parent 1a7828b281
commit 843659b495
6 changed files with 62 additions and 28 deletions

View File

@@ -50,7 +50,11 @@ const deleteEverywhere = () => {
deletionLoading.value = true;
API.deleteEverywhere({ mailboxId: room.value?.mailboxId, messageId: props.msg?.id })
.then((res) => {
// delete even if we delete the room after because the transition between room is not clean (todo)
store.commit("removeMsg", { roomId: room.value?.id, messageId: props.msg?.id });
if (res.data?.deleteRoom) {
store.commit("removeRoom", { roomId: room.value?.id });
}
deletionLoading.value = false;
})
.catch((err) => {

View File

@@ -132,6 +132,14 @@ const store = createStore<State>({
}
});
},
removeRoom(state, payload) {
const roomMessageIndex = state.roomMessages.findIndex((roomM) => roomM.roomId === payload.roomId);
state.roomMessages.splice(roomMessageIndex, 1);
const roomIndex = state.rooms.findIndex((room) => room.id === payload.roomId);
state.rooms.splice(roomIndex, 1);
// state.activeRoom = state.rooms[0].id;
// router.push(`/${state.activeRoom}`);
},
addMessages(state, payload) {
// todo add if not exist
const room = roomOnId(state, payload.roomId);

View File

@@ -1,3 +1,8 @@
<script lang="ts" setup>
import Accounts from "./accounts/Accounts.vue";
import Rooms from "./rooms/Rooms.vue";
</script>
<template>
<div>
<Accounts class="accounts" />
@@ -5,19 +10,6 @@
</div>
</template>
<script>
import Accounts from "./accounts/Accounts";
import Rooms from "./rooms/Rooms.vue";
export default {
name: "Sidebar",
components: {
Accounts,
Rooms,
},
};
</script>
<style scoped>
div {
display: flex;