Commit aaff4469 by Arjun Jhukal

made anylytics dynamic

parent 7f758c97
...@@ -19,13 +19,12 @@ export default function AdminHeader() { ...@@ -19,13 +19,12 @@ export default function AdminHeader() {
const [page, setPage] = React.useState(1); const [page, setPage] = React.useState(1);
const [pageSize, setPageSize] = React.useState(10); const [pageSize, setPageSize] = React.useState(10);
const { data } = useGetAllNotificationQuery({ page: page, per_page: pageSize }); const { data } = useGetAllNotificationQuery({ page: page, per_page: pageSize });
console.log(data);
return ( return (
<Box className='flex items-center gap-4 justify-between w-full'> <Box className='flex items-center gap-4 justify-between w-full'>
<AdminSearchBar /> <AdminSearchBar />
<div className="right flex items-center gap-4"> <div className="right flex items-center gap-4">
<CreatNewRecord /> <CreatNewRecord />
<NotificationPage notifications={data?.data?.data || []} pagination={data?.data?.pagination}/> <NotificationPage notifications={data?.data?.data || []} pagination={data?.data?.pagination} />
<Profile /> <Profile />
</div> </div>
</Box> </Box>
......
...@@ -51,7 +51,6 @@ export default function PlayerDetailPage({ id }: { id: number }) { ...@@ -51,7 +51,6 @@ export default function PlayerDetailPage({ id }: { id: number }) {
const { date } = formatDateTime(data?.data?.registered_date as string); const { date } = formatDateTime(data?.data?.registered_date as string);
console.log("user balance", userBalance);
return ( return (
<> <>
<section className="player__detail__intro mb-12 lg:mb-16"> <section className="player__detail__intro mb-12 lg:mb-16">
......
...@@ -35,7 +35,6 @@ export default function BannerSlider() { ...@@ -35,7 +35,6 @@ export default function BannerSlider() {
const { data, isLoading } = useGetAllBannerQuery(); const { data, isLoading } = useGetAllBannerQuery();
const [updateBanner, { isLoading: updating }] = useUpdateBannerMutation(); const [updateBanner, { isLoading: updating }] = useUpdateBannerMutation();
console.log("banner data", data);
const formik = useFormik({ const formik = useFormik({
initialValues: { initialValues: {
banners: data?.data?.length banners: data?.data?.length
......
...@@ -34,7 +34,6 @@ export default function TransactionTable({ user_id, game_id, search }: { user_id ...@@ -34,7 +34,6 @@ export default function TransactionTable({ user_id, game_id, search }: { user_id
const { data, isLoading: loadingTransaction } = useGetAllTransactionQuery(queryArgs); const { data, isLoading: loadingTransaction } = useGetAllTransactionQuery(queryArgs);
console.log("all transaction", data);
const tableData = useMemo(() => data?.data?.data || [], [data]); const tableData = useMemo(() => data?.data?.data || [], [data]);
const columns = useMemo<ColumnDef<SingleDepositProps>[]>(() => [ const columns = useMemo<ColumnDef<SingleDepositProps>[]>(() => [
......
...@@ -17,7 +17,6 @@ export default function MenuPage() { ...@@ -17,7 +17,6 @@ export default function MenuPage() {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const [selectedMenus, setSelectedMenus] = React.useState<any[]>([]); const [selectedMenus, setSelectedMenus] = React.useState<any[]>([]);
console.log("menus", { menus, selectedMenus });
React.useEffect(() => { React.useEffect(() => {
......
...@@ -12,6 +12,7 @@ import { settingApi } from "@/services/settingApi"; ...@@ -12,6 +12,7 @@ import { settingApi } from "@/services/settingApi";
import { pageApi } from "@/services/pageApi"; import { pageApi } from "@/services/pageApi";
import { notificationApi } from "@/services/notificationApi"; import { notificationApi } from "@/services/notificationApi";
import { menuApi, userMenuApi } from "@/services/menuApi"; import { menuApi, userMenuApi } from "@/services/menuApi";
import { dashboardApi } from "@/services/dashboardApi";
export const store = configureStore({ export const store = configureStore({
reducer: { reducer: {
...@@ -29,6 +30,7 @@ export const store = configureStore({ ...@@ -29,6 +30,7 @@ export const store = configureStore({
[notificationApi.reducerPath]: notificationApi.reducer, [notificationApi.reducerPath]: notificationApi.reducer,
[menuApi.reducerPath]: menuApi.reducer, [menuApi.reducerPath]: menuApi.reducer,
[userMenuApi.reducerPath]: userMenuApi.reducer, [userMenuApi.reducerPath]: userMenuApi.reducer,
[dashboardApi.reducerPath]: dashboardApi.reducer,
}, },
middleware: (getDefaultMiddleware) => middleware: (getDefaultMiddleware) =>
getDefaultMiddleware() getDefaultMiddleware()
...@@ -43,6 +45,7 @@ export const store = configureStore({ ...@@ -43,6 +45,7 @@ export const store = configureStore({
.concat(notificationApi.middleware) .concat(notificationApi.middleware)
.concat(menuApi.middleware) .concat(menuApi.middleware)
.concat(userMenuApi.middleware) .concat(userMenuApi.middleware)
.concat(dashboardApi.middleware)
}) })
export type RootState = ReturnType<typeof store.getState>; export type RootState = ReturnType<typeof store.getState>;
......
import { createApi } from "@reduxjs/toolkit/query/react";
import { baseQuery } from "./baseQuery";
import { AnalyticsResponse } from "@/types/dashboard";
export const dashboardApi = createApi({
reducerPath: "dashboardApi",
baseQuery: baseQuery,
tagTypes: ["Analytics", "Transactions"],
endpoints: (builder) => ({
getAnalytics: builder.query<AnalyticsResponse, { type: string }>({
query: ({ type }) => ({
url: `/api/admin/dashboard/overview?type=${type}`,
method: "GET",
}),
providesTags: ["Analytics"],
}),
getAdminTransactions: builder.query<any, void>({
query: () => ({
url: `/api/admin/dashboard/deposits`,
method: "GET",
}),
providesTags: ["Transactions"],
})
})
})
export const { useGetAnalyticsQuery, useGetAdminTransactionsQuery } = dashboardApi;
\ No newline at end of file
export type AnalyticsProps = {
name: string,
start_date: string,
end_date: string,
current: number,
previous: number,
percent: number,
profit: boolean,
message: string,
breakdown: number[]
}
export interface AnalyticsResponse {
data: {
total_deposits: AnalyticsProps,
total_transactions: AnalyticsProps,
total_users: AnalyticsProps,
total_withdraw: AnalyticsProps,
}
}
\ 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