Fixed create task bug (#3308)

This commit is contained in:
Lucas Bordeau
2024-01-08 20:56:38 +01:00
committed by GitHub
parent 67b14824a4
commit dc94d26997
5 changed files with 40 additions and 14 deletions

View File

@ -13,6 +13,7 @@ import { useRightDrawer } from '@/ui/layout/right-drawer/hooks/useRightDrawer';
import { RightDrawerHotkeyScope } from '@/ui/layout/right-drawer/types/RightDrawerHotkeyScope'; import { RightDrawerHotkeyScope } from '@/ui/layout/right-drawer/types/RightDrawerHotkeyScope';
import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages'; import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages';
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
import { activityTargetableEntityArrayState } from '../states/activityTargetableEntityArrayState'; import { activityTargetableEntityArrayState } from '../states/activityTargetableEntityArrayState';
import { viewableActivityIdState } from '../states/viewableActivityIdState'; import { viewableActivityIdState } from '../states/viewableActivityIdState';
@ -79,7 +80,9 @@ export const useOpenCreateActivityDrawer = () => {
}, },
); );
await createManyActivityTargets(activityTargetsToCreate); if (isNonEmptyArray(activityTargetsToCreate)) {
await createManyActivityTargets(activityTargetsToCreate);
}
setHotkeyScope(RightDrawerHotkeyScope.RightDrawer, { goto: false }); setHotkeyScope(RightDrawerHotkeyScope.RightDrawer, { goto: false });
setViewableActivityId(createdActivity.id); setViewableActivityId(createdActivity.id);

View File

