Merge branch 'feature/react-query' of https://github.com/abouolia/Ratteb into feature/react-query

This commit is contained in:
a.bouhuolia
2021-02-10 18:35:40 +02:00
16 changed files with 506 additions and 303 deletions

View File

@@ -25,7 +25,7 @@ export function useCreateCurrency(props) {
export function useEditCurrency(props) {
const queryClient = useQueryClient();
return useMutation((currencyCode, values) =>
return useMutation(([currencyCode, values]) =>
ApiService.post(`currencies/${currencyCode}`, values),
{
onSuccess: () => {

View File

@@ -16,4 +16,5 @@ export * from './estimates';
export * from './receipts';
export * from './paymentReceives';
export * from './paymentMades';
export * from './settings';
export * from './settings';
export * from './users';

View File

@@ -0,0 +1,73 @@
import { useMutation, useQueryClient, useQuery } from 'react-query';
import { defaultTo } from 'lodash';
import ApiService from 'services/ApiService';
/**
* Create a new invite user.
*/
export function useCreateInviteUser(props) {
const queryClient = useQueryClient();
return useMutation((values) => ApiService.post('invite/send', values), {
onSuccess: () => {
queryClient.invalidateQueries('USERS');
},
...props,
});
}
/**
* Edits the given user.
*
*/
export function useEditUser(props) {
const queryClient = useQueryClient();
return useMutation(([id, values]) => ApiService.post(`users/${id}`, values), {
onSuccess: () => {
queryClient.invalidateQueries('USERS');
},
...props,
});
}
/**
* Deletes the given user.
*/
export function useDeleteUser(props) {
const queryClient = useQueryClient();
return useMutation((id) => ApiService.delete(`users/${id}`), {
onSuccess: () => {
queryClient.invalidateQueries('USERS');
queryClient.invalidateQueries('USER');
},
...props,
});
}
/**
* Retrieves users list.
*/
export function useUsers(props) {
const result = useQuery(
['USERS'],
() => ApiService.get(`USERS`).then((response) => response.data.users),
props,
);
return {
...result,
data: defaultTo(result.data, {}),
};
}
/**
* Retrieve details of the given user.
*/
export function useUser(id, props) {
return useQuery(
['USER', id],
() => ApiService.get(`users/${id}`).then((response) => response.data.item),
props,
);
}