donetick-fe/src/queries/ChoreQueries.jsx

34 lines
966 B
JavaScript

import { useMutation, useQueryClient } from '@tanstack/react-query'
import { useState } from 'react'
import { useQuery } from 'react-query'
import { CreateChore, GetChoresHistory, GetChoresNew } from '../utils/Fetcher'
export const useChores = includeArchive => {
return useQuery(['chores', includeArchive], () =>
GetChoresNew(includeArchive),
)
}
export const useCreateChore = () => {
const queryClient = useQueryClient()
return useMutation(CreateChore, {
onSuccess: () => {
queryClient.invalidateQueries('chores')
},
})
}
export const useChoresHistory = (initialLimit, includeMembers) => {
const [limit, setLimit] = useState(initialLimit) // Initially, no limit is selected
const { data, error, isLoading } = useQuery(['choresHistory', limit], () =>
GetChoresHistory(limit, includeMembers),
)
const handleLimitChange = newLimit => {
setLimit(newLimit)
}
return { data, error, isLoading, handleLimitChange }
}