Skip to content

Commit d0586a1

Browse files
committed
Fix ReferenceInput offline detection
1 parent ed0f0df commit d0586a1

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

packages/ra-core/src/controller/input/useReferenceInputController.ts

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export const useReferenceInputController = <RecordType extends RaRecord = any>(
7979

8080
// fetch possible values
8181
const {
82-
data: possibleValuesData = [],
82+
data: possibleValuesData,
8383
total,
8484
pageInfo,
8585
isFetching: isFetchingPossibleValues,
@@ -143,17 +143,30 @@ export const useReferenceInputController = <RecordType extends RaRecord = any>(
143143
}, [currentReferenceRecord]);
144144

145145
// add current value to possible sources
146-
let finalData: RecordType[], finalTotal: number | undefined;
147-
if (
148-
!referenceRecord ||
149-
possibleValuesData.find(record => record.id === referenceRecord.id)
150-
) {
151-
finalData = possibleValuesData;
152-
finalTotal = total;
153-
} else {
154-
finalData = [referenceRecord, ...possibleValuesData];
155-
finalTotal = total == null ? undefined : total + 1;
156-
}
146+
const { finalData, finalTotal } = useMemo(() => {
147+
if (isPaused && possibleValuesData == null) {
148+
return {
149+
finalData: null,
150+
finalTotal: null,
151+
};
152+
}
153+
if (
154+
!referenceRecord ||
155+
(possibleValuesData ?? []).find(
156+
record => record.id === referenceRecord.id
157+
)
158+
) {
159+
return {
160+
finalData: possibleValuesData,
161+
finalTotal: total,
162+
};
163+
} else {
164+
return {
165+
finalData: [referenceRecord, ...(possibleValuesData ?? [])],
166+
finalTotal: total == null ? undefined : total + 1,
167+
};
168+
}
169+
}, [isPaused, referenceRecord, possibleValuesData, total]);
157170

158171
const refetch = useCallback(() => {
159172
refetchGetList();

0 commit comments

Comments
 (0)