'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(), })