- Change MinIO healthcheck from `mc ready local` to curl-based probe (`curl -sf http://localhost:9000/minio/health/live`) in both docker-compose.yml and docker-compose.prod.yml, matching the approach already used in docker-compose.ci.yml - Add descriptive placeholder for REDIS_PASSWORD in .env.example (was empty, now has CHANGE_ME_IN_PRODUCTION reminder) Co-Authored-By: Paperclip <noreply@paperclip.ing>
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
import { inquiriesApi, type ListInquiriesParams, type CreateInquiryDto } from '@/lib/inquiries-api';
|
|
|
|
export const inquiriesKeys = {
|
|
all: ['inquiries'] as const,
|
|
myInquiries: (params: ListInquiriesParams) => ['inquiries', 'my', params] as const,
|
|
byListing: (listingId: string, params: ListInquiriesParams) =>
|
|
['inquiries', 'listing', listingId, params] as const,
|
|
};
|
|
|
|
export function useMyInquiries(params: ListInquiriesParams = {}) {
|
|
return useQuery({
|
|
queryKey: inquiriesKeys.myInquiries(params),
|
|
queryFn: () => inquiriesApi.getMyInquiries(params),
|
|
});
|
|
}
|
|
|
|
export function useInquiriesByListing(listingId: string, params: ListInquiriesParams = {}) {
|
|
return useQuery({
|
|
queryKey: inquiriesKeys.byListing(listingId, params),
|
|
queryFn: () => inquiriesApi.getByListing(listingId, params),
|
|
enabled: !!listingId,
|
|
});
|
|
}
|
|
|
|
export function useMarkInquiryRead() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (id: string) => inquiriesApi.markAsRead(id),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: inquiriesKeys.all });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useCreateInquiry() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (data: CreateInquiryDto) => inquiriesApi.create(data),
|
|
onSuccess: (_data, variables) => {
|
|
queryClient.invalidateQueries({ queryKey: inquiriesKeys.all });
|
|
queryClient.invalidateQueries({
|
|
queryKey: inquiriesKeys.byListing(variables.listingId, {}),
|
|
});
|
|
},
|
|
});
|
|
}
|