34 lines
966 B
JavaScript
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 }
|
|
}
|