Files
cinny/src/app/hooks/useCategoryHandler.ts
T

28 lines
675 B
TypeScript
Raw Normal View History

import { MouseEventHandler } from 'react';
type CategoryAction =
| {
type: 'PUT';
categoryId: string;
}
| {
type: 'DELETE';
categoryId: string;
};
export const useCategoryHandler = (
setAtom: (action: CategoryAction) => void,
closed: (categoryId: string) => boolean
) => {
const handleCategoryClick: MouseEventHandler<HTMLButtonElement> = (evt) => {
const categoryId = evt.currentTarget.getAttribute('data-category-id');
if (!categoryId) return;
if (closed(categoryId)) {
setAtom({ type: 'DELETE', categoryId });
return;
}
setAtom({ type: 'PUT', categoryId });
};
return handleCategoryClick;
};