Parcourir la source

Added function to auto update song requestedAt every 5 seconds

Owen Diffey il y a 2 ans
Parent
commit
7562726863
1 fichiers modifiés avec 25 ajouts et 10 suppressions
  1. 25 10
      frontend/src/components/SongItem.vue

+ 25 - 10
frontend/src/components/SongItem.vue

@@ -47,15 +47,7 @@
 							:user-id="song.requestedBy"
 							:link="true"
 						/>
-						{{
-							formatDistance(
-								parseISO(song.requestedAt),
-								new Date(),
-								{
-									includeSeconds: true
-								}
-							)
-						}}
+						{{ formatedRequestedAt }}
 						ago
 					</strong>
 				</p>
@@ -197,7 +189,8 @@ export default {
 	},
 	data() {
 		return {
-			utils
+			utils,
+			formatedRequestedAt: null
 		};
 	},
 	computed: {
@@ -206,7 +199,29 @@ export default {
 			userRole: state => state.user.auth.role
 		})
 	},
+	mounted() {
+		if (this.requestedBy) {
+			this.formatRequestedAt();
+			setInterval(() => {
+				this.formatRequestedAt();
+			}, 5000);
+		}
+	},
 	methods: {
+		formatRequestedAt() {
+			if (
+				this.requestedBy &&
+				this.song.requestedBy &&
+				this.song.requestedAt
+			)
+				this.formatedRequestedAt = this.formatDistance(
+					parseISO(this.song.requestedAt),
+					new Date(),
+					{
+						includeSeconds: true
+					}
+				);
+		},
 		formatArtists() {
 			if (this.song.artists.length === 1) {
 				return this.song.artists[0];