Skip to content

Commit

Permalink
refactor: features product 훅분리
Browse files Browse the repository at this point in the history
  • Loading branch information
Geunbaek committed Jan 18, 2025
1 parent 62dafee commit d5fc330
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 66 deletions.
10 changes: 4 additions & 6 deletions src/advanced/features/product/model/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
export {
useGetProductsQuery,
useGetProductByIdQuery,
useAddProductMutation,
useUpdateProductMutation,
} from './useProduct';
export { useGetProductsQuery } from './useGetProductsQuery';
export { useGetProductByIdQuery } from './useGetProductByIdQuery';
export { useAddProductMutation } from './useAddProductMutation';
export { useUpdateProductMutation } from './useUpdateProductMutation';
16 changes: 16 additions & 0 deletions src/advanced/features/product/model/useAddProductMutation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { addProduct, UpdateProduct } from '@advanced/entities/product';

export const useAddProductMutation = () => {
const queryClient = useQueryClient();
return useMutation({
mutationKey: ['/api/products'],
mutationFn: (product: UpdateProduct) => addProduct(product),
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: ['/api/products'],
exact: false,
});
},
});
};
9 changes: 9 additions & 0 deletions src/advanced/features/product/model/useGetProductByIdQuery.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { useSuspenseQuery } from '@tanstack/react-query';
import { getProductById } from '@advanced/entities/product';

export const useGetProductByIdQuery = (productId: string) => {
return useSuspenseQuery({
queryKey: ['/api/products', productId],
queryFn: () => getProductById(productId),
});
};
9 changes: 9 additions & 0 deletions src/advanced/features/product/model/useGetProductsQuery.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { useSuspenseQuery } from '@tanstack/react-query';
import { getProducts } from '@advanced/entities/product';

export const useGetProductsQuery = () => {
return useSuspenseQuery({
queryKey: ['/api/products'],
queryFn: () => getProducts(),
});
};
60 changes: 0 additions & 60 deletions src/advanced/features/product/model/useProduct.ts

This file was deleted.

22 changes: 22 additions & 0 deletions src/advanced/features/product/model/useUpdateProductMutation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { updateProduct, UpdateProduct } from '@advanced/entities/product';

export const useUpdateProductMutation = () => {
const queryClient = useQueryClient();
return useMutation({
mutationKey: ['/api/products'],
mutationFn: ({
productId,
product,
}: {
productId: string;
product: Partial<UpdateProduct>;
}) => updateProduct(productId, product),
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: ['/api/products'],
exact: false,
});
},
});
};

0 comments on commit d5fc330

Please sign in to comment.