52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { TimelineActivity } from '@/activities/timelineActivities/types/TimelineActivity';
|
|
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
|
import { getActivityTargetObjectFieldIdName } from '@/activities/utils/getActivityTargetObjectFieldIdName';
|
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
|
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
|
|
|
// do we need to test this?
|
|
export const useTimelineActivities = (
|
|
targetableObject: ActivityTargetableObject,
|
|
) => {
|
|
const targetableObjectFieldIdName = getActivityTargetObjectFieldIdName({
|
|
nameSingular: targetableObject.targetObjectNameSingular,
|
|
});
|
|
|
|
const {
|
|
records: TimelineActivities,
|
|
loading,
|
|
fetchMoreRecords,
|
|
} = useFindManyRecords({
|
|
objectNameSingular: CoreObjectNameSingular.TimelineActivity,
|
|
filter: {
|
|
[targetableObjectFieldIdName]: {
|
|
eq: targetableObject.id,
|
|
},
|
|
},
|
|
orderBy: [
|
|
{
|
|
createdAt: 'DescNullsFirst',
|
|
},
|
|
],
|
|
recordGqlFields: {
|
|
id: true,
|
|
createdAt: true,
|
|
linkedObjectMetadataId: true,
|
|
linkedRecordCachedName: true,
|
|
linkedRecordId: true,
|
|
name: true,
|
|
properties: true,
|
|
happensAt: true,
|
|
workspaceMember: true,
|
|
person: true,
|
|
},
|
|
fetchPolicy: 'cache-and-network',
|
|
});
|
|
|
|
return {
|
|
timelineActivities: TimelineActivities as TimelineActivity[],
|
|
loading,
|
|
fetchMoreRecords,
|
|
};
|
|
};
|