From e18380b29443d7d1bb00784580dadc9c88976165 Mon Sep 17 00:00:00 2001
From: razzanYoni <13521087@mahasiswa.itb.ac.id>
Date: Sat, 18 Nov 2023 02:09:10 +0700
Subject: [PATCH] resolve subscription feature

---
 src/components/subscription-table.tsx | 12 +-----------
 src/pages/SubscriptionPage.tsx        | 23 ++++++++---------------
 src/types/subscription.ts             | 10 ++++++++++
 3 files changed, 19 insertions(+), 26 deletions(-)
 create mode 100644 src/types/subscription.ts

diff --git a/src/components/subscription-table.tsx b/src/components/subscription-table.tsx
index b526b7c..6b094b4 100644
--- a/src/components/subscription-table.tsx
+++ b/src/components/subscription-table.tsx
@@ -1,17 +1,7 @@
 import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow} from "@/components/ui/table.tsx";
 import {SubscriptionDropdown} from "@/components/subcription-dropdown.tsx";
 import api from "@/api/api.ts";
-
-interface Subscription {
-  userId: number;
-  premiumAlbumId: number;
-  username: string;
-  albumName: string;
-  artist: string;
-  status: string;
-  createdAt: string;
-  updatedAt: string;
-}
+import {Subscription} from "@/types/subscription.ts";
 
 export function SubscriptionTable({data}: { data: Subscription[] }) {
   return (
diff --git a/src/pages/SubscriptionPage.tsx b/src/pages/SubscriptionPage.tsx
index 46be0d3..a81dc76 100644
--- a/src/pages/SubscriptionPage.tsx
+++ b/src/pages/SubscriptionPage.tsx
@@ -1,17 +1,7 @@
 import {useEffect, useState} from 'react';
 import {SubscriptionTable} from "@/components/subscription-table.tsx";
 import api from "@/api/api.ts";
-
-interface Subscription {
-  userId: number;
-  premiumAlbumId: number;
-  username: string;
-  albumName: string;
-  artist: string;
-  status: string;
-  createdAt: string;
-  updatedAt: string;
-}
+import {Subscription} from "@/types/subscription.ts";
 
 const SubscriptionPage = () => {
   const [subscriptionData, setSubscriptionData] = useState<Subscription[]>([]);
@@ -23,17 +13,20 @@ const SubscriptionPage = () => {
     try {
       const response = await api.get('subscription' + '?page=' + page,)
       setLoading(false);
-      setSubscriptionData(response.data.subscription);
+      setSubscriptionData(
+        () => ([
+          ...response.data.subscription,
+        ])
+      );
     } catch (error) {
       console.error('Error fetching data:', error);
       setLoading(true)
-      setSubscriptionData([])
+      setSubscriptionData(() => ([]));
     }
   }
 
   useEffect(() => {
-    update();
-    const interval = setInterval(update, 1000 * 5); // 100 milliseconds
+    const interval = setInterval(update, 1000); // 100 milliseconds
     return () => clearInterval(interval);
   }, [subscriptionData]);
 
diff --git a/src/types/subscription.ts b/src/types/subscription.ts
new file mode 100644
index 0000000..4ce14a3
--- /dev/null
+++ b/src/types/subscription.ts
@@ -0,0 +1,10 @@
+export type Subscription = {
+  userId: number;
+  premiumAlbumId: number;
+  username: string;
+  albumName: string;
+  artist: string;
+  status: string;
+  createdAt: string;
+  updatedAt: string;
+}
\ No newline at end of file
-- 
GitLab