Only fetch steps and trigger for the current workflow version (#15003)

Avoid fetching full steps and trigger for versions that are not the
current version. Because those won't be used anyway. Better for
performances.

Only difficulty was for the `createDraft` mutation. I needed to return
the full created version so I can store it in cache and use it as new
`currentVersion`. Otherwise the current version is considered as
incomplete for a short time, since workflow is fetched separately from
the current version.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Thomas Trompette
2025-10-12 18:06:12 +02:00
committed by GitHub
parent 0fb2d66808
commit 7b84db4708
54 changed files with 485 additions and 259 deletions
@@ -8,7 +8,7 @@ import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useU
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
export const CommandMenuCalendarEventPage = () => {
const { upsertRecords } = useUpsertRecordsInStore();
const { upsertRecordsInStore } = useUpsertRecordsInStore();
const viewableRecordId = useRecoilComponentValue(
viewableRecordIdComponentState,
);
@@ -20,7 +20,7 @@ export const CommandMenuCalendarEventPage = () => {
recordGqlFields: FIND_ONE_CALENDAR_EVENT_OPERATION_SIGNATURE.fields,
// TODO: this is not executed on sub-sequent runs, make sure that it is intended
onCompleted: (record) => {
upsertRecords([record]);
upsertRecordsInStore([record]);
},
});
@@ -21,7 +21,7 @@ export const useEmailThreadInCommandMenu = () => {
const viewableRecordId = useRecoilComponentValue(
viewableRecordIdComponentState,
);
const { upsertRecords } = useUpsertRecordsInStore();
const { upsertRecordsInStore } = useUpsertRecordsInStore();
const [lastMessageId, setLastMessageId] = useState<string | null>(null);
const [lastMessageChannelId, setLastMessageChannelId] = useState<
string | null
@@ -35,7 +35,7 @@ export const useEmailThreadInCommandMenu = () => {
id: true,
},
onCompleted: (record) => {
upsertRecords([record]);
upsertRecordsInStore([record]);
},
});