@ -2,6 +2,7 @@ import { gql } from '@apollo/client';
import { useMapFieldMetadataToGraphQLQuery } from '@/object-metadata/hooks/useMapFieldMetadataToGraphQLQuery'; import { useMapFieldMetadataToGraphQLQuery } from '@/object-metadata/hooks/useMapFieldMetadataToGraphQLQuery';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
import { capitalize } from '~/utils/string/capitalize'; import { capitalize } from '~/utils/string/capitalize';
export const useGenerateFindManyRecordsForMultipleMetadataItemsQuery = ({ export const useGenerateFindManyRecordsForMultipleMetadataItemsQuery = ({
@ -17,6 +18,10 @@ export const useGenerateFindManyRecordsForMultipleMetadataItemsQuery = ({
({ nameSingular }) => capitalize(nameSingular), ({ nameSingular }) => capitalize(nameSingular),
); );
if (!isNonEmptyArray(capitalizedObjectNameSingulars)) {
return null;
}
const filterPerMetadataItemArray = capitalizedObjectNameSingulars const filterPerMetadataItemArray = capitalizedObjectNameSingulars
.map( .map(
(capitalizedObjectNameSingular) => (capitalizedObjectNameSingular) =>

View File

@ -2,6 +2,7 @@ import { useQuery } from '@apollo/client';
import { isNonEmptyArray } from '@sniptt/guards'; import { isNonEmptyArray } from '@sniptt/guards';
import { useRecoilValue } from 'recoil'; import { useRecoilValue } from 'recoil';
import { EMPTY_QUERY } from '@/object-metadata/hooks/useObjectMetadataItem';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { useGenerateFindManyRecordsForMultipleMetadataItemsQuery } from '@/object-record/hooks/useGenerateFindManyRecordsForMultipleMetadataItemsQuery'; import { useGenerateFindManyRecordsForMultipleMetadataItemsQuery } from '@/object-record/hooks/useGenerateFindManyRecordsForMultipleMetadataItemsQuery';
import { useLimitPerMetadataItem } from '@/object-record/relation-picker/hooks/useLimitPerMetadataItem'; import { useLimitPerMetadataItem } from '@/object-record/relation-picker/hooks/useLimitPerMetadataItem';
@ -91,13 +92,17 @@ export const useMultiObjectSearchMatchesSearchFilterAndSelectedItemsQuery = ({
const { const {
loading: selectedAndMatchesSearchFilterObjectRecordsLoading, loading: selectedAndMatchesSearchFilterObjectRecordsLoading,
data: selectedAndMatchesSearchFilterObjectRecordsQueryResult, data: selectedAndMatchesSearchFilterObjectRecordsQueryResult,
} = useQuery<MultiObjectRecordQueryResult>(multiSelectQueryForSelectedIds, { } = useQuery<MultiObjectRecordQueryResult>(
variables: { multiSelectQueryForSelectedIds ?? EMPTY_QUERY,
...selectedAndMatchesSearchFilterTextFilterPerMetadataItem, {
...orderByFieldPerMetadataItem, variables: {
...limitPerMetadataItem, ...selectedAndMatchesSearchFilterTextFilterPerMetadataItem,
...orderByFieldPerMetadataItem,
...limitPerMetadataItem,
},
skip: !isDefined(multiSelectQueryForSelectedIds),
}, },
}); );
const { const {
objectRecordForSelectArray: selectedAndMatchesSearchFilterObjectRecords, objectRecordForSelectArray: selectedAndMatchesSearchFilterObjectRecords,

View File

@ -2,6 +2,7 @@ import { useQuery } from '@apollo/client';
import { isNonEmptyArray } from '@sniptt/guards'; import { isNonEmptyArray } from '@sniptt/guards';
import { useRecoilValue } from 'recoil'; import { useRecoilValue } from 'recoil';
import { EMPTY_QUERY } from '@/object-metadata/hooks/useObjectMetadataItem';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useGenerateFindManyRecordsForMultipleMetadataItemsQuery } from '@/object-record/hooks/useGenerateFindManyRecordsForMultipleMetadataItemsQuery'; import { useGenerateFindManyRecordsForMultipleMetadataItemsQuery } from '@/object-record/hooks/useGenerateFindManyRecordsForMultipleMetadataItemsQuery';
@ -108,12 +109,13 @@ export const useMultiObjectSearchMatchesSearchFilterAndToSelectQuery = ({
const { const {
loading: toSelectAndMatchesSearchFilterObjectRecordsLoading, loading: toSelectAndMatchesSearchFilterObjectRecordsLoading,
data: toSelectAndMatchesSearchFilterObjectRecordsQueryResult, data: toSelectAndMatchesSearchFilterObjectRecordsQueryResult,
} = useQuery<MultiObjectRecordQueryResult>(multiSelectQuery, { } = useQuery<MultiObjectRecordQueryResult>(multiSelectQuery ?? EMPTY_QUERY, {
variables: { variables: {
...objectRecordsToSelectAndMatchesSearchFilterTextFilterPerMetadataItem, ...objectRecordsToSelectAndMatchesSearchFilterTextFilterPerMetadataItem,
...orderByFieldPerMetadataItem, ...orderByFieldPerMetadataItem,
...limitPerMetadataItem, ...limitPerMetadataItem,
}, },
skip: !isDefined(multiSelectQuery),
}); });
const { const {

View File

@ -1,4 +1,5 @@
import { useQuery } from '@apollo/client'; import { useQuery } from '@apollo/client';
import { gql } from '@apollo/client';
import { isNonEmptyArray } from '@sniptt/guards'; import { isNonEmptyArray } from '@sniptt/guards';
import { useRecoilValue } from 'recoil'; import { useRecoilValue } from 'recoil';
@ -14,6 +15,12 @@ import { useOrderByFieldPerMetadataItem } from '@/object-record/relation-picker/
import { isDefined } from '~/utils/isDefined'; import { isDefined } from '~/utils/isDefined';
import { capitalize } from '~/utils/string/capitalize'; import { capitalize } from '~/utils/string/capitalize';
export const EMPTY_QUERY = gql`
query Empty {
__typename
}
`;
export const useMultiObjectSearchSelectedItemsQuery = ({ export const useMultiObjectSearchSelectedItemsQuery = ({
selectedObjectRecordIds, selectedObjectRecordIds,
}: { }: {
@ -68,13 +75,17 @@ export const useMultiObjectSearchSelectedItemsQuery = ({
const { const {
loading: selectedObjectRecordsLoading, loading: selectedObjectRecordsLoading,
data: selectedObjectRecordsQueryResult, data: selectedObjectRecordsQueryResult,
} = useQuery<MultiObjectRecordQueryResult>(multiSelectQueryForSelectedIds, { } = useQuery<MultiObjectRecordQueryResult>(
variables: { multiSelectQueryForSelectedIds ?? EMPTY_QUERY,
...selectedIdFilterPerMetadataItem, {
...orderByFieldPerMetadataItem, variables: {
...limitPerMetadataItem, ...selectedIdFilterPerMetadataItem,
...orderByFieldPerMetadataItem,
...limitPerMetadataItem,
},
skip: !isDefined(multiSelectQueryForSelectedIds),
}, },
}); );
const { objectRecordForSelectArray: selectedObjectRecords } = const { objectRecordForSelectArray: selectedObjectRecords } =
useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray({ useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray({