diff --git a/src/app/[locale]/pages/payment/page.tsx b/src/app/[locale]/pages/payment/page.tsx index a978b63..030f7dc 100644 --- a/src/app/[locale]/pages/payment/page.tsx +++ b/src/app/[locale]/pages/payment/page.tsx @@ -3,6 +3,7 @@ import UserUsage from '@/app/ui/payment/user-usage'; import TokensSpendStats from '@/app/ui/payment/tokens-spend-stats'; import PaymentTabs from '@/app/ui/payment/payment-tabs'; import SecurePayments from '@/app/ui/payment/secure-payments'; +import PaymentUserCards from '@/app/ui/payment/payment-user-cards'; export const metadata: Metadata = { title: 'payment', @@ -22,6 +23,7 @@ export default function Page() { + diff --git a/src/app/actions/paymentAction.ts b/src/app/actions/paymentAction.ts new file mode 100644 index 0000000..28840ad --- /dev/null +++ b/src/app/actions/paymentAction.ts @@ -0,0 +1,30 @@ +'use server' + +import { API_BASE_URL } from '@/app/actions/definitions'; +import { getSessionData } from '@/app/actions/session'; + +export async function getPaymentsMethods() { + const token = await getSessionData('token'); + console.log('getPaymentsMethods'); + + try { + const response = await fetch(`${API_BASE_URL}/api/payments/methods`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + 'Authorization': `Bearer ${token}`, + } + }); + + if (response.ok) { + const parsed = await response.json(); + console.log(parsed); + return parsed; + } else { + return null + } + } catch (error) { + return null + } +} \ No newline at end of file diff --git a/src/app/hooks/react-query/usePaymentsMethods.ts b/src/app/hooks/react-query/usePaymentsMethods.ts new file mode 100644 index 0000000..cfa5648 --- /dev/null +++ b/src/app/hooks/react-query/usePaymentsMethods.ts @@ -0,0 +1,25 @@ +import { useQuery } from '@tanstack/react-query'; +import { getPaymentsMethods } from '@/app/actions/paymentAction'; + +/* export interface PaymentsMethods { + total_violations: number, + new_violations: number, + in_progress_violations: number, + resolved_violations: number +} */ + +export const usePaymentsMethods = () => { + return useQuery({ + queryKey: ['paymentsMethods'], + queryFn: () => { + return getPaymentsMethods() + }, + select: (data: any | null) => { + if (!data) { + return null + } + return data; + }, + retry: false + }); +}; \ No newline at end of file diff --git a/src/app/styles/pages-styles.scss b/src/app/styles/pages-styles.scss index 9feccd7..bd60b56 100644 --- a/src/app/styles/pages-styles.scss +++ b/src/app/styles/pages-styles.scss @@ -5247,4 +5247,11 @@ } } } +} + +.payment-user-cards { + .card-wrapper { + display: flex; + gap: 10px; + } } \ No newline at end of file diff --git a/src/app/ui/inputs/bank-card-inpit.tsx b/src/app/ui/inputs/bank-card-inpit.tsx index 91f3dc4..42ab496 100644 --- a/src/app/ui/inputs/bank-card-inpit.tsx +++ b/src/app/ui/inputs/bank-card-inpit.tsx @@ -35,7 +35,6 @@ export default function BankCardInput({ bankCardState, validateHandler, disabled return ( { + console.log(paymentsMethods); + }, [paymentsMethods]) + + return ( +
+
+ { }} + disabled={true} + isValid={undefined} + /> + + +
+
+ ) +} \ No newline at end of file