mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
37 lines
855 B
TypeScript
37 lines
855 B
TypeScript
import { useMemo } from 'react';
|
|
import { filterAccountsByQuery, nestedArrayToflatten } from '@/utils';
|
|
|
|
interface PreprocessingAccountsOptions {
|
|
filterByRootTypes: string[];
|
|
filterByParentTypes: string[];
|
|
filterByTypes: string[];
|
|
filterByNormal: string[];
|
|
}
|
|
|
|
export const usePreprocessingAccounts = (
|
|
items: any,
|
|
{
|
|
filterByRootTypes,
|
|
filterByParentTypes,
|
|
filterByTypes,
|
|
filterByNormal,
|
|
}: PreprocessingAccountsOptions,
|
|
) => {
|
|
return useMemo(() => {
|
|
const flattenAccounts = nestedArrayToflatten(items);
|
|
const filteredAccounts = filterAccountsByQuery(flattenAccounts, {
|
|
filterByRootTypes,
|
|
filterByParentTypes,
|
|
filterByTypes,
|
|
filterByNormal,
|
|
});
|
|
return filteredAccounts;
|
|
}, [
|
|
items,
|
|
filterByRootTypes,
|
|
filterByParentTypes,
|
|
filterByTypes,
|
|
filterByNormal,
|
|
]);
|
|
};
|