Commit fbec2155 by Arjun Jhukal

update the env setup for success and also fixed redirection for buy and…

update the env setup for success and also fixed redirection for buy and withdrawl along side games from dashboard
parent 51c75632
......@@ -4,8 +4,14 @@ import { useFormik } from 'formik';
import * as Yup from 'yup';
import { InputLabel, OutlinedInput, Button } from '@mui/material';
import PageHeader from '@/components/molecules/PageHeader';
import { showToast, ToastVariant } from '@/slice/toastSlice';
import { useAppDispatch } from '@/hooks/hook';
import { useCreatePaymentSetupMutation, useGetPaymentSetupQuery } from '@/services/paymentSetupApi';
export default function PaymentSetup() {
const dispatch = useAppDispatch();
const { data } = useGetPaymentSetupQuery();
const [updatePaymentSetup, { isLoading }] = useCreatePaymentSetupMutation();
const formik = useFormik({
initialValues: {
idem_payment_uri: 'https://gateway.idem-club.info/idem/',
......@@ -25,7 +31,25 @@ export default function PaymentSetup() {
}),
onSubmit: (values) => {
console.log('Submitting IDEM Payment Setup:', values);
// TODO: handle save logic (API call, etc.)
try {
const response = { message: "ok" };
dispatch(
showToast({
message: response?.message || "Payment Setup updated successfully",
variant: ToastVariant.ERROR
})
)
}
catch (e: any) {
dispatch(
showToast({
message: e.message || "Error Updating Paymnet Setting",
variant: ToastVariant.ERROR
})
)
}
},
});
......
......@@ -26,7 +26,7 @@ export default async function PaymentSuccess({ params }: { params: Promise<{ slu
</p>
<Link
href={`${process.env.NEXT_PUBLIC_BASE_URL}/exclusive-games/${slug}`}
href={`${process.env.NEXT_PUBLIC_FRONTEND_URL}/exclusive-games/${slug}`}
className="ss-btn bg-primary-grad"
>
View Game Detail
......
......@@ -74,7 +74,7 @@ export default async function Home() {
) : games?.data?.data?.length ? (
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4 2xl:grid-cols-5 mb-8">
{games.data.data.map((game) => (
<ProtectedLink
<Link
href={`exclusive-games/${game.id}`}
key={game.id}
className="col-span-1 "
......@@ -97,7 +97,7 @@ export default async function Home() {
<strong className="text-[14px]">{game.name}</strong>
</div>
</GlassWrapper>
</ProtectedLink>
</Link>
))}
</div>
) : ""}
......@@ -110,7 +110,7 @@ export default async function Home() {
) : (
<div className="grid gap-4 grid-cols-2 md:grid-cols-3 lg:grid-cols-5 2xl:grid-cols-6 mb-8">
{subGames?.data?.map((game: any) => (
<ProtectedLink
<Link
href={`exclusive-games/${game.id}`}
key={game.name}
className="col-span-1 relative aspect-[1/1]"
......@@ -121,7 +121,7 @@ export default async function Home() {
fill
className="rounded-[24px] lg:rounded-[32px] object-cover group-hover:scale-105 transition-transform duration-300"
/>
</ProtectedLink>
</Link>
))}
</div>
)}
......
......@@ -36,7 +36,7 @@
--title: #f0f0f0;
/* Dark mode specific variables */
--primary-grad: linear-gradient(90deg, #b100b8 0%, #f335ed 100%);
--primary-grad: linear-gradient(90deg, #131013 0%, #f335ed 100%);
--secondary-grad: linear-gradient(90deg, #69a29d 0%, #93e0d9 100%);
--secondary: #93e0d8;
--text-regular: rgba(255, 255, 255, 0.8);
......
......@@ -49,18 +49,18 @@ export default function ExclusiveGameDetail({ game }: { game: SingleGameResponse
borderRadius: "16px"
}} className="flex justify-center items-center gap-2 py-4 px-6 bg-secondary-grad text-title ss-btn">
<div className="coins ">
<Link href={`/buy-coins/${game?.data?.id}`}>
<ProtectedLink href={`/buy-coins/${game?.data?.id}`}>
<strong className="text-[16px] leading-4 font-[600] block mb-1">+ Deposit Coins</strong>
</Link>
</ProtectedLink>
</div>
</Box>}
{game?.data?.provider == "goldcoincity" ? "" : <Box sx={{
borderRadius: "16px"
}} className="flex justify-center items-center gap-2 py-4 px-6 border border-secondary ss-btn">
<div className="coins">
<Link href={`/withdrawl`}>
<ProtectedLink href={`/withdrawl`}>
<strong className="text-[16px] leading-4 font-[600] block mb-1 text-secondary">Withdraw Coins</strong>
</Link>
</ProtectedLink>
</div>
</Box>}
......
......@@ -14,6 +14,7 @@ import { notificationApi } from "@/services/notificationApi";
import { menuApi, userMenuApi } from "@/services/menuApi";
import { dashboardApi } from "@/services/dashboardApi";
import { downloadApi } from "@/services/downloadApi";
import { paymentSetupApi } from "@/services/paymentSetupApi";
export const store = configureStore({
reducer: {
......@@ -33,6 +34,7 @@ export const store = configureStore({
[userMenuApi.reducerPath]: userMenuApi.reducer,
[dashboardApi.reducerPath]: dashboardApi.reducer,
[downloadApi.reducerPath]: downloadApi.reducer,
[paymentSetupApi.reducerPath]: paymentSetupApi.reducer,
},
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware()
......@@ -49,6 +51,7 @@ export const store = configureStore({
.concat(userMenuApi.middleware)
.concat(dashboardApi.middleware)
.concat(downloadApi.middleware)
.concat(paymentSetupApi.middleware)
})
export type RootState = ReturnType<typeof store.getState>;
......
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
import { baseQuery } from "./baseQuery";
import { GlobalResponse } from "@/types/config";
import { MenuResponse } from "@/types/menu";
type PaymentRequestProps = {
idem_payment_uri: string,
idem_hashkey: string,
idem_merchant_id: string,
}
export const paymentSetupApi = createApi({
reducerPath: "paymentSetupApi",
baseQuery: baseQuery,
tagTypes: ['PaymentSetup'],
endpoints: (builder) => ({
createPaymentSetup: builder.mutation<GlobalResponse, PaymentRequestProps>({
query: (body) => ({
url: "/api/admin/payment-setup",
method: "POST",
body: body
}),
invalidatesTags: ["PaymentSetup"]
}),
getPaymentSetup: builder.query<{ data: PaymentRequestProps; message: string }, void>({
query: () => ({
url: "/api/admin/payment-setup",
method: "GET"
})
, providesTags: ["PaymentSetup"]
}),
})
})
export const { useCreatePaymentSetupMutation, useGetPaymentSetupQuery } = paymentSetupApi;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment