* - Changed to objectNameSingular always defined - Added ErrorCatchAll * - Added mock mode for companies logged out - Added a proper ErrorBoundary component * Removed react-error-boundary * Implemented proper ErrorBoundary * Fixes * Change strategy about mocks --------- Co-authored-by: Charles Bochet <charles@twenty.com>
33 lines
961 B
TypeScript
33 lines
961 B
TypeScript
import { DateTime } from 'luxon';
|
|
import { useRecoilValue } from 'recoil';
|
|
|
|
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
|
|
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
|
import { parseDate } from '~/utils/date-utils';
|
|
|
|
export const useCurrentUserTaskCount = () => {
|
|
const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState);
|
|
|
|
const { records: tasks } = useFindManyRecords({
|
|
objectNameSingular: 'activity',
|
|
filter: {
|
|
type: { eq: 'Task' },
|
|
completedAt: { is: 'NULL' },
|
|
assigneeId: { eq: currentWorkspaceMember?.id },
|
|
},
|
|
});
|
|
|
|
const currentUserDueTaskCount = tasks.filter((task) => {
|
|
if (!task.dueAt) {
|
|
return false;
|
|
}
|
|
const dueDate = parseDate(task.dueAt).toJSDate();
|
|
const today = DateTime.now().endOf('day').toJSDate();
|
|
return dueDate <= today;
|
|
}).length;
|
|
|
|
return {
|
|
currentUserDueTaskCount,
|
|
};
|
|
};
|