From 60989a25729e7df14f9777772915d039856a57ce Mon Sep 17 00:00:00 2001 From: qier222 Date: Wed, 9 Dec 2020 16:00:38 +0800 Subject: [PATCH] feat: add toast component --- src/App.vue | 3 +++ src/components/Toast.vue | 51 ++++++++++++++++++++++++++++++++++++ src/components/TrackList.vue | 12 +++++---- src/store/actions.js | 17 ++++++++++++ src/store/mutations.js | 3 +++ src/store/state.js | 5 ++++ 6 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 src/components/Toast.vue diff --git a/src/App.vue b/src/App.vue index b1e0142..76e2897 100644 --- a/src/App.vue +++ b/src/App.vue @@ -17,6 +17,7 @@ ) === false " /> + @@ -24,6 +25,7 @@ + + diff --git a/src/components/TrackList.vue b/src/components/TrackList.vue index 1da3a8d..33394e8 100644 --- a/src/components/TrackList.vue +++ b/src/components/TrackList.vue @@ -9,21 +9,21 @@
-
Play
-
Play Next
+
{{ $t("contextMenu.play") }}
+
{{ $t("contextMenu.playNext") }}
- Save to my Liked Songs + {{ $t("contextMenu.saveToMyLikedSongs") }}
- Remove from my Liked Songs + {{ $t("contextMenu.removeFromMyLikedSongs") }}
{ if (data.code !== 200) return; if (like === false) { + this.showToast(this.$t("toast.removedFromMyLikedSongs")); this.updateLikedSongs(likedSongs.filter((d) => d !== id)); } else { + this.showToast(this.$t("toast.savedToMyLikedSongs")); likedSongs.push(id); this.updateLikedSongs(likedSongs); } diff --git a/src/store/actions.js b/src/store/actions.js index de32368..76305b7 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -143,4 +143,21 @@ export default { dispatch("nextTrack"); }); }, + showToast({ state, commit }, text) { + if (state.toast.timer !== null) { + clearTimeout(state.toast.timer); + commit("updateToast", { show: false, text: "", timer: null }); + } + commit("updateToast", { + show: true, + text, + timer: setTimeout(() => { + commit("updateToast", { + show: false, + text: state.toast.text, + timer: null, + }); + }, 3200), + }); + }, }; diff --git a/src/store/mutations.js b/src/store/mutations.js index 1dcd342..0c56d6a 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -120,4 +120,7 @@ export default { } ); }, + updateToast(state, toast) { + state.toast = toast; + }, }; diff --git a/src/store/state.js b/src/store/state.js index 469f361..00d1202 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -7,6 +7,11 @@ export default { clickObjectID: 0, showMenu: false, }, + toast: { + show: false, + text: "", + timer: null, + }, player: JSON.parse(localStorage.getItem("player")), settings: JSON.parse(localStorage.getItem("settings")), data: JSON.parse(localStorage.getItem("data")),