Prechádzať zdrojové kódy

refactor(ManageStation): started implementing unsaved changes confirm intercept modal close functionality

Kristian Vos 2 rokov pred
rodič
commit
21e1d33ea8

+ 7 - 2
frontend/src/components/modals/ManageStation/Settings.vue

@@ -170,7 +170,7 @@
 </template>
 
 <script>
-import { mapGetters } from "vuex";
+import { mapGetters, mapActions } from "vuex";
 
 import Toast from "toasters";
 
@@ -295,7 +295,12 @@ export default {
 				new Toast("Please make a change before saving.");
 			}
 		},
-		...mapModalActions("modals/manageStation/MODAL_UUID", ["editStation"])
+		onCloseModal() {
+			console.log("ON CLOSE MODAL FROM WITHIN MANAGESTATION/SETTINGS");
+			this.closeModal("manageStation");
+		},
+		...mapModalActions("modals/manageStation/MODAL_UUID", ["editStation"]),
+		...mapActions("modalVisibility", ["closeModal"])
 	}
 };
 </script>

+ 6 - 0
frontend/src/components/modals/ManageStation/index.vue

@@ -12,6 +12,8 @@
 		class="manage-station-modal"
 		:size="isOwnerOrAdmin() || sector !== 'home' ? 'wide' : null"
 		:split="isOwnerOrAdmin() || sector !== 'home'"
+		:intercept-close="true"
+		@close="onCloseModal"
 	>
 		<template #body v-if="station && station._id">
 			<div class="left-section">
@@ -69,6 +71,7 @@
 							class="tab"
 							v-show="tab === 'settings'"
 							:modal-uuid="modalUuid"
+							ref="settingsTabComponent"
 						/>
 						<playlist-tab-base
 							v-if="isOwnerOrAdmin() && station.autofill.enabled"
@@ -555,6 +558,9 @@ export default {
 				}
 			);
 		},
+		onCloseModal() {
+			this.$refs.settingsTabComponent.onCloseModal();
+		},
 		...mapModalActions("modals/manageStation/MODAL_UUID", [
 			"editStation",
 			"setAutofillPlaylists",