@@ -2,11 +2,12 @@ import React from 'react';
22import { getUserInfo } from '../utils/user' ;
33import DashboardContent from './dashboard/DashboardContent' ;
44import UserPaymentLogs from './dashboard/UserPaymentLogs' ;
5+ import UserActivityCard from './dashboard/UserActivityCard' ;
56
67export default function Dashboard ( ) {
78 const [ isAuthenticated , setIsAuthenticated ] = React . useState < boolean > ( false ) ;
89 const [ isLoading , setIsLoading ] = React . useState < boolean > ( true ) ;
9- const [ activeTab , setActiveTab ] = React . useState < 'content' | 'activity' > ( 'content' ) ;
10+ const [ activeTab , setActiveTab ] = React . useState < 'content' | 'activity' | 'payment' > ( 'content' ) ;
1011
1112 React . useEffect ( ( ) => {
1213 let mounted = true ;
@@ -46,40 +47,57 @@ export default function Dashboard() {
4647 < >
4748 < div className = "w-full" >
4849 < div className = "mb-4 border-b border-gray-200 dark:border-gray-700" >
49- < ul
50- className = "flex flex-wrap -mb-px text-sm font-medium text-center text-gray-500 dark:text-gray-400"
51- role = "tablist" >
52- < li className = "me-2" role = "presentation" >
53- < button
54- type = "button"
55- role = "tab"
56- aria-controls = "user-information"
57- aria-selected = { activeTab === 'content' }
58- className = { `inline-block p-4 rounded-t-lg border-b-2 ${
59- activeTab === 'content'
60- ? 'text-blue-600 border-blue-600 dark:text-blue-500 dark:border-blue-500 bg-gray-100 dark:bg-gray-800'
61- : 'border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300'
62- } `}
63- onClick = { ( ) => setActiveTab ( 'content' ) } >
64- User information
65- </ button >
66- </ li >
67- < li role = "presentation" >
68- < button
69- type = "button"
70- role = "tab"
71- aria-controls = "user-activity"
72- aria-selected = { activeTab === 'activity' }
73- className = { `inline-block p-4 rounded-t-lg border-b-2 ${
74- activeTab === 'activity'
75- ? 'text-blue-600 border-blue-600 dark:text-blue-500 dark:border-blue-500 bg-gray-100 dark:bg-gray-800'
76- : 'border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300'
77- } `}
78- onClick = { ( ) => setActiveTab ( 'activity' ) } >
79- Activity
80- </ button >
81- </ li >
82- </ ul >
50+ < div className = "overflow-x-auto" >
51+ < ul
52+ className = "flex flex-nowrap -mb-px text-sm font-medium text-center text-gray-500 dark:text-gray-400 whitespace-nowrap"
53+ role = "tablist" >
54+ < li className = "me-2" role = "presentation" >
55+ < button
56+ type = "button"
57+ role = "tab"
58+ aria-controls = "user-information"
59+ aria-selected = { activeTab === 'content' }
60+ className = { `inline-block p-4 rounded-t-lg border-b-2 flex-shrink-0 ${
61+ activeTab === 'content'
62+ ? 'text-blue-600 border-blue-600 dark:text-blue-500 dark:border-blue-500 bg-gray-100 dark:bg-gray-800'
63+ : 'border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300'
64+ } `}
65+ onClick = { ( ) => setActiveTab ( 'content' ) } >
66+ User information
67+ </ button >
68+ </ li >
69+ < li role = "presentation" >
70+ < button
71+ type = "button"
72+ role = "tab"
73+ aria-controls = "user-activity"
74+ aria-selected = { activeTab === 'activity' }
75+ className = { `inline-block p-4 rounded-t-lg border-b-2 flex-shrink-0 ${
76+ activeTab === 'activity'
77+ ? 'text-blue-600 border-blue-600 dark:text-blue-500 dark:border-blue-500 bg-gray-100 dark:bg-gray-800'
78+ : 'border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300'
79+ } `}
80+ onClick = { ( ) => setActiveTab ( 'activity' ) } >
81+ Activity
82+ </ button >
83+ </ li >
84+ < li role = "presentation" >
85+ < button
86+ type = "button"
87+ role = "tab"
88+ aria-controls = "payment-activity"
89+ aria-selected = { activeTab === 'payment' }
90+ className = { `inline-block p-4 rounded-t-lg border-b-2 flex-shrink-0 ${
91+ activeTab === 'payment'
92+ ? 'text-blue-600 border-blue-600 dark:text-blue-500 dark:border-blue-500 bg-gray-100 dark:bg-gray-800'
93+ : 'border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300'
94+ } `}
95+ onClick = { ( ) => setActiveTab ( 'payment' ) } >
96+ Payment Activity
97+ </ button >
98+ </ li >
99+ </ ul >
100+ </ div >
83101 </ div >
84102
85103 < div id = "dashboard-tabs-content" >
@@ -95,7 +113,13 @@ export default function Dashboard() {
95113 role = "tabpanel"
96114 aria-labelledby = "user-activity"
97115 className = { `${ activeTab === 'activity' ? '' : 'hidden' } ` } >
98- { /* <UserActivityCard /> */ }
116+ < UserActivityCard />
117+ </ div >
118+ < div
119+ id = "payment-activity"
120+ role = "tabpanel"
121+ aria-labelledby = "payment-activity"
122+ className = { `${ activeTab === 'payment' ? '' : 'hidden' } ` } >
99123 < UserPaymentLogs className = "w-full px-2 sm:px-4 md:px-6 lg:px-8 transition-colors mt-4" />
100124 </ div >
101125 </ div >
0 commit comments