45 lines
1009 B
JavaScript
45 lines
1009 B
JavaScript
import { useState, } from 'react';
|
|
|
|
import CategoryService from "../services/CategoryService";
|
|
|
|
export function useCategories() {
|
|
const [categories, setCategories] = useState(null);
|
|
|
|
|
|
async function getCategories() {
|
|
try {
|
|
const response = await CategoryService.getAll();
|
|
setCategories(response);
|
|
} catch (error) {
|
|
console.log(error);
|
|
}
|
|
}
|
|
|
|
async function getCategoryById(id) {
|
|
try {
|
|
if (!categories || categories.length == 0) {
|
|
const response = await CategoryService.getById(id);
|
|
setCategories([response]);
|
|
return response;
|
|
}
|
|
|
|
const c = categories.find(category => category.id == id);
|
|
if (c) {
|
|
return c;
|
|
} else {
|
|
const response = await CategoryService.getById(id);
|
|
setCategories([...categories, response]);
|
|
return response;
|
|
}
|
|
} catch (error) {
|
|
console.log(error);
|
|
return {};
|
|
}
|
|
}
|
|
|
|
return {
|
|
categories,
|
|
getCategories,
|
|
getCategoryById
|
|
};
|
|
} |