import { root } from '@repo/core' import { CategoryController, type ListCategoriesInput, type ListCategoriesResult } from '@repo/sdk' import { useState } from 'react' import { type ApiError } from '@/lib/types' import { handleError } from './use-error' export const useCategories = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() const load = async (params?: ListCategoriesInput) => { const OWNER_ID = process.env.EXPO_PUBLIC_OWNER_ID || '' try { setLoading(true) const category = root.get(CategoryController) const { data, error } = await handleError( async () => await category.list({ page: params?.page || 1, limit: params?.limit || 20, orderBy: 'createdAt', order: 'desc', ...params, ownerId: OWNER_ID, }), ) if (error) { setError(error) return } setData(data) } catch (e) { setError(e as ApiError) } finally { setLoading(false) } } return { load, loading, error, data } }