Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
'use client'
|
|
|
|
import { useQuery } from '@tanstack/react-query'
|
|
|
|
import { consumerKeys } from '@/queries/consumerKeys'
|
|
import { unwrapService } from '@/queries/unwrapService'
|
|
import { getBookmarkedEvents } from '@/services/eventBookmarks'
|
|
import { discoveryReferenceStaleTime, fetchDiscoveryCategories } from '@/services/discovery'
|
|
import { fetchAllCities } from '@/services/geography'
|
|
import { LIST_WALLET_TRANSACTIONS } from '@/services/wallet'
|
|
import { LIST_BANK_ACCOUNTS, LIST_WITHDRAWAL_REQUESTS } from '@/services/withdrawals'
|
|
import { LIST_MY_SETTLEMENTS } from '@/services/settlements'
|
|
|
|
export const useBookmarksQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.bookmarks(),
|
|
enabled,
|
|
queryFn: () => getBookmarkedEvents(),
|
|
})
|
|
|
|
export const useDiscoveryCitiesQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.discoveryCities(),
|
|
enabled,
|
|
queryFn: () => fetchAllCities(),
|
|
staleTime: discoveryReferenceStaleTime,
|
|
})
|
|
|
|
export const useDiscoveryCategoriesQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.discoveryCategories(),
|
|
enabled,
|
|
queryFn: () => fetchDiscoveryCategories(),
|
|
staleTime: discoveryReferenceStaleTime,
|
|
})
|
|
|
|
export const useWalletTransactionsQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.walletTransactions(),
|
|
enabled,
|
|
queryFn: async () => unwrapService(await LIST_WALLET_TRANSACTIONS({ errorMode: 'parent' })),
|
|
// Persisted to localStorage for instant paint on cold start (see
|
|
// lib/queryClient.ts) — transaction history must never be trusted
|
|
// stale, so force an immediate background refetch on every mount
|
|
// instead of the default 30s staleTime.
|
|
staleTime: 0,
|
|
})
|
|
|
|
export const useBankAccountsQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.bankAccounts(),
|
|
enabled,
|
|
queryFn: async () => unwrapService(await LIST_BANK_ACCOUNTS({ errorMode: 'parent' })),
|
|
})
|
|
|
|
export const useWithdrawalRequestsQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.withdrawalRequests(),
|
|
enabled,
|
|
queryFn: async () => unwrapService(await LIST_WITHDRAWAL_REQUESTS({ errorMode: 'parent' })),
|
|
})
|
|
|
|
export const useSettlementRequestsQuery = (enabled = true) =>
|
|
useQuery({
|
|
queryKey: consumerKeys.settlementRequests(),
|
|
enabled,
|
|
queryFn: () => LIST_MY_SETTLEMENTS(),
|
|
})
|