diff --git a/.eslintrc.js b/.eslintrc.js
index 70fda91..076b007 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -6,13 +6,13 @@ module.exports = {
'react/no-children-prop': 'off',
'@next/next/no-img-element': 'off',
'@next/next/no-page-custom-font': 'off',
- '@typescript-eslint/consistent-type-imports': 'error',
+ '@typescript-eslint/consistent-type-imports': 'warn',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-explicit-any': 'off',
- '@typescript-eslint/no-unused-vars': 'error',
+ '@typescript-eslint/no-unused-vars': 'warn',
'@typescript-eslint/no-non-null-assertion': 'off',
'lines-around-comment': [
- 'error',
+ 'warn',
{
beforeBlockComment: true,
beforeLineComment: true,
@@ -22,7 +22,7 @@ module.exports = {
}
],
'padding-line-between-statements': [
- 'error',
+ 'warn',
{
blankLine: 'any',
prev: 'export',
@@ -49,15 +49,15 @@ module.exports = {
next: '*'
}
],
- 'newline-before-return': 'error',
+ 'newline-before-return': 'warn',
'import/newline-after-import': [
- 'error',
+ 'warn',
{
count: 1
}
],
'import/order': [
- 'error',
+ 'warn',
{
groups: ['builtin', 'external', ['internal', 'parent', 'sibling', 'index'], ['object', 'unknown']],
pathGroups: [
@@ -86,7 +86,7 @@ module.exports = {
}
],
'@typescript-eslint/ban-types': [
- 'error',
+ 'warn',
{
extendDefaults: true,
types: {
diff --git a/src/app/[lang]/(dashboard)/(private)/apps/ecommerce/products/[id]/detail/page.tsx b/src/app/[lang]/(dashboard)/(private)/apps/ecommerce/products/[id]/detail/page.tsx
index 0335800..2ff66aa 100644
--- a/src/app/[lang]/(dashboard)/(private)/apps/ecommerce/products/[id]/detail/page.tsx
+++ b/src/app/[lang]/(dashboard)/(private)/apps/ecommerce/products/[id]/detail/page.tsx
@@ -1,10 +1,5 @@
import ProductDetail from "../../../../../../../../../views/apps/ecommerce/products/detail/ProductDetail"
-// In your page or component
-const productData = {
- // Your product object here
-}
-
export default function ProductPage() {
return
}
diff --git a/src/components/layout/shared/UserDropdown.tsx b/src/components/layout/shared/UserDropdown.tsx
index 1542af7..6ba4184 100644
--- a/src/components/layout/shared/UserDropdown.tsx
+++ b/src/components/layout/shared/UserDropdown.tsx
@@ -48,7 +48,7 @@ const UserDropdown = () => {
// Refs
const anchorRef = useRef(null)
- const { mutate } = useAuthMutation.logout()
+ const { logout } = useAuthMutation()
// Hooks
const router = useRouter()
@@ -75,7 +75,7 @@ const UserDropdown = () => {
try {
// Sign out from the app
// await signOut({ callbackUrl: process.env.NEXT_PUBLIC_APP_URL })
- mutate()
+ logout.mutate()
router.push(getLocalizedUrl('/login', locale as Locale))
} catch (error) {
console.error(error)
diff --git a/src/services/mutations/auth.ts b/src/services/mutations/auth.ts
index e632b92..80c4f4c 100644
--- a/src/services/mutations/auth.ts
+++ b/src/services/mutations/auth.ts
@@ -1,37 +1,34 @@
import { useMutation } from '@tanstack/react-query'
import { api } from '../api'
-import { redirect } from 'next/navigation'
type LoginPayload = {
email: string
password: string
}
-export const useAuthMutation = {
- login: () => {
- return useMutation({
- mutationFn: async (payload: LoginPayload) => {
- const response = await api.post('/auth/login', payload)
- return response.data.data
- },
- onSuccess: data => {
- // Optional: refetch 'users' list after success
- localStorage.setItem('authToken', data.token)
- localStorage.setItem('user', JSON.stringify(data.user))
- }
- })
- },
+export const useAuthMutation = () => {
+ const login = useMutation({
+ mutationFn: async (payload: LoginPayload) => {
+ const response = await api.post('/auth/login', payload)
+ return response.data.data
+ },
+ onSuccess: data => {
+ // Optional: refetch 'users' list after success
+ localStorage.setItem('authToken', data.token)
+ localStorage.setItem('user', JSON.stringify(data.user))
+ }
+ })
- logout: () => {
- return useMutation({
- mutationFn: async () => {
- await api.post('/auth/logout')
- },
- onSuccess: () => {
- // Optional: refetch 'users' list after success
- localStorage.removeItem('authToken')
- localStorage.removeItem('user')
- }
- })
- }
+ const logout = useMutation({
+ mutationFn: async () => {
+ await api.post('/auth/logout')
+ },
+ onSuccess: () => {
+ // Optional: refetch 'users' list after success
+ localStorage.removeItem('authToken')
+ localStorage.removeItem('user')
+ }
+ })
+
+ return { login, logout }
}
diff --git a/src/services/mutations/categories.ts b/src/services/mutations/categories.ts
index 238e613..fcc29fe 100644
--- a/src/services/mutations/categories.ts
+++ b/src/services/mutations/categories.ts
@@ -3,58 +3,50 @@ import { api } from '../api'
import { toast } from 'react-toastify'
import { CategoryRequest } from '../../types/services/category'
-export const useCategoriesMutation = {
- createCategory: () => {
- const queryClient = useQueryClient()
+export const useCategoriesMutation = () => {
+ const queryClient = useQueryClient()
- return useMutation({
- mutationFn: async (newCategory: CategoryRequest) => {
- const response = await api.post('/categories', newCategory)
- return response.data
- },
- onSuccess: () => {
- toast.success('Category created successfully!')
- queryClient.invalidateQueries({ queryKey: ['categories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
- }
- })
- },
+ const createCategory = useMutation({
+ mutationFn: async (newCategory: CategoryRequest) => {
+ const response = await api.post('/categories', newCategory)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Category created successfully!')
+ queryClient.invalidateQueries({ queryKey: ['categories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
+ }
+ })
- updateCategory: () => {
- const queryClient = useQueryClient()
+ const updateCategory = useMutation({
+ mutationFn: async ({ id, payload }: { id: string; payload: CategoryRequest }) => {
+ const response = await api.put(`/categories/${id}`, payload)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Category updated successfully!')
+ queryClient.invalidateQueries({ queryKey: ['categories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
+ }
+ })
- return useMutation({
- mutationFn: async ({ id, payload }: { id: string; payload: CategoryRequest }) => {
- const response = await api.put(`/categories/${id}`, payload)
- return response.data
- },
- onSuccess: () => {
- toast.success('Category updated successfully!')
- queryClient.invalidateQueries({ queryKey: ['categories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
- }
- })
- },
+ const deleteCategory = useMutation({
+ mutationFn: async (id: string) => {
+ const response = await api.delete(`/categories/${id}`)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Category deleted successfully!')
+ queryClient.invalidateQueries({ queryKey: ['categories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
+ }
+ })
- deleteCategory: () => {
- const queryClient = useQueryClient()
-
- return useMutation({
- mutationFn: async (id: string) => {
- const response = await api.delete(`/categories/${id}`)
- return response.data
- },
- onSuccess: () => {
- toast.success('Category deleted successfully!')
- queryClient.invalidateQueries({ queryKey: ['categories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
- }
- })
- }
+ return { createCategory, updateCategory, deleteCategory }
}
diff --git a/src/services/mutations/files.ts b/src/services/mutations/files.ts
index 2fcece1..4766adc 100644
--- a/src/services/mutations/files.ts
+++ b/src/services/mutations/files.ts
@@ -2,24 +2,24 @@ import { useMutation } from '@tanstack/react-query'
import { api } from '../api'
import { toast } from 'react-toastify'
-export const useFilesMutation = {
- uploadFile: () => {
- return useMutation({
- mutationFn: async (newFile: FormData) => {
- const response = await api.post('/files/upload', newFile, {
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- })
+export const useFilesMutation = () => {
+ const uploadFile = useMutation({
+ mutationFn: async (newFile: FormData) => {
+ const response = await api.post('/files/upload', newFile, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
- return response.data.data
- },
- onSuccess: data => {
- toast.success('File uploaded successfully!')
- },
- onError: (error: any) => {
- toast.error(error.response.data.errors[0].cause)
- }
- })
- }
+ return response.data.data
+ },
+ onSuccess: data => {
+ toast.success('File uploaded successfully!')
+ },
+ onError: (error: any) => {
+ toast.error(error.response.data.errors[0].cause)
+ }
+ })
+
+ return { uploadFile }
}
diff --git a/src/services/mutations/inventories.ts b/src/services/mutations/inventories.ts
index 45a49cb..d4e800f 100644
--- a/src/services/mutations/inventories.ts
+++ b/src/services/mutations/inventories.ts
@@ -3,58 +3,50 @@ import { api } from '../api'
import { toast } from 'react-toastify'
import { InventoryAdjustRequest, InventoryRequest } from '../../types/services/inventory'
-export const useInventoriesMutation = {
- createInventory: () => {
- const queryClient = useQueryClient()
+export const useInventoriesMutation = () => {
+ const queryClient = useQueryClient()
- return useMutation({
- mutationFn: async (newInventory: InventoryRequest) => {
- const response = await api.post('/inventory', newInventory)
- return response.data
- },
- onSuccess: () => {
- toast.success('Inventory created successfully!')
- queryClient.invalidateQueries({ queryKey: ['inventories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
- }
- })
- },
+ const createInventory = useMutation({
+ mutationFn: async (newInventory: InventoryRequest) => {
+ const response = await api.post('/inventory', newInventory)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Inventory created successfully!')
+ queryClient.invalidateQueries({ queryKey: ['inventories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
+ }
+ })
- adjustInventory: () => {
- const queryClient = useQueryClient()
+ const adjustInventory = useMutation({
+ mutationFn: async (newInventory: InventoryAdjustRequest) => {
+ const response = await api.post('/inventory/adjust', newInventory)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Inventory adjusted successfully!')
+ queryClient.invalidateQueries({ queryKey: ['inventories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
+ }
+ })
- return useMutation({
- mutationFn: async (newInventory: InventoryAdjustRequest) => {
- const response = await api.post('/inventory/adjust', newInventory)
- return response.data
- },
- onSuccess: () => {
- toast.success('Inventory adjusted successfully!')
- queryClient.invalidateQueries({ queryKey: ['inventories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
- }
- })
- },
+ const deleteInventory = useMutation({
+ mutationFn: async (id: string) => {
+ const response = await api.delete(`/inventory/${id}`)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Inventory deleted successfully!')
+ queryClient.invalidateQueries({ queryKey: ['inventories'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
+ }
+ })
- deleteInventory: () => {
- const queryClient = useQueryClient()
-
- return useMutation({
- mutationFn: async (id: string) => {
- const response = await api.delete(`/inventory/${id}`)
- return response.data
- },
- onSuccess: () => {
- toast.success('Inventory deleted successfully!')
- queryClient.invalidateQueries({ queryKey: ['inventories'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
- }
- })
- }
+ return { createInventory, adjustInventory, deleteInventory }
}
diff --git a/src/services/mutations/products.ts b/src/services/mutations/products.ts
index 16aaef3..3cd8c72 100644
--- a/src/services/mutations/products.ts
+++ b/src/services/mutations/products.ts
@@ -3,52 +3,48 @@ import { api } from '../api'
import { toast } from 'react-toastify'
import { ProductRequest } from '../../types/services/product'
-export const useProductsMutation = {
- createProduct: () => {
- return useMutation({
- mutationFn: async (newProduct: ProductRequest) => {
- const response = await api.post('/products', newProduct)
- return response.data
- },
- onSuccess: () => {
- toast.success('Product created successfully!')
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
- }
- })
- },
+export const useProductsMutation = () => {
+ const queryClient = useQueryClient()
- updateProduct: () => {
- return useMutation({
- mutationFn: async ({ id, payload }: { id: string; payload: ProductRequest }) => {
- const response = await api.put(`/products/${id}`, payload)
- return response.data
- },
- onSuccess: () => {
- toast.success('Product updated successfully!')
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
- }
- })
- },
+ const createProduct = useMutation({
+ mutationFn: async (newProduct: ProductRequest) => {
+ const response = await api.post('/products', newProduct)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Product created successfully!')
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
+ }
+ })
- deleteProduct: () => {
- const queryClient = useQueryClient()
+ const updateProduct = useMutation({
+ mutationFn: async ({ id, payload }: { id: string; payload: ProductRequest }) => {
+ const response = await api.put(`/products/${id}`, payload)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Product updated successfully!')
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
+ }
+ })
- return useMutation({
- mutationFn: async (id: string) => {
- const response = await api.delete(`/products/${id}`)
- return response.data
- },
- onSuccess: () => {
- toast.success('Product deleted successfully!')
- queryClient.invalidateQueries({ queryKey: ['products'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
- }
- })
- }
+ const deleteProduct = useMutation({
+ mutationFn: async (id: string) => {
+ const response = await api.delete(`/products/${id}`)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Product deleted successfully!')
+ queryClient.invalidateQueries({ queryKey: ['products'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
+ }
+ })
+
+ return { createProduct, updateProduct, deleteProduct }
}
diff --git a/src/services/mutations/units.ts b/src/services/mutations/units.ts
index 3660448..8d0c3df 100644
--- a/src/services/mutations/units.ts
+++ b/src/services/mutations/units.ts
@@ -3,58 +3,50 @@ import { toast } from 'react-toastify'
import { UnitRequest } from '../../types/services/unit'
import { api } from '../api'
-export const useUnitsMutation = {
- createUnit: () => {
- const queryClient = useQueryClient()
+export const useUnitsMutation = () => {
+ const queryClient = useQueryClient()
- return useMutation({
- mutationFn: async (newUnit: UnitRequest) => {
- const response = await api.post('/units', newUnit)
- return response.data
- },
- onSuccess: () => {
- toast.success('Unit created successfully!')
- queryClient.invalidateQueries({ queryKey: ['units'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
- }
- })
- },
+ const createUnit = useMutation({
+ mutationFn: async (newUnit: UnitRequest) => {
+ const response = await api.post('/units', newUnit)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Unit created successfully!')
+ queryClient.invalidateQueries({ queryKey: ['units'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
+ }
+ })
- updateUnit: () => {
- const queryClient = useQueryClient()
+ const updateUnit = useMutation({
+ mutationFn: async ({ id, payload }: { id: string; payload: UnitRequest }) => {
+ const response = await api.put(`/units/${id}`, payload)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Unit updated successfully!')
+ queryClient.invalidateQueries({ queryKey: ['units'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
+ }
+ })
- return useMutation({
- mutationFn: async ({ id, payload }: { id: string; payload: UnitRequest }) => {
- const response = await api.put(`/units/${id}`, payload)
- return response.data
- },
- onSuccess: () => {
- toast.success('Unit updated successfully!')
- queryClient.invalidateQueries({ queryKey: ['units'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Update failed')
- }
- })
- },
+ const deleteUnit = useMutation({
+ mutationFn: async (id: string) => {
+ const response = await api.delete(`/units/${id}`)
+ return response.data
+ },
+ onSuccess: () => {
+ toast.success('Unit deleted successfully!')
+ queryClient.invalidateQueries({ queryKey: ['units'] })
+ },
+ onError: (error: any) => {
+ toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
+ }
+ })
- deleteUnit: () => {
- const queryClient = useQueryClient()
-
- return useMutation({
- mutationFn: async (id: string) => {
- const response = await api.delete(`/units/${id}`)
- return response.data
- },
- onSuccess: () => {
- toast.success('Unit deleted successfully!')
- queryClient.invalidateQueries({ queryKey: ['units'] })
- },
- onError: (error: any) => {
- toast.error(error.response?.data?.errors?.[0]?.cause || 'Delete failed')
- }
- })
- }
+ return { createUnit, updateUnit, deleteUnit }
}
diff --git a/src/services/mutations/users.ts b/src/services/mutations/users.ts
index 06b7770..6618122 100644
--- a/src/services/mutations/users.ts
+++ b/src/services/mutations/users.ts
@@ -7,21 +7,21 @@ type CreateUserPayload = {
email: string
}
-const useUsersMutation = {
- createUser: () => {
- const queryClient = useQueryClient()
+const useUsersMutation = () => {
+ const queryClient = useQueryClient()
+
+ const createUser = useMutation({
+ mutationFn: async newUser => {
+ const response = await api.post('/users', newUser)
+ return response.data
+ },
+ onSuccess: () => {
+ // Optional: refetch 'users' list after success
+ queryClient.invalidateQueries({ queryKey: ['users'] })
+ }
+ })
- return useMutation({
- mutationFn: async newUser => {
- const response = await api.post('/users', newUser)
- return response.data
- },
- onSuccess: () => {
- // Optional: refetch 'users' list after success
- queryClient.invalidateQueries({ queryKey: ['users'] })
- }
- })
- }
+ return { createUser }
}
export default useUsersMutation
diff --git a/src/services/queries/categories.ts b/src/services/queries/categories.ts
index f777b77..ea0a49d 100644
--- a/src/services/queries/categories.ts
+++ b/src/services/queries/categories.ts
@@ -8,32 +8,29 @@ interface CategoriesQueryParams {
search?: string
}
-export const useCategoriesQuery = {
- getCategories: (params: CategoriesQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useCategories(params: CategoriesQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['categories', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['categories', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
+ if (search) {
+ queryParams.append('search', search)
+ }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
}
+ })
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/categories?${queryParams.toString()}`)
- return res.data.data
- },
- })
- }
+ const res = await api.get(`/categories?${queryParams.toString()}`)
+ return res.data.data
+ }
+ })
}
diff --git a/src/services/queries/inventories.ts b/src/services/queries/inventories.ts
index 7498be7..95b144e 100644
--- a/src/services/queries/inventories.ts
+++ b/src/services/queries/inventories.ts
@@ -8,32 +8,29 @@ interface InventoriesQueryParams {
search?: string
}
-export const useInventoriesQuery = {
- getInventories: (params: InventoriesQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useInventories(params: InventoriesQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['inventories', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['inventories', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
+ if (search) {
+ queryParams.append('search', search)
+ }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
}
+ })
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/inventory?${queryParams.toString()}`)
- return res.data.data
- },
- })
- }
+ const res = await api.get(`/inventory?${queryParams.toString()}`)
+ return res.data.data
+ },
+ })
}
diff --git a/src/services/queries/orders.ts b/src/services/queries/orders.ts
index c88a85b..f88d7bb 100644
--- a/src/services/queries/orders.ts
+++ b/src/services/queries/orders.ts
@@ -1,6 +1,6 @@
-import { useQuery } from "@tanstack/react-query"
-import { Orders } from "../../types/services/order"
-import { api } from "../api"
+import { useQuery } from '@tanstack/react-query'
+import { Orders } from '../../types/services/order'
+import { api } from '../api'
interface OrdersQueryParams {
page?: number
@@ -8,32 +8,29 @@ interface OrdersQueryParams {
search?: string
}
-export const useOrdersQuery = {
- getOrders: (params: OrdersQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useOrders(params: OrdersQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['orders', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['orders', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
+ if (search) {
+ queryParams.append('search', search)
+ }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
}
+ })
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/orders?${queryParams.toString()}`)
- return res.data.data
- },
- })
- }
+ const res = await api.get(`/orders?${queryParams.toString()}`)
+ return res.data.data
+ }
+ })
}
diff --git a/src/services/queries/outlets.ts b/src/services/queries/outlets.ts
index 5d824cd..b16322a 100644
--- a/src/services/queries/outlets.ts
+++ b/src/services/queries/outlets.ts
@@ -8,32 +8,29 @@ interface OutletsQueryParams {
search?: string
}
-export const useOutletsQuery = {
- getOutlets: (params: OutletsQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useOutlets(params: OutletsQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['outlets', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['outlets', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
- }
-
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/outlets/list?${queryParams.toString()}`)
- return res.data.data
+ if (search) {
+ queryParams.append('search', search)
}
- })
- }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
+ }
+ })
+
+ const res = await api.get(`/outlets/list?${queryParams.toString()}`)
+ return res.data.data
+ },
+ })
}
diff --git a/src/services/queries/products.ts b/src/services/queries/products.ts
index b61a2f2..cc895f1 100644
--- a/src/services/queries/products.ts
+++ b/src/services/queries/products.ts
@@ -11,45 +11,40 @@ interface ProductsQueryParams {
is_active?: boolean
}
-export const useProductsQuery = {
- getProducts: (params: ProductsQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useProducts(params: ProductsQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['products', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['products', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
+ if (search) {
+ queryParams.append('search', search)
+ }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
}
+ })
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/products?${queryParams.toString()}`)
- return res.data.data
- },
- })
- },
-
- getProductById: (id: string) => {
- return useQuery({
- queryKey: ['product', id],
- queryFn: async ({ queryKey: [, id] }) => {
- const res = await api.get(`/products/${id}`)
- return res.data.data
- },
-
- // Cache for 5 minutes
- staleTime: 5 * 60 * 1000
- })
- }
+ const res = await api.get(`/products?${queryParams.toString()}`)
+ return res.data.data
+ },
+ })
+}
+
+export function useProductById(id: string) {
+ return useQuery({
+ queryKey: ['product', id],
+ queryFn: async () => {
+ const res = await api.get(`/products/${id}`)
+ return res.data.data
+ },
+ staleTime: 5 * 60 * 1000
+ })
}
diff --git a/src/services/queries/units.ts b/src/services/queries/units.ts
index 2f218e6..427e231 100644
--- a/src/services/queries/units.ts
+++ b/src/services/queries/units.ts
@@ -8,32 +8,29 @@ interface UnitsQueryParams {
search?: string
}
-export const useUnitsQuery = {
- getUnits: (params: UnitsQueryParams = {}) => {
- const { page = 1, limit = 10, search = '', ...filters } = params
+export function useUnits(params: UnitsQueryParams = {}) {
+ const { page = 1, limit = 10, search = '', ...filters } = params
- return useQuery({
- queryKey: ['units', { page, limit, search, ...filters }],
- queryFn: async () => {
- const queryParams = new URLSearchParams()
+ return useQuery({
+ queryKey: ['units', { page, limit, search, ...filters }],
+ queryFn: async () => {
+ const queryParams = new URLSearchParams()
- queryParams.append('page', page.toString())
- queryParams.append('limit', limit.toString())
+ queryParams.append('page', page.toString())
+ queryParams.append('limit', limit.toString())
- if (search) {
- queryParams.append('search', search)
+ if (search) {
+ queryParams.append('search', search)
+ }
+
+ Object.entries(filters).forEach(([key, value]) => {
+ if (value !== undefined && value !== null && value !== '') {
+ queryParams.append(key, value.toString())
}
+ })
- // Add other filters
- Object.entries(filters).forEach(([key, value]) => {
- if (value !== undefined && value !== null && value !== '') {
- queryParams.append(key, value.toString())
- }
- })
-
- const res = await api.get(`/units?${queryParams.toString()}`)
- return res.data.data
- },
- })
- }
+ const res = await api.get(`/units?${queryParams.toString()}`)
+ return res.data.data
+ }
+ })
}
diff --git a/src/services/queries/users.ts b/src/services/queries/users.ts
index 1ce8b0b..0bf6510 100644
--- a/src/services/queries/users.ts
+++ b/src/services/queries/users.ts
@@ -2,16 +2,13 @@ import { useQuery } from '@tanstack/react-query'
import { api } from '../api'
import { User } from '../../types/services/user'
-const useUsersQuery = {
- getUsers: () => {
- return useQuery({
- queryKey: ['users'],
- queryFn: async () => {
- const res = await api.get('/users')
- return res.data
- }
- })
- }
-}
-export default useUsersQuery
+export function useUsers() {
+ return useQuery({
+ queryKey: ['users'],
+ queryFn: async () => {
+ const res = await api.get('/users')
+ return res.data
+ },
+ })
+}
diff --git a/src/views/Login.tsx b/src/views/Login.tsx
index 2ad98f3..0ff4be6 100644
--- a/src/views/Login.tsx
+++ b/src/views/Login.tsx
@@ -90,7 +90,7 @@ const Login = ({ mode }: { mode: SystemMode }) => {
const [isPasswordShown, setIsPasswordShown] = useState(false)
const [errorState, setErrorState] = useState(null)
- const { mutate, isPending, isError, isSuccess } = useAuthMutation.login()
+ const { login } = useAuthMutation()
// Vars
const darkImg = '/images/pages/auth-mask-dark.png'
@@ -132,7 +132,7 @@ const Login = ({ mode }: { mode: SystemMode }) => {
const handleClickShowPassword = () => setIsPasswordShown(show => !show)
const onSubmit: SubmitHandler = async (data: FormData) => {
- mutate(data)
+ login.mutate(data)
const redirectURL = searchParams.get('redirectTo') ?? '/'
diff --git a/src/views/apps/ecommerce/customers/details/customer-right/overview/OrderListTable.tsx b/src/views/apps/ecommerce/customers/details/customer-right/overview/OrderListTable.tsx
index 074a86a..6b2337c 100644
--- a/src/views/apps/ecommerce/customers/details/customer-right/overview/OrderListTable.tsx
+++ b/src/views/apps/ecommerce/customers/details/customer-right/overview/OrderListTable.tsx
@@ -1,7 +1,7 @@
'use client'
// React Imports
-import { useState, useEffect, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
@@ -10,38 +10,36 @@ import { useParams } from 'next/navigation'
// MUI Imports
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import Typography from '@mui/material/Typography'
import Chip from '@mui/material/Chip'
-import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { OrderType } from '@/types/apps/ecommerceTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import OptionMenu from '@core/components/option-menu'
-import TablePaginationComponent from '@components/TablePaginationComponent'
import CustomTextField from '@core/components/mui/TextField'
+import OptionMenu from '@core/components/option-menu'
// Util Imports
import { getLocalizedUrl } from '@/utils/i18n'
@@ -298,7 +296,7 @@ const OrderListTable = ({ orderData }: { orderData?: OrderType[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -306,7 +304,7 @@ const OrderListTable = ({ orderData }: { orderData?: OrderType[] }) => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/apps/ecommerce/customers/list/CustomerListTable.tsx b/src/views/apps/ecommerce/customers/list/CustomerListTable.tsx
index e638449..417663d 100644
--- a/src/views/apps/ecommerce/customers/list/CustomerListTable.tsx
+++ b/src/views/apps/ecommerce/customers/list/CustomerListTable.tsx
@@ -1,50 +1,48 @@
'use client'
// React Imports
-import { useState, useEffect, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
import { useParams } from 'next/navigation'
// MUI Imports
+import Button from '@mui/material/Button'
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import Button from '@mui/material/Button'
-import Typography from '@mui/material/Typography'
import Checkbox from '@mui/material/Checkbox'
-import TablePagination from '@mui/material/TablePagination'
-import type { TextFieldProps } from '@mui/material/TextField'
import MenuItem from '@mui/material/MenuItem'
+import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { Customer } from '@/types/apps/ecommerceTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import AddCustomerDrawer from './AddCustomerDrawer'
import CustomAvatar from '@core/components/mui/Avatar'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@components/TablePaginationComponent'
+import AddCustomerDrawer from './AddCustomerDrawer'
// Util Imports
import { getInitials } from '@/utils/getInitials'
@@ -356,7 +354,7 @@ const CustomerListTable = ({ customerData }: { customerData?: Customer[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -364,7 +362,7 @@ const CustomerListTable = ({ customerData }: { customerData?: Customer[] }) => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
{
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -415,7 +413,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData: InvoiceType[] }) => {
table.setPageIndex(page)
}}
onRowsPerPageChange={e => table.setPageSize(Number(e.target.value))}
- />
+ /> */}
)
}
diff --git a/src/views/apps/ecommerce/manage-reviews/ManageReviewsTable.tsx b/src/views/apps/ecommerce/manage-reviews/ManageReviewsTable.tsx
index 152d5a1..aee55c3 100644
--- a/src/views/apps/ecommerce/manage-reviews/ManageReviewsTable.tsx
+++ b/src/views/apps/ecommerce/manage-reviews/ManageReviewsTable.tsx
@@ -8,33 +8,32 @@ import Link from 'next/link'
import { useParams } from 'next/navigation'
// MUI Imports
-import Card from '@mui/material/Card'
import Button from '@mui/material/Button'
+import Card from '@mui/material/Card'
import Checkbox from '@mui/material/Checkbox'
import Chip from '@mui/material/Chip'
import MenuItem from '@mui/material/MenuItem'
import Rating from '@mui/material/Rating'
-import TablePagination from '@mui/material/TablePagination'
-import Typography from '@mui/material/Typography'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
import type { ReviewType } from '@/types/apps/ecommerceTypes'
@@ -42,9 +41,8 @@ import type { Locale } from '@configs/i18n'
// Component Imports
import CustomAvatar from '@core/components/mui/Avatar'
-import OptionMenu from '@core/components/option-menu'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@components/TablePaginationComponent'
+import OptionMenu from '@core/components/option-menu'
// Util Imports
import { getLocalizedUrl } from '@/utils/i18n'
@@ -398,7 +396,7 @@ const ManageReviewsTable = ({ reviewsData }: { reviewsData?: ReviewType[] }) =>
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -406,7 +404,7 @@ const ManageReviewsTable = ({ reviewsData }: { reviewsData?: ReviewType[] }) =>
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
>
)
diff --git a/src/views/apps/ecommerce/orders/list/OrderListTable.tsx b/src/views/apps/ecommerce/orders/list/OrderListTable.tsx
index ec3aa03..267a301 100644
--- a/src/views/apps/ecommerce/orders/list/OrderListTable.tsx
+++ b/src/views/apps/ecommerce/orders/list/OrderListTable.tsx
@@ -40,10 +40,10 @@ import { getLocalizedUrl } from '@/utils/i18n'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
-import { useOrdersQuery } from '../../../../../services/queries/orders'
-import { Order } from '../../../../../types/services/order'
import { Box, CircularProgress } from '@mui/material'
import Loading from '../../../../../components/layout/shared/Loading'
+import { useOrders } from '../../../../../services/queries/orders'
+import { Order } from '../../../../../types/services/order'
declare module '@tanstack/table-core' {
interface FilterFns {
@@ -133,7 +133,7 @@ const OrderListTable = () => {
const [currentPage, setCurrentPage] = useState(1)
const [pageSize, setPageSize] = useState(10)
- const { data, isLoading, error, isFetching } = useOrdersQuery.getOrders({
+ const { data, isLoading, error, isFetching } = useOrders({
page: currentPage,
limit: pageSize
})
diff --git a/src/views/apps/ecommerce/products/add/ProductAddHeader.tsx b/src/views/apps/ecommerce/products/add/ProductAddHeader.tsx
index e6c5b77..2ead91e 100644
--- a/src/views/apps/ecommerce/products/add/ProductAddHeader.tsx
+++ b/src/views/apps/ecommerce/products/add/ProductAddHeader.tsx
@@ -14,8 +14,8 @@ const ProductAddHeader = () => {
const dispatch = useDispatch()
const params = useParams()
- const { mutate: createProduct, isPending: isCreating } = useProductsMutation.createProduct()
- const { mutate: updateProduct, isPending: isUpdating } = useProductsMutation.updateProduct()
+ const { mutate: createProduct, isPending: isCreating } = useProductsMutation().createProduct
+ const { mutate: updateProduct, isPending: isUpdating } = useProductsMutation().updateProduct
const { productRequest } = useSelector((state: RootState) => state.productReducer)
diff --git a/src/views/apps/ecommerce/products/add/ProductImage.tsx b/src/views/apps/ecommerce/products/add/ProductImage.tsx
index 6f25717..7634d39 100644
--- a/src/views/apps/ecommerce/products/add/ProductImage.tsx
+++ b/src/views/apps/ecommerce/products/add/ProductImage.tsx
@@ -51,7 +51,7 @@ const Dropzone = styled(AppReactDropzone)(({ theme }) => ({
const ProductImage = () => {
const dispatch = useDispatch()
- const { mutate, isPending } = useFilesMutation.uploadFile()
+ const { mutate, isPending } = useFilesMutation().uploadFile
const { image_url } = useSelector((state: RootState) => state.productReducer.productRequest)
diff --git a/src/views/apps/ecommerce/products/add/ProductInformation.tsx b/src/views/apps/ecommerce/products/add/ProductInformation.tsx
index 4e4495f..d50a1e8 100644
--- a/src/views/apps/ecommerce/products/add/ProductInformation.tsx
+++ b/src/views/apps/ecommerce/products/add/ProductInformation.tsx
@@ -29,7 +29,7 @@ import { RootState } from '../../../../../redux-store'
import { setProduct, setProductField } from '@/redux-store/slices/product'
import { useEffect } from 'react'
import { useParams } from 'next/navigation'
-import { useProductsQuery } from '../../../../../services/queries/products'
+import { useProductById } from '../../../../../services/queries/products'
import Loading from '../../../../../components/layout/shared/Loading'
const EditorToolbar = ({ editor }: { editor: Editor | null }) => {
@@ -125,7 +125,7 @@ const ProductInformation = () => {
const dispatch = useDispatch()
const params = useParams()
- const { data: product, isLoading, error } = useProductsQuery.getProductById(params?.id as string)
+ const { data: product, isLoading, error } = useProductById(params?.id as string)
const { name, sku, barcode, description } = useSelector((state: RootState) => state.productReducer.productRequest)
const isEdit = !!params?.id
diff --git a/src/views/apps/ecommerce/products/add/ProductOrganize.tsx b/src/views/apps/ecommerce/products/add/ProductOrganize.tsx
index 23ba204..3d8271e 100644
--- a/src/views/apps/ecommerce/products/add/ProductOrganize.tsx
+++ b/src/views/apps/ecommerce/products/add/ProductOrganize.tsx
@@ -14,14 +14,14 @@ import CustomTextField from '@core/components/mui/TextField'
import { useDispatch, useSelector } from 'react-redux'
import { RootState } from '../../../../../redux-store'
import { setProductField } from '../../../../../redux-store/slices/product'
-import { useCategoriesQuery } from '../../../../../services/queries/categories'
+import { useCategories } from '../../../../../services/queries/categories'
import { Category } from '../../../../../types/services/category'
const ProductOrganize = () => {
const dispatch = useDispatch()
const { category_id, printer_type } = useSelector((state: RootState) => state.productReducer.productRequest)
- const { data: categoriesApi } = useCategoriesQuery.getCategories()
+ const { data: categoriesApi } = useCategories()
const handleSelectChange = (field: any, value: any) => {
dispatch(setProductField({ field, value }))
diff --git a/src/views/apps/ecommerce/products/category/AddCategoryDrawer.tsx b/src/views/apps/ecommerce/products/category/AddCategoryDrawer.tsx
index 69a7824..b03d0b3 100644
--- a/src/views/apps/ecommerce/products/category/AddCategoryDrawer.tsx
+++ b/src/views/apps/ecommerce/products/category/AddCategoryDrawer.tsx
@@ -27,7 +27,7 @@ const AddCategoryDrawer = (props: Props) => {
// Props
const { open, handleClose } = props
- const { mutate: createCategory, isPending: isCreating } = useCategoriesMutation.createCategory()
+ const { mutate: createCategory, isPending: isCreating } = useCategoriesMutation().createCategory
// States
const [formData, setFormData] = useState({
diff --git a/src/views/apps/ecommerce/products/category/EditCategoryDrawer.tsx b/src/views/apps/ecommerce/products/category/EditCategoryDrawer.tsx
index ce86b20..42c9b91 100644
--- a/src/views/apps/ecommerce/products/category/EditCategoryDrawer.tsx
+++ b/src/views/apps/ecommerce/products/category/EditCategoryDrawer.tsx
@@ -28,7 +28,7 @@ const EditCategoryDrawer = (props: Props) => {
// Props
const { open, handleClose, data } = props
- const { mutate: updateCategory, isPending: isCreating } = useCategoriesMutation.updateCategory()
+ const { mutate: updateCategory, isPending: isCreating } = useCategoriesMutation().updateCategory
// States
const [formData, setFormData] = useState({
diff --git a/src/views/apps/ecommerce/products/category/ProductCategoryTable.tsx b/src/views/apps/ecommerce/products/category/ProductCategoryTable.tsx
index 8464883..6677cdd 100644
--- a/src/views/apps/ecommerce/products/category/ProductCategoryTable.tsx
+++ b/src/views/apps/ecommerce/products/category/ProductCategoryTable.tsx
@@ -4,47 +4,36 @@
import { useCallback, useEffect, useMemo, useState } from 'react'
// MUI Imports
-import Card from '@mui/material/Card'
import Button from '@mui/material/Button'
+import Card from '@mui/material/Card'
import Checkbox from '@mui/material/Checkbox'
import IconButton from '@mui/material/IconButton'
-import TablePagination from '@mui/material/TablePagination'
import MenuItem from '@mui/material/MenuItem'
-import Typography from '@mui/material/Typography'
+import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
-import { rankItem } from '@tanstack/match-sorter-utils'
-import {
- createColumnHelper,
- flexRender,
- getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
- getFacetedRowModel,
- getFacetedUniqueValues,
- getFacetedMinMaxValues,
- getPaginationRowModel,
- getSortedRowModel
-} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
+import { createColumnHelper, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'
+import classnames from 'classnames'
// Component Imports
-import AddCategoryDrawer from './AddCategoryDrawer'
-import OptionMenu from '@core/components/option-menu'
-import CustomTextField from '@core/components/mui/TextField'
import TablePaginationComponent from '@components/TablePaginationComponent'
+import CustomTextField from '@core/components/mui/TextField'
+import OptionMenu from '@core/components/option-menu'
+import AddCategoryDrawer from './AddCategoryDrawer'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
-import { useCategoriesQuery } from '../../../../../services/queries/categories'
-import { Category } from '../../../../../types/services/category'
import { Box, CircularProgress } from '@mui/material'
+import ConfirmDeleteDialog from '../../../../../components/dialogs/confirm-delete'
import Loading from '../../../../../components/layout/shared/Loading'
import { useCategoriesMutation } from '../../../../../services/mutations/categories'
-import ConfirmDeleteDialog from '../../../../../components/dialogs/confirm-delete'
+import { useCategories } from '../../../../../services/queries/categories'
+import { Category } from '../../../../../types/services/category'
import EditCategoryDrawer from './EditCategoryDrawer'
declare module '@tanstack/table-core' {
@@ -117,12 +106,12 @@ const ProductCategoryTable = () => {
const [currentCategory, setCurrentCategory] = useState()
// Fetch products with pagination and search
- const { data, isLoading, error, isFetching } = useCategoriesQuery.getCategories({
+ const { data, isLoading, error, isFetching } = useCategories({
page: currentPage,
limit: pageSize
})
- const { mutate: deleteCategory, isPending: isDeleting } = useCategoriesMutation.deleteCategory()
+ const { mutate: deleteCategory, isPending: isDeleting } = useCategoriesMutation().deleteCategory
const categories = data?.categories ?? []
const totalCount = data?.total_count ?? 0
@@ -197,10 +186,12 @@ const ProductCategoryTable = () => {
header: 'Actions',
cell: ({ row }) => (
-
{
- setCurrentCategory(row.original)
- setEditCategoryOpen(!editCategoryOpen)
- }}>
+ {
+ setCurrentCategory(row.original)
+ setEditCategoryOpen(!editCategoryOpen)
+ }}
+ >
{
/>
- setAddCategoryOpen(!addCategoryOpen)}
- />
+ setAddCategoryOpen(!addCategoryOpen)} />
(
@@ -31,7 +31,7 @@ const ProductDetail = () => {
const dispatch = useDispatch()
const params = useParams()
- const { data: product, isLoading, error } = useProductsQuery.getProductById(params?.id as string)
+ const { data: product, isLoading, error } = useProductById(params?.id as string)
useEffect(() => {
if (product) {
diff --git a/src/views/apps/ecommerce/products/list/ProductListTable.tsx b/src/views/apps/ecommerce/products/list/ProductListTable.tsx
index 57ded73..84d8571 100644
--- a/src/views/apps/ecommerce/products/list/ProductListTable.tsx
+++ b/src/views/apps/ecommerce/products/list/ProductListTable.tsx
@@ -43,7 +43,7 @@ import { getLocalizedUrl } from '@/utils/i18n'
import tableStyles from '@core/styles/table.module.css'
import { Box, CircularProgress } from '@mui/material'
import Loading from '../../../../../components/layout/shared/Loading'
-import { useProductsQuery } from '../../../../../services/queries/products'
+import { useProducts } from '../../../../../services/queries/products'
import { Product } from '../../../../../types/services/product'
import ConfirmDeleteDialog from '../../../../../components/dialogs/confirm-delete'
import { useProductsMutation } from '../../../../../services/mutations/products'
@@ -117,12 +117,12 @@ const ProductListTable = () => {
const { lang: locale } = useParams()
// Fetch products with pagination and search
- const { data, isLoading, error, isFetching } = useProductsQuery.getProducts({
+ const { data, isLoading, error, isFetching } = useProducts({
page: currentPage,
limit: pageSize
})
- const { mutate: deleteProduct, isPending: isDeleting } = useProductsMutation.deleteProduct()
+ const { mutate: deleteProduct, isPending: isDeleting } = useProductsMutation().deleteProduct
const products = data?.products ?? []
const totalCount = data?.total_count ?? 0
diff --git a/src/views/apps/ecommerce/products/units/AddUnitDrawer.tsx b/src/views/apps/ecommerce/products/units/AddUnitDrawer.tsx
index 54634f6..c5eb896 100644
--- a/src/views/apps/ecommerce/products/units/AddUnitDrawer.tsx
+++ b/src/views/apps/ecommerce/products/units/AddUnitDrawer.tsx
@@ -18,7 +18,7 @@ import CustomTextField from '@core/components/mui/TextField'
import { Autocomplete, CircularProgress } from '@mui/material'
import { useDebounce } from 'use-debounce'
import { useUnitsMutation } from '../../../../../services/mutations/units'
-import { useOutletsQuery } from '../../../../../services/queries/outlets'
+import { useOutlets } from '../../../../../services/queries/outlets'
import { UnitRequest } from '../../../../../types/services/unit'
type Props = {
@@ -41,10 +41,10 @@ const AddUnitDrawer = (props: Props) => {
const [outletInput, setOutletInput] = useState('')
const [outletDebouncedInput] = useDebounce(outletInput, 500)
- const { data: outlets, isLoading: outletsLoading } = useOutletsQuery.getOutlets({
+ const { data: outlets, isLoading: outletsLoading } = useOutlets({
search: outletDebouncedInput
})
- const { mutate: createUnit, isPending: isCreating } = useUnitsMutation.createUnit()
+ const { mutate: createUnit, isPending: isCreating } = useUnitsMutation().createUnit
const outletOptions = useMemo(() => outlets?.outlets || [], [outlets])
diff --git a/src/views/apps/ecommerce/products/units/EditUnitDrawer.tsx b/src/views/apps/ecommerce/products/units/EditUnitDrawer.tsx
index a5a78b0..1c6e058 100644
--- a/src/views/apps/ecommerce/products/units/EditUnitDrawer.tsx
+++ b/src/views/apps/ecommerce/products/units/EditUnitDrawer.tsx
@@ -15,11 +15,11 @@ import Typography from '@mui/material/Typography'
// Components Imports
import CustomTextField from '@core/components/mui/TextField'
-import { useUnitsMutation } from '../../../../../services/mutations/units'
-import { Unit, UnitRequest } from '../../../../../types/services/unit'
import { Autocomplete, CircularProgress } from '@mui/material'
-import { useOutletsQuery } from '../../../../../services/queries/outlets'
import { useDebounce } from 'use-debounce'
+import { useUnitsMutation } from '../../../../../services/mutations/units'
+import { useOutlets } from '../../../../../services/queries/outlets'
+import { Unit, UnitRequest } from '../../../../../types/services/unit'
type Props = {
open: boolean
@@ -42,11 +42,11 @@ const EditUnitDrawer = (props: Props) => {
const [outletInput, setOutletInput] = useState('')
const [outletDebouncedInput] = useDebounce(outletInput, 500)
- const { data: outlets, isLoading: outletsLoading } = useOutletsQuery.getOutlets({
+ const { data: outlets, isLoading: outletsLoading } = useOutlets({
search: outletDebouncedInput
})
- const { mutate: updateUnit, isPending: isCreating } = useUnitsMutation.updateUnit()
+ const { mutate: updateUnit, isPending: isCreating } = useUnitsMutation().updateUnit
const outletOptions = useMemo(() => outlets?.outlets || [], [outlets])
useEffect(() => {
diff --git a/src/views/apps/ecommerce/products/units/ProductUnitTable.tsx b/src/views/apps/ecommerce/products/units/ProductUnitTable.tsx
index 4abc2f7..aa6c875 100644
--- a/src/views/apps/ecommerce/products/units/ProductUnitTable.tsx
+++ b/src/views/apps/ecommerce/products/units/ProductUnitTable.tsx
@@ -31,7 +31,7 @@ import { Box, CircularProgress } from '@mui/material'
import ConfirmDeleteDialog from '../../../../../components/dialogs/confirm-delete'
import Loading from '../../../../../components/layout/shared/Loading'
import { useUnitsMutation } from '../../../../../services/mutations/units'
-import { useUnitsQuery } from '../../../../../services/queries/units'
+import { useUnits } from '../../../../../services/queries/units'
import { Unit } from '../../../../../types/services/unit'
import AddUnitDrawer from './AddUnitDrawer'
import EditUnitDrawer from './EditUnitDrawer'
@@ -106,12 +106,12 @@ const ProductUnitTable = () => {
const [currentUnit, setCurrentUnit] = useState()
// Fetch products with pagination and search
- const { data, isLoading, error, isFetching } = useUnitsQuery.getUnits({
+ const { data, isLoading, error, isFetching } = useUnits({
page: currentPage,
limit: pageSize
})
- const { mutate: deleteUnit, isPending: isDeleting } = useUnitsMutation.deleteUnit()
+ const { mutate: deleteUnit, isPending: isDeleting } = useUnitsMutation().deleteUnit
const units = data?.data ?? []
const totalCount = data?.pagination.total_count ?? 0
@@ -370,11 +370,7 @@ const ProductUnitTable = () => {
setAddUnitOpen(!addUnitOpen)} />
- setEditUnitOpen(!editUnitOpen)}
- data={currentUnit!}
- />
+ setEditUnitOpen(!editUnitOpen)} data={currentUnit!} />
- }
count={table.getExpandedRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -271,7 +269,7 @@ const ReferredUsersTable = ({ referralsData }: { referralsData?: ReferralsType[]
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
>
)
diff --git a/src/views/apps/invoice/list/InvoiceListTable.tsx b/src/views/apps/invoice/list/InvoiceListTable.tsx
index c1de658..5af4f23 100644
--- a/src/views/apps/invoice/list/InvoiceListTable.tsx
+++ b/src/views/apps/invoice/list/InvoiceListTable.tsx
@@ -1,53 +1,51 @@
'use client'
// React Imports
-import { useState, useEffect, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
import { useParams } from 'next/navigation'
// MUI Imports
+import Button from '@mui/material/Button'
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import Button from '@mui/material/Button'
-import Typography from '@mui/material/Typography'
import Checkbox from '@mui/material/Checkbox'
import Chip from '@mui/material/Chip'
import IconButton from '@mui/material/IconButton'
import MenuItem from '@mui/material/MenuItem'
-import Tooltip from '@mui/material/Tooltip'
-import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
+import Tooltip from '@mui/material/Tooltip'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { InvoiceType } from '@/types/apps/invoiceTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import OptionMenu from '@core/components/option-menu'
import CustomAvatar from '@core/components/mui/Avatar'
-import TablePaginationComponent from '@components/TablePaginationComponent'
import CustomTextField from '@core/components/mui/TextField'
+import OptionMenu from '@core/components/option-menu'
// Util Imports
import { getInitials } from '@/utils/getInitials'
@@ -446,7 +444,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData?: InvoiceType[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -455,7 +453,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData?: InvoiceType[] }) => {
table.setPageIndex(page)
}}
onRowsPerPageChange={e => table.setPageSize(Number(e.target.value))}
- />
+ /> */}
)
}
diff --git a/src/views/apps/logistics/dashboard/LogisticsOverviewTable.tsx b/src/views/apps/logistics/dashboard/LogisticsOverviewTable.tsx
index 491e9f1..02366d3 100644
--- a/src/views/apps/logistics/dashboard/LogisticsOverviewTable.tsx
+++ b/src/views/apps/logistics/dashboard/LogisticsOverviewTable.tsx
@@ -1,7 +1,7 @@
'use client'
// React Imports
-import { useState, useMemo } from 'react'
+import { useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
@@ -11,37 +11,35 @@ import { useParams } from 'next/navigation'
import Card from '@mui/material/Card'
import CardHeader from '@mui/material/CardHeader'
import Checkbox from '@mui/material/Checkbox'
-import LinearProgress from '@mui/material/LinearProgress'
-import TablePagination from '@mui/material/TablePagination'
import Chip from '@mui/material/Chip'
+import LinearProgress from '@mui/material/LinearProgress'
import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
-import type { Locale } from '@configs/i18n'
import type { Vehicle } from '@/types/apps/logisticsTypes'
+import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Components Imports
import CustomAvatar from '@core/components/mui/Avatar'
import OptionMenu from '@core/components/option-menu'
-import TablePaginationComponent from '@components/TablePaginationComponent'
// Util Imports
import { getLocalizedUrl } from '@/utils/i18n'
@@ -258,7 +256,7 @@ const LogisticsOverviewTable = ({ vehicleData }: { vehicleData?: Vehicle[] }) =>
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -266,7 +264,7 @@ const LogisticsOverviewTable = ({ vehicleData }: { vehicleData?: Vehicle[] }) =>
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/apps/permissions/index.tsx b/src/views/apps/permissions/index.tsx
index 7f19db4..32e4ce4 100644
--- a/src/views/apps/permissions/index.tsx
+++ b/src/views/apps/permissions/index.tsx
@@ -1,47 +1,45 @@
'use client'
// React Imports
-import { useEffect, useState, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// MUI Imports
+import type { ButtonProps } from '@mui/material/Button'
+import Button from '@mui/material/Button'
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import Button from '@mui/material/Button'
-import Typography from '@mui/material/Typography'
import Chip from '@mui/material/Chip'
-import TablePagination from '@mui/material/TablePagination'
import IconButton from '@mui/material/IconButton'
import MenuItem from '@mui/material/MenuItem'
import type { TextFieldProps } from '@mui/material/TextField'
-import type { ButtonProps } from '@mui/material/Button'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { PermissionRowType } from '@/types/apps/permissionTypes'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import PermissionDialog from '@components/dialogs/permission-dialog'
import OpenDialogOnElementClick from '@components/dialogs/OpenDialogOnElementClick'
+import PermissionDialog from '@components/dialogs/permission-dialog'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@components/TablePaginationComponent'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
@@ -314,7 +312,7 @@ const Permissions = ({ permissionsData }: { permissionsData?: PermissionRowType[
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -322,7 +320,7 @@ const Permissions = ({ permissionsData }: { permissionsData?: PermissionRowType[
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
>
diff --git a/src/views/apps/roles/RolesTable.tsx b/src/views/apps/roles/RolesTable.tsx
index 30962ea..5237e51 100644
--- a/src/views/apps/roles/RolesTable.tsx
+++ b/src/views/apps/roles/RolesTable.tsx
@@ -1,7 +1,7 @@
'use client'
// React Imports
-import { useState, useMemo, useEffect } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
@@ -10,43 +10,41 @@ import { useParams } from 'next/navigation'
// MUI Imports
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import MenuItem from '@mui/material/MenuItem'
-import Chip from '@mui/material/Chip'
-import Typography from '@mui/material/Typography'
import Checkbox from '@mui/material/Checkbox'
+import Chip from '@mui/material/Chip'
import IconButton from '@mui/material/IconButton'
-import TablePagination from '@mui/material/TablePagination'
+import MenuItem from '@mui/material/MenuItem'
import { styled } from '@mui/material/styles'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { UsersType } from '@/types/apps/userTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
import CustomAvatar from '@core/components/mui/Avatar'
-import OptionMenu from '@core/components/option-menu'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@components/TablePaginationComponent'
+import OptionMenu from '@core/components/option-menu'
// Util Imports
import { getInitials } from '@/utils/getInitials'
@@ -415,7 +413,7 @@ const RolesTable = ({ tableData }: { tableData?: UsersType[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -423,7 +421,7 @@ const RolesTable = ({ tableData }: { tableData?: UsersType[] }) => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/apps/stock/adjustment/AdjustmentStockDrawer.tsx b/src/views/apps/stock/adjustment/AdjustmentStockDrawer.tsx
index 29b210a..06932c4 100644
--- a/src/views/apps/stock/adjustment/AdjustmentStockDrawer.tsx
+++ b/src/views/apps/stock/adjustment/AdjustmentStockDrawer.tsx
@@ -17,8 +17,8 @@ import CustomTextField from '@core/components/mui/TextField'
import { Autocomplete, CircularProgress } from '@mui/material'
import { useDebounce } from 'use-debounce'
import { useInventoriesMutation } from '../../../../services/mutations/inventories'
-import { useOutletsQuery } from '../../../../services/queries/outlets'
-import { useProductsQuery } from '../../../../services/queries/products'
+import { useOutlets } from '../../../../services/queries/outlets'
+import { useProducts } from '../../../../services/queries/products'
import { InventoryAdjustRequest } from '../../../../types/services/inventory'
type Props = {
@@ -30,7 +30,7 @@ const AdjustmentStockDrawer = (props: Props) => {
// Props
const { open, handleClose } = props
- const { mutate: adjustInventory, isPending: isCreating } = useInventoriesMutation.adjustInventory()
+ const { mutate: adjustInventory, isPending: isCreating } = useInventoriesMutation().adjustInventory
// States
const [productInput, setProductInput] = useState('')
@@ -44,10 +44,10 @@ const AdjustmentStockDrawer = (props: Props) => {
reason: ''
})
- const { data: outlets, isLoading: outletsLoading } = useOutletsQuery.getOutlets({
+ const { data: outlets, isLoading: outletsLoading } = useOutlets({
search: outletDebouncedInput
})
- const { data: products, isLoading } = useProductsQuery.getProducts({
+ const { data: products, isLoading } = useProducts({
search: productDebouncedInput
})
diff --git a/src/views/apps/stock/adjustment/StockListTable.tsx b/src/views/apps/stock/adjustment/StockListTable.tsx
index fbf7fba..2cc82b5 100644
--- a/src/views/apps/stock/adjustment/StockListTable.tsx
+++ b/src/views/apps/stock/adjustment/StockListTable.tsx
@@ -36,8 +36,7 @@ import CustomTextField from '@core/components/mui/TextField'
import tableStyles from '@core/styles/table.module.css'
import { Box, CircularProgress } from '@mui/material'
import Loading from '../../../../components/layout/shared/Loading'
-import { useInventoriesMutation } from '../../../../services/mutations/inventories'
-import { useInventoriesQuery } from '../../../../services/queries/inventories'
+import { useInventories } from '../../../../services/queries/inventories'
import { Inventory } from '../../../../types/services/inventory'
import AdjustmentStockDrawer from './AdjustmentStockDrawer'
@@ -106,13 +105,11 @@ const StockListTable = () => {
const [addInventoryOpen, setAddInventoryOpen] = useState(false)
// Fetch products with pagination and search
- const { data, isLoading, error, isFetching } = useInventoriesQuery.getInventories({
+ const { data, isLoading, error, isFetching } = useInventories({
page: currentPage,
limit: pageSize
})
- const { mutate: deleteInventory, isPending: isDeleting } = useInventoriesMutation.deleteInventory()
-
const inventories = data?.inventory ?? []
const totalCount = data?.total_count ?? 0
@@ -173,7 +170,7 @@ const StockListTable = () => {
size='small'
/>
)
- }),
+ })
// columnHelper.accessor('actions', {
// header: 'Actions',
// cell: ({ row }) => (
diff --git a/src/views/apps/stock/list/AddStockDrawer.tsx b/src/views/apps/stock/list/AddStockDrawer.tsx
index d8090d3..8609af1 100644
--- a/src/views/apps/stock/list/AddStockDrawer.tsx
+++ b/src/views/apps/stock/list/AddStockDrawer.tsx
@@ -17,8 +17,8 @@ import CustomTextField from '@core/components/mui/TextField'
import { Autocomplete, CircularProgress } from '@mui/material'
import { useDebounce } from 'use-debounce'
import { useInventoriesMutation } from '../../../../services/mutations/inventories'
-import { useOutletsQuery } from '../../../../services/queries/outlets'
-import { useProductsQuery } from '../../../../services/queries/products'
+import { useOutlets } from '../../../../services/queries/outlets'
+import { useProducts } from '../../../../services/queries/products'
import { InventoryRequest } from '../../../../types/services/inventory'
type Props = {
@@ -30,7 +30,7 @@ const AddStockDrawer = (props: Props) => {
// Props
const { open, handleClose } = props
- const { mutate: createInventory, isPending: isCreating } = useInventoriesMutation.createInventory()
+ const { mutate: createInventory, isPending: isCreating } = useInventoriesMutation().createInventory
// States
const [productInput, setProductInput] = useState('')
@@ -43,10 +43,10 @@ const AddStockDrawer = (props: Props) => {
quantity: 0
})
- const { data: outlets, isLoading: outletsLoading } = useOutletsQuery.getOutlets({
+ const { data: outlets, isLoading: outletsLoading } = useOutlets({
search: outletDebouncedInput
})
- const { data: products, isLoading } = useProductsQuery.getProducts({
+ const { data: products, isLoading } = useProducts({
search: productDebouncedInput
})
diff --git a/src/views/apps/stock/list/StockListTable.tsx b/src/views/apps/stock/list/StockListTable.tsx
index c726e30..3372590 100644
--- a/src/views/apps/stock/list/StockListTable.tsx
+++ b/src/views/apps/stock/list/StockListTable.tsx
@@ -4,7 +4,6 @@
import { useCallback, useEffect, useMemo, useState } from 'react'
// Next Imports
-import { useParams } from 'next/navigation'
// MUI Imports
import Button from '@mui/material/Button'
@@ -40,7 +39,7 @@ import { Box, CircularProgress } from '@mui/material'
import ConfirmDeleteDialog from '../../../../components/dialogs/confirm-delete'
import Loading from '../../../../components/layout/shared/Loading'
import { useInventoriesMutation } from '../../../../services/mutations/inventories'
-import { useInventoriesQuery } from '../../../../services/queries/inventories'
+import { useInventories } from '../../../../services/queries/inventories'
import { Inventory } from '../../../../types/services/inventory'
import AddStockDrawer from './AddStockDrawer'
@@ -111,12 +110,12 @@ const StockListTable = () => {
const [addInventoryOpen, setAddInventoryOpen] = useState(false)
// Fetch products with pagination and search
- const { data, isLoading, error, isFetching } = useInventoriesQuery.getInventories({
+ const { data, isLoading, error, isFetching } = useInventories({
page: currentPage,
limit: pageSize
})
- const { mutate: deleteInventory, isPending: isDeleting } = useInventoriesMutation.deleteInventory()
+ const { mutate: deleteInventory, isPending: isDeleting } = useInventoriesMutation().deleteInventory
const inventories = data?.inventory ?? []
const totalCount = data?.total_count ?? 0
diff --git a/src/views/apps/user/list/UserListTable.tsx b/src/views/apps/user/list/UserListTable.tsx
index b6a74b5..be7d970 100644
--- a/src/views/apps/user/list/UserListTable.tsx
+++ b/src/views/apps/user/list/UserListTable.tsx
@@ -1,55 +1,53 @@
'use client'
// React Imports
-import { useEffect, useState, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
import { useParams } from 'next/navigation'
// MUI Imports
+import Button from '@mui/material/Button'
import Card from '@mui/material/Card'
import CardHeader from '@mui/material/CardHeader'
-import Button from '@mui/material/Button'
-import Typography from '@mui/material/Typography'
-import Chip from '@mui/material/Chip'
import Checkbox from '@mui/material/Checkbox'
+import Chip from '@mui/material/Chip'
import IconButton from '@mui/material/IconButton'
-import { styled } from '@mui/material/styles'
-import TablePagination from '@mui/material/TablePagination'
-import type { TextFieldProps } from '@mui/material/TextField'
import MenuItem from '@mui/material/MenuItem'
+import { styled } from '@mui/material/styles'
+import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { UsersType } from '@/types/apps/userTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import TableFilters from './TableFilters'
-import AddUserDrawer from './AddUserDrawer'
-import OptionMenu from '@core/components/option-menu'
-import TablePaginationComponent from '@components/TablePaginationComponent'
-import CustomTextField from '@core/components/mui/TextField'
import CustomAvatar from '@core/components/mui/Avatar'
+import CustomTextField from '@core/components/mui/TextField'
+import OptionMenu from '@core/components/option-menu'
+import AddUserDrawer from './AddUserDrawer'
+import TableFilters from './TableFilters'
// Util Imports
import { getInitials } from '@/utils/getInitials'
@@ -403,7 +401,7 @@ const UserListTable = ({ tableData }: { tableData?: UsersType[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -411,7 +409,7 @@ const UserListTable = ({ tableData }: { tableData?: UsersType[] }) => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
{
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -347,7 +347,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData?: InvoiceType[] }) => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/apps/user/view/user-right/overview/ProjectListTable.tsx b/src/views/apps/user/view/user-right/overview/ProjectListTable.tsx
index 58da2a9..3e6c842 100644
--- a/src/views/apps/user/view/user-right/overview/ProjectListTable.tsx
+++ b/src/views/apps/user/view/user-right/overview/ProjectListTable.tsx
@@ -1,34 +1,33 @@
'use client'
// React Imports
-import { useState, useMemo, useEffect } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// MUI Imports
-import Typography from '@mui/material/Typography'
-import LinearProgress from '@mui/material/LinearProgress'
import Card from '@mui/material/Card'
import CardHeader from '@mui/material/CardHeader'
+import LinearProgress from '@mui/material/LinearProgress'
import MenuItem from '@mui/material/MenuItem'
-import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
import type { ThemeColor } from '@core/types'
@@ -36,7 +35,6 @@ import type { ThemeColor } from '@core/types'
// Component Imports
import CustomAvatar from '@core/components/mui/Avatar'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@components/TablePaginationComponent'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
@@ -338,7 +336,7 @@ const ProjectListTable = () => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -346,7 +344,7 @@ const ProjectListTable = () => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/dashboards/analytics/ProjectsTable.tsx b/src/views/dashboards/analytics/ProjectsTable.tsx
index 13f0a1a..315bebd 100644
--- a/src/views/dashboards/analytics/ProjectsTable.tsx
+++ b/src/views/dashboards/analytics/ProjectsTable.tsx
@@ -5,40 +5,38 @@ import { useEffect, useMemo, useState } from 'react'
// MUI Imports
import AvatarGroup from '@mui/material/AvatarGroup'
-import Typography from '@mui/material/Typography'
-import LinearProgress from '@mui/material/LinearProgress'
import Card from '@mui/material/Card'
-import Checkbox from '@mui/material/Checkbox'
import CardHeader from '@mui/material/CardHeader'
-import TablePagination from '@mui/material/TablePagination'
+import Checkbox from '@mui/material/Checkbox'
+import LinearProgress from '@mui/material/LinearProgress'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
import type { ProjectTableRowType } from '@/types/pages/profileTypes'
// Component Imports
-import OptionMenu from '@core/components/option-menu'
import CustomAvatar from '@core/components/mui/Avatar'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@/components/TablePaginationComponent'
+import OptionMenu from '@core/components/option-menu'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
@@ -273,7 +271,7 @@ const ProjectTables = ({ projectTable }: { projectTable?: ProjectTableRowType[]
- }
count={table.getFilteredRowModel().rows.length}
@@ -282,7 +280,7 @@ const ProjectTables = ({ projectTable }: { projectTable?: ProjectTableRowType[]
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}
diff --git a/src/views/pages/account-settings/billing-plans/InvoiceListTable.tsx b/src/views/pages/account-settings/billing-plans/InvoiceListTable.tsx
index 90d9d0e..12d6bec 100644
--- a/src/views/pages/account-settings/billing-plans/InvoiceListTable.tsx
+++ b/src/views/pages/account-settings/billing-plans/InvoiceListTable.tsx
@@ -1,53 +1,51 @@
'use client'
// React Imports
-import { useState, useEffect, useMemo } from 'react'
+import { useEffect, useMemo, useState } from 'react'
// Next Imports
import Link from 'next/link'
import { useParams } from 'next/navigation'
// MUI Imports
+import Button from '@mui/material/Button'
import Card from '@mui/material/Card'
import CardContent from '@mui/material/CardContent'
-import Button from '@mui/material/Button'
-import Typography from '@mui/material/Typography'
import Checkbox from '@mui/material/Checkbox'
import Chip from '@mui/material/Chip'
import IconButton from '@mui/material/IconButton'
import MenuItem from '@mui/material/MenuItem'
-import Tooltip from '@mui/material/Tooltip'
-import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
+import Tooltip from '@mui/material/Tooltip'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
-import type { ThemeColor } from '@core/types'
import type { InvoiceType } from '@/types/apps/invoiceTypes'
import type { Locale } from '@configs/i18n'
+import type { ThemeColor } from '@core/types'
// Component Imports
-import OptionMenu from '@core/components/option-menu'
import CustomAvatar from '@core/components/mui/Avatar'
-import TablePaginationComponent from '@components/TablePaginationComponent'
import CustomTextField from '@core/components/mui/TextField'
+import OptionMenu from '@core/components/option-menu'
// Util Imports
import { getInitials } from '@/utils/getInitials'
@@ -446,7 +444,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData?: InvoiceType[] }) => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -455,7 +453,7 @@ const InvoiceListTable = ({ invoiceData }: { invoiceData?: InvoiceType[] }) => {
table.setPageIndex(page)
}}
onRowsPerPageChange={e => table.setPageSize(Number(e.target.value))}
- />
+ /> */}
)
}
diff --git a/src/views/pages/user-profile/profile/ProjectsTables.tsx b/src/views/pages/user-profile/profile/ProjectsTables.tsx
index 55c1169..987dbb1 100644
--- a/src/views/pages/user-profile/profile/ProjectsTables.tsx
+++ b/src/views/pages/user-profile/profile/ProjectsTables.tsx
@@ -5,40 +5,38 @@ import { useEffect, useMemo, useState } from 'react'
// MUI Imports
import AvatarGroup from '@mui/material/AvatarGroup'
-import Typography from '@mui/material/Typography'
-import LinearProgress from '@mui/material/LinearProgress'
import Card from '@mui/material/Card'
-import Checkbox from '@mui/material/Checkbox'
import CardHeader from '@mui/material/CardHeader'
-import TablePagination from '@mui/material/TablePagination'
+import Checkbox from '@mui/material/Checkbox'
+import LinearProgress from '@mui/material/LinearProgress'
import type { TextFieldProps } from '@mui/material/TextField'
+import Typography from '@mui/material/Typography'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
import { rankItem } from '@tanstack/match-sorter-utils'
+import type { ColumnDef, FilterFn } from '@tanstack/react-table'
import {
createColumnHelper,
flexRender,
getCoreRowModel,
- useReactTable,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
- getSortedRowModel
+ getSortedRowModel,
+ useReactTable
} from '@tanstack/react-table'
-import type { ColumnDef, FilterFn } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
import type { ProjectTableRowType } from '@/types/pages/profileTypes'
// Component Imports
-import OptionMenu from '@core/components/option-menu'
import CustomAvatar from '@core/components/mui/Avatar'
import CustomTextField from '@core/components/mui/TextField'
-import TablePaginationComponent from '@/components/TablePaginationComponent'
+import OptionMenu from '@core/components/option-menu'
// Style Imports
import tableStyles from '@core/styles/table.module.css'
@@ -274,7 +272,7 @@ const ProjectTables = ({ projectTable }: { projectTable?: ProjectTableRowType[]
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -283,7 +281,7 @@ const ProjectTables = ({ projectTable }: { projectTable?: ProjectTableRowType[]
table.setPageIndex(page)
}}
onRowsPerPageChange={e => table.setPageSize(Number(e.target.value))}
- />
+ /> */}
)
}
diff --git a/src/views/react-table/KitchenSink.tsx b/src/views/react-table/KitchenSink.tsx
index c8173fd..ac124c1 100644
--- a/src/views/react-table/KitchenSink.tsx
+++ b/src/views/react-table/KitchenSink.tsx
@@ -6,32 +6,30 @@ import { useEffect, useMemo, useState } from 'react'
// MUI Imports
import Card from '@mui/material/Card'
import CardHeader from '@mui/material/CardHeader'
-import TablePagination from '@mui/material/TablePagination'
import type { TextFieldProps } from '@mui/material/TextField'
// Third-party Imports
-import classnames from 'classnames'
+import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import { rankItem } from '@tanstack/match-sorter-utils'
+import type { Column, ColumnDef, ColumnFiltersState, FilterFn, Table } from '@tanstack/react-table'
import {
- useReactTable,
+ createColumnHelper,
+ flexRender,
getCoreRowModel,
- getFilteredRowModel,
+ getFacetedMinMaxValues,
getFacetedRowModel,
getFacetedUniqueValues,
- getFacetedMinMaxValues,
+ getFilteredRowModel,
getPaginationRowModel,
getSortedRowModel,
- flexRender,
- createColumnHelper
+ useReactTable
} from '@tanstack/react-table'
-import { rankItem } from '@tanstack/match-sorter-utils'
-import type { Column, Table, ColumnFiltersState, FilterFn, ColumnDef } from '@tanstack/react-table'
-import type { RankingInfo } from '@tanstack/match-sorter-utils'
+import classnames from 'classnames'
// Type Imports
import type { DataType } from './data'
// Component Imports
-import TablePaginationComponent from '@components/TablePaginationComponent'
import CustomTextField from '@core/components/mui/TextField'
// Icon Imports
@@ -267,7 +265,7 @@ const KitchenSink = () => {
)}
- }
count={table.getFilteredRowModel().rows.length}
rowsPerPage={table.getState().pagination.pageSize}
@@ -275,7 +273,7 @@ const KitchenSink = () => {
onPageChange={(_, page) => {
table.setPageIndex(page)
}}
- />
+ /> */}
)
}