46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { useQuery } from '@tanstack/react-query';
|
|
import { performanceApi } from './performance-api.js';
|
|
|
|
export const performanceQueryKeys = {
|
|
subreddits: ['performance', 'subreddits'] as const,
|
|
strategies: ['performance', 'strategies'] as const,
|
|
trend: (days: number) => ['performance', 'trend', days] as const,
|
|
successfulExamples: ['performance', 'successful-examples'] as const,
|
|
funnel: ['performance', 'funnel'] as const,
|
|
};
|
|
|
|
export function useSubredditPerformanceQuery() {
|
|
return useQuery({
|
|
queryKey: performanceQueryKeys.subreddits,
|
|
queryFn: performanceApi.getSubredditPerformance,
|
|
});
|
|
}
|
|
|
|
export function useStrategyPerformanceQuery() {
|
|
return useQuery({
|
|
queryKey: performanceQueryKeys.strategies,
|
|
queryFn: performanceApi.getStrategyPerformance,
|
|
});
|
|
}
|
|
|
|
export function useDailyTrendQuery(days: number) {
|
|
return useQuery({
|
|
queryKey: performanceQueryKeys.trend(days),
|
|
queryFn: () => performanceApi.getDailyTrend(days),
|
|
});
|
|
}
|
|
|
|
export function useSuccessfulExamplesQuery() {
|
|
return useQuery({
|
|
queryKey: performanceQueryKeys.successfulExamples,
|
|
queryFn: performanceApi.getSuccessfulExamples,
|
|
});
|
|
}
|
|
|
|
export function useFunnelQuery() {
|
|
return useQuery({
|
|
queryKey: performanceQueryKeys.funnel,
|
|
queryFn: performanceApi.getFunnel,
|
|
});
|
|
}
|