23008670f3
CI / Build & Quality Checks (push) Successful in 10m13s
- i18next 23->26 + react-i18next 15->17 - prettier 2->3, reformat all files - replace @fontsource/inter with @fontsource-variable/inter 5, update import path - domhandler 5->6 (aligns with transitive deps) - lint-staged 16->17
28 lines
676 B
TypeScript
28 lines
676 B
TypeScript
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;
|
|
};
|