Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

for 11947 #106

Open
sosukesuzuki opened this issue Dec 11, 2021 · 8 comments
Open

for 11947 #106

sosukesuzuki opened this issue Dec 11, 2021 · 8 comments

Comments

@sosukesuzuki
Copy link
Member

No description provided.

@sosukesuzuki
Copy link
Member Author

run #11947

@github-actions
Copy link
Contributor

github-actions bot commented Dec 11, 2021

prettier/prettier#11947 VS prettier/prettier@main :: babel/babel@36a5ac4

The diff is empty.

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: vuejs/eslint-plugin-vue@10dd1a9

The diff is empty.

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: excalidraw/excalidraw@afa7932

Diff (304 lines)
diff --git ORI/excalidraw/src/components/ColorPicker.tsx ALT/excalidraw/src/components/ColorPicker.tsx
index 16eed73..f309353 100644
--- ORI/excalidraw/src/components/ColorPicker.tsx
+++ ALT/excalidraw/src/components/ColorPicker.tsx
@@ -210,17 +210,14 @@ const ColorInput = React.forwardRef(
 
     React.useImperativeHandle(ref, () => inputRef.current);
 
-    const changeColor = React.useCallback(
-      (inputValue: string) => {
-        const value = inputValue.toLowerCase();
-        const color = getColor(value);
-        if (color) {
-          onChange(color);
-        }
-        setInnerValue(value);
-      },
-      [onChange],
-    );
+    const changeColor = React.useCallback((inputValue: string) => {
+      const value = inputValue.toLowerCase();
+      const color = getColor(value);
+      if (color) {
+        onChange(color);
+      }
+      setInnerValue(value);
+    }, [onChange]);
 
     return (
       <label className="color-input-container">
diff --git ORI/excalidraw/src/components/LibraryMenu.tsx ALT/excalidraw/src/components/LibraryMenu.tsx
index 763dfb8..5ada899 100644
--- ORI/excalidraw/src/components/LibraryMenu.tsx
+++ ALT/excalidraw/src/components/LibraryMenu.tsx
@@ -155,32 +155,31 @@ export const LibraryMenu = ({
     focusContainer();
   }, [library, focusContainer]);
 
-  const addToLibrary = useCallback(
-    async (elements: LibraryItem["elements"]) => {
-      if (elements.some((element) => element.type === "image")) {
-        return setAppState({
-          errorMessage: "Support for adding images to the library coming soon!",
-        });
-      }
-      const items = await library.loadLibrary();
-      const nextItems: LibraryItems = [
-        {
-          status: "unpublished",
-          elements,
-          id: randomId(),
-          created: Date.now(),
-        },
-        ...items,
-      ];
-      onAddToLibrary();
-      library.saveLibrary(nextItems).catch((error) => {
-        setLibraryItems(items);
-        setAppState({ errorMessage: t("alerts.errorAddingToLibrary") });
+  const addToLibrary = useCallback(async (
+    elements: LibraryItem["elements"],
+  ) => {
+    if (elements.some((element) => element.type === "image")) {
+      return setAppState({
+        errorMessage: "Support for adding images to the library coming soon!",
       });
-      setLibraryItems(nextItems);
-    },
-    [onAddToLibrary, library, setAppState],
-  );
+    }
+    const items = await library.loadLibrary();
+    const nextItems: LibraryItems = [
+      {
+        status: "unpublished",
+        elements,
+        id: randomId(),
+        created: Date.now(),
+      },
+      ...items,
+    ];
+    onAddToLibrary();
+    library.saveLibrary(nextItems).catch((error) => {
+      setLibraryItems(items);
+      setAppState({ errorMessage: t("alerts.errorAddingToLibrary") });
+    });
+    setLibraryItems(nextItems);
+  }, [onAddToLibrary, library, setAppState]);
 
   const renderPublishSuccess = useCallback(() => {
     return (
@@ -215,27 +214,24 @@ export const LibraryMenu = ({
     );
   }, [setPublishLibSuccess, publishLibSuccess]);
 
-  const onPublishLibSuccess = useCallback(
-    (data) => {
-      setShowPublishLibraryDialog(false);
-      setPublishLibSuccess({ url: data.url, authorName: data.authorName });
-      const nextLibItems = libraryItems.slice();
-      nextLibItems.forEach((libItem) => {
-        if (selectedItems.includes(libItem.id)) {
-          libItem.status = "published";
-        }
-      });
-      library.saveLibrary(nextLibItems);
-      setLibraryItems(nextLibItems);
-    },
-    [
-      setShowPublishLibraryDialog,
-      setPublishLibSuccess,
-      libraryItems,
-      selectedItems,
-      library,
-    ],
-  );
+  const onPublishLibSuccess = useCallback((data) => {
+    setShowPublishLibraryDialog(false);
+    setPublishLibSuccess({ url: data.url, authorName: data.authorName });
+    const nextLibItems = libraryItems.slice();
+    nextLibItems.forEach((libItem) => {
+      if (selectedItems.includes(libItem.id)) {
+        libItem.status = "published";
+      }
+    });
+    library.saveLibrary(nextLibItems);
+    setLibraryItems(nextLibItems);
+  }, [
+    setShowPublishLibraryDialog,
+    setPublishLibSuccess,
+    libraryItems,
+    selectedItems,
+    library,
+  ]);
 
   const [lastSelectedItem, setLastSelectedItem] = useState<
     LibraryItem["id"] | null
diff --git ORI/excalidraw/src/excalidraw-app/index.tsx ALT/excalidraw/src/excalidraw-app/index.tsx
index 915e386..4af75a5 100644
--- ORI/excalidraw/src/excalidraw-app/index.tsx
+++ ALT/excalidraw/src/excalidraw-app/index.tsx
@@ -518,92 +518,89 @@ const ExcalidrawWrapper = () => {
     }
   };
 
-  const renderTopRightUI = useCallback(
-    (isMobile: boolean, appState: AppState) => {
-      if (isMobile) {
-        return null;
-      }
+  const renderTopRightUI = useCallback((
+    isMobile: boolean,
+    appState: AppState,
+  ) => {
+    if (isMobile) {
+      return null;
+    }
+    return (
+      <div
+        style={{
+          width: "24ch",
+          fontSize: "0.7em",
+          textAlign: "center",
+        }}
+      >
+        {/* <GitHubCorner theme={appState.theme} dir={document.dir} /> */}
+        {/* FIXME remove after 2021-05-20 */}
+        {PlusLinkJSX}
+      </div>
+    );
+  }, []);
+
+  const renderFooter = useCallback((isMobile: boolean) => {
+    const renderEncryptedIcon = () => (
+      <a
+        className="encrypted-icon tooltip"
+        href="https://blog.excalidraw.com/end-to-end-encryption/"
+        target="_blank"
+        rel="noopener noreferrer"
+        aria-label={t("encrypted.link")}
+      >
+        <Tooltip label={t("encrypted.tooltip")} long={true}>
+          {shield}
+        </Tooltip>
+      </a>
+    );
+
+    const renderLanguageList = () => (
+      <LanguageList
+        onChange={(langCode) => setLangCode(langCode)}
+        languages={languages}
+        currentLangCode={langCode}
+      />
+    );
+    if (isMobile) {
+      const isTinyDevice = window.innerWidth < 362;
       return (
         <div
           style={{
-            width: "24ch",
-            fontSize: "0.7em",
-            textAlign: "center",
+            display: "flex",
+            flexDirection: isTinyDevice ? "column" : "row",
           }}
         >
-          {/* <GitHubCorner theme={appState.theme} dir={document.dir} /> */}
+          <fieldset>
+            <legend>{t("labels.language")}</legend>
+            {renderLanguageList()}
+          </fieldset>
           {/* FIXME remove after 2021-05-20 */}
-          {PlusLinkJSX}
-        </div>
-      );
-    },
-    [],
-  );
-
-  const renderFooter = useCallback(
-    (isMobile: boolean) => {
-      const renderEncryptedIcon = () => (
-        <a
-          className="encrypted-icon tooltip"
-          href="https://blog.excalidraw.com/end-to-end-encryption/"
-          target="_blank"
-          rel="noopener noreferrer"
-          aria-label={t("encrypted.link")}
-        >
-          <Tooltip label={t("encrypted.tooltip")} long={true}>
-            {shield}
-          </Tooltip>
-        </a>
-      );
-
-      const renderLanguageList = () => (
-        <LanguageList
-          onChange={(langCode) => setLangCode(langCode)}
-          languages={languages}
-          currentLangCode={langCode}
-        />
-      );
-      if (isMobile) {
-        const isTinyDevice = window.innerWidth < 362;
-        return (
           <div
             style={{
-              display: "flex",
-              flexDirection: isTinyDevice ? "column" : "row",
+              width: "24ch",
+              fontSize: "0.7em",
+              textAlign: "center",
+              marginTop: isTinyDevice ? 16 : undefined,
+              marginLeft: "auto",
+              marginRight: isTinyDevice ? "auto" : undefined,
+              padding: "4px 2px",
+              border: "1px dashed #aaa",
+              borderRadius: 12,
             }}
           >
-            <fieldset>
-              <legend>{t("labels.language")}</legend>
-              {renderLanguageList()}
-            </fieldset>
-            {/* FIXME remove after 2021-05-20 */}
-            <div
-              style={{
-                width: "24ch",
-                fontSize: "0.7em",
-                textAlign: "center",
-                marginTop: isTinyDevice ? 16 : undefined,
-                marginLeft: "auto",
-                marginRight: isTinyDevice ? "auto" : undefined,
-                padding: "4px 2px",
-                border: "1px dashed #aaa",
-                borderRadius: 12,
-              }}
-            >
-              {PlusLinkJSX}
-            </div>
+            {PlusLinkJSX}
           </div>
-        );
-      }
-      return (
-        <>
-          {renderEncryptedIcon()}
-          {renderLanguageList()}
-        </>
+        </div>
       );
-    },
-    [langCode],
-  );
+    }
+    return (
+      <>
+        {renderEncryptedIcon()}
+        {renderLanguageList()}
+      </>
+    );
+  }, [langCode]);
 
   const renderCustomStats = () => {
     return (

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: prettier/prettier@0e42acb

The diff is empty.

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: marmelab/react-admin@5395b13

Diff (2334 lines)
diff --git ORI/react-admin/examples/demo/src/orders/OrderList.tsx ALT/react-admin/examples/demo/src/orders/OrderList.tsx
index 279534d..fe535a9 100644
--- ORI/react-admin/examples/demo/src/orders/OrderList.tsx
+++ ALT/react-admin/examples/demo/src/orders/OrderList.tsx
@@ -119,16 +119,13 @@ const TabbedDatagrid = (props: TabbedDatagridProps) => {
         }
     }, [ids, filterValues.status]);
 
-    const handleChange = useCallback(
-        (event: React.ChangeEvent<{}>, value: any) => {
-            setFilters &&
-                setFilters(
-                    { ...filterValues, status: value },
-                    displayedFilters
-                );
-        },
-        [displayedFilters, filterValues, setFilters]
-    );
+    const handleChange = useCallback((
+        event: React.ChangeEvent<{}>,
+        value: any
+    ) => {
+        setFilters &&
+            setFilters({ ...filterValues, status: value }, displayedFilters);
+    }, [displayedFilters, filterValues, setFilters]);
 
     const selectedIds =
         filterValues.status === 'ordered'
diff --git ORI/react-admin/examples/simple/src/comments/PostQuickCreate.tsx ALT/react-admin/examples/simple/src/comments/PostQuickCreate.tsx
index df4b1ca..31ee285 100644
--- ORI/react-admin/examples/simple/src/comments/PostQuickCreate.tsx
+++ ALT/react-admin/examples/simple/src/comments/PostQuickCreate.tsx
@@ -41,27 +41,24 @@ const PostQuickCreate = ({ onCancel, onSave, ...props }) => {
         state => state.admin.loading > 0
     );
 
-    const handleSave = useCallback(
-        values => {
-            dispatch({
-                type: 'QUICK_CREATE',
-                payload: { data: values },
-                meta: {
-                    fetch: CREATE,
-                    resource: 'posts',
-                    onSuccess: {
-                        callback: ({ payload: { data } }) => onSave(data),
-                    },
-                    onFailure: {
-                        callback: ({ error }) => {
-                            dispatch(showNotification(error.message, 'error'));
-                        },
+    const handleSave = useCallback(values => {
+        dispatch({
+            type: 'QUICK_CREATE',
+            payload: { data: values },
+            meta: {
+                fetch: CREATE,
+                resource: 'posts',
+                onSuccess: {
+                    callback: ({ payload: { data } }) => onSave(data),
+                },
+                onFailure: {
+                    callback: ({ error }) => {
+                        dispatch(showNotification(error.message, 'error'));
                     },
                 },
-            });
-        },
-        [dispatch, onSave]
-    );
+            },
+        });
+    }, [dispatch, onSave]);
 
     return (
         <SimpleForm
diff --git ORI/react-admin/examples/simple/src/comments/PostReferenceInput.tsx ALT/react-admin/examples/simple/src/comments/PostReferenceInput.tsx
index 1bc95fd..b906903 100644
--- ORI/react-admin/examples/simple/src/comments/PostReferenceInput.tsx
+++ ALT/react-admin/examples/simple/src/comments/PostReferenceInput.tsx
@@ -33,21 +33,15 @@ const PostReferenceInput = props => {
     const [newPostId, setNewPostId] = useState('');
     const [version, setVersion] = useState(0);
 
-    const handleNewClick = useCallback(
-        event => {
-            event.preventDefault();
-            setShowCreateDialog(true);
-        },
-        [setShowCreateDialog]
-    );
+    const handleNewClick = useCallback(event => {
+        event.preventDefault();
+        setShowCreateDialog(true);
+    }, [setShowCreateDialog]);
 
-    const handleShowClick = useCallback(
-        event => {
-            event.preventDefault();
-            setShowPreviewDialog(true);
-        },
-        [setShowPreviewDialog]
-    );
+    const handleShowClick = useCallback(event => {
+        event.preventDefault();
+        setShowPreviewDialog(true);
+    }, [setShowPreviewDialog]);
 
     const handleCloseCreate = useCallback(() => {
         setShowCreateDialog(false);
@@ -57,15 +51,12 @@ const PostReferenceInput = props => {
         setShowPreviewDialog(false);
     }, [setShowPreviewDialog]);
 
-    const handleSave = useCallback(
-        post => {
-            setShowCreateDialog(false);
-            setNewPostId(post.id);
-            setVersion(previous => previous + 1);
-            change('post_id', post.id);
-        },
-        [setShowCreateDialog, setNewPostId, change]
-    );
+    const handleSave = useCallback(post => {
+        setShowCreateDialog(false);
+        setNewPostId(post.id);
+        setVersion(previous => previous + 1);
+        change('post_id', post.id);
+    }, [setShowCreateDialog, setNewPostId, change]);
 
     return (
         <Fragment>
diff --git ORI/react-admin/packages/ra-core/src/auth/useLogin.ts ALT/react-admin/packages/ra-core/src/auth/useLogin.ts
index 8d5c120..552fbc2 100644
--- ORI/react-admin/packages/ra-core/src/auth/useLogin.ts
+++ ALT/react-admin/packages/ra-core/src/auth/useLogin.ts
@@ -51,14 +51,11 @@ const useLogin = (): Login => {
         [authProvider, history, nextPathName, nextSearch, dispatch]
     );
 
-    const loginWithoutProvider = useCallback(
-        (_, __) => {
-            dispatch(resetNotification());
-            history.push(defaultAuthParams.afterLoginUrl);
-            return Promise.resolve();
-        },
-        [history, dispatch]
-    );
+    const loginWithoutProvider = useCallback((_, __) => {
+        dispatch(resetNotification());
+        history.push(defaultAuthParams.afterLoginUrl);
+        return Promise.resolve();
+    }, [history, dispatch]);
 
     return authProvider ? login : loginWithoutProvider;
 };
diff --git ORI/react-admin/packages/ra-core/src/auth/useLogout.ts ALT/react-admin/packages/ra-core/src/auth/useLogout.ts
index 8185871..92fe47f 100644
--- ORI/react-admin/packages/ra-core/src/auth/useLogout.ts
+++ ALT/react-admin/packages/ra-core/src/auth/useLogout.ts
@@ -81,19 +81,16 @@ const useLogout = (): Logout => {
         [authProvider, history, dispatch]
     );
 
-    const logoutWithoutProvider = useCallback(
-        _ => {
-            history.push({
-                pathname: defaultAuthParams.loginUrl,
-                state: {
-                    nextPathname: history.location && history.location.pathname,
-                },
-            });
-            dispatch(clearState());
-            return Promise.resolve();
-        },
-        [dispatch, history]
-    );
+    const logoutWithoutProvider = useCallback(_ => {
+        history.push({
+            pathname: defaultAuthParams.loginUrl,
+            state: {
+                nextPathname: history.location && history.location.pathname,
+            },
+        });
+        dispatch(clearState());
+        return Promise.resolve();
+    }, [dispatch, history]);
 
     return authProvider ? logout : logoutWithoutProvider;
 };
diff --git ORI/react-admin/packages/ra-core/src/controller/button/useDeleteWithConfirmController.tsx ALT/react-admin/packages/ra-core/src/controller/button/useDeleteWithConfirmController.tsx
index 576132e..d1ca9d4 100644
--- ORI/react-admin/packages/ra-core/src/controller/button/useDeleteWithConfirmController.tsx
+++ ALT/react-admin/packages/ra-core/src/controller/button/useDeleteWithConfirmController.tsx
@@ -137,18 +137,15 @@ const useDeleteWithConfirmController = (
         e.stopPropagation();
     };
 
-    const handleDelete = useCallback(
-        event => {
-            event.stopPropagation();
-            deleteOne({
-                payload: { id: record.id, previousData: record },
-            });
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [deleteOne, onClick, record]
-    );
+    const handleDelete = useCallback(event => {
+        event.stopPropagation();
+        deleteOne({
+            payload: { id: record.id, previousData: record },
+        });
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [deleteOne, onClick, record]);
 
     return { open, loading, handleDialogOpen, handleDialogClose, handleDelete };
 };
diff --git ORI/react-admin/packages/ra-core/src/controller/button/useDeleteWithUndoController.tsx ALT/react-admin/packages/ra-core/src/controller/button/useDeleteWithUndoController.tsx
index a354d05..c9a9831 100644
--- ORI/react-admin/packages/ra-core/src/controller/button/useDeleteWithUndoController.tsx
+++ ALT/react-admin/packages/ra-core/src/controller/button/useDeleteWithUndoController.tsx
@@ -101,18 +101,15 @@ const useDeleteWithUndoController = (
                   },
         mutationMode: 'undoable',
     });
-    const handleDelete = useCallback(
-        event => {
-            event.stopPropagation();
-            deleteOne({
-                payload: { id: record.id, previousData: record },
-            });
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [deleteOne, onClick, record]
-    );
+    const handleDelete = useCallback(event => {
+        event.stopPropagation();
+        deleteOne({
+            payload: { id: record.id, previousData: record },
+        });
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [deleteOne, onClick, record]);
 
     return { loading, handleDelete };
 };
diff --git ORI/react-admin/packages/ra-core/src/controller/field/useReferenceManyFieldController.ts ALT/react-admin/packages/ra-core/src/controller/field/useReferenceManyFieldController.ts
index 695f932..9747dfc 100644
--- ORI/react-admin/packages/ra-core/src/controller/field/useReferenceManyFieldController.ts
+++ ALT/react-admin/packages/ra-core/src/controller/field/useReferenceManyFieldController.ts
@@ -91,13 +91,10 @@ const useReferenceManyFieldController = (
 
     // sort logic
     const { sort, setSort: setSortObject } = useSortState(initialSort);
-    const setSort = useCallback(
-        (field: string, order: string = 'ASC') => {
-            setSortObject({ field, order });
-            setPage(1);
-        },
-        [setPage, setSortObject]
-    );
+    const setSort = useCallback((field: string, order: string = 'ASC') => {
+        setSortObject({ field, order });
+        setPage(1);
+    }, [setPage, setSortObject]);
 
     // selection logic
     const { selectedIds, onSelect, onToggleItem, onUnselectItems } =
@@ -111,40 +108,31 @@ const useReferenceManyFieldController = (
     const [filterValues, setFilterValues] = useSafeSetState<{
         [key: string]: any;
     }>(filter);
-    const hideFilter = useCallback(
-        (filterName: string) => {
-            setDisplayedFilters(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-            setFilterValues(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const showFilter = useCallback(
-        (filterName: string, defaultValue: any) => {
-            setDisplayedFilters(previousState => ({
-                ...previousState,
-                [filterName]: true,
-            }));
-            setFilterValues(previousState => ({
-                ...previousState,
-                [filterName]: defaultValue,
-            }));
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const setFilters = useCallback(
-        (filters, displayedFilters) => {
-            setFilterValues(removeEmpty(filters));
-            setDisplayedFilters(displayedFilters);
-            setPage(1);
-        },
-        [setDisplayedFilters, setFilterValues, setPage]
-    );
+    const hideFilter = useCallback((filterName: string) => {
+        setDisplayedFilters(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+        setFilterValues(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+    }, [setDisplayedFilters, setFilterValues]);
+    const showFilter = useCallback((filterName: string, defaultValue: any) => {
+        setDisplayedFilters(previousState => ({
+            ...previousState,
+            [filterName]: true,
+        }));
+        setFilterValues(previousState => ({
+            ...previousState,
+            [filterName]: defaultValue,
+        }));
+    }, [setDisplayedFilters, setFilterValues]);
+    const setFilters = useCallback((filters, displayedFilters) => {
+        setFilterValues(removeEmpty(filters));
+        setDisplayedFilters(displayedFilters);
+        setPage(1);
+    }, [setDisplayedFilters, setFilterValues, setPage]);
     // handle filter prop change
     useEffect(() => {
         if (!isEqual(filter, filterRef.current)) {
diff --git ORI/react-admin/packages/ra-core/src/controller/input/useGetMatchingReferences.ts ALT/react-admin/packages/ra-core/src/controller/input/useGetMatchingReferences.ts
index b367ad9..5c71b3e 100644
--- ORI/react-admin/packages/ra-core/src/controller/input/useGetMatchingReferences.ts
+++ ALT/react-admin/packages/ra-core/src/controller/input/useGetMatchingReferences.ts
@@ -110,32 +110,27 @@ const useGetMatchingReferenceSelector = ({
     source,
     id,
 }) => {
-    const getMatchingReferences = useCallback(
-        state => {
-            const referenceResource = getReferenceResource(state, {
-                reference,
-            });
-            if (
-                // resources are registered
-                Object.keys(state.admin.resources).length > 0 &&
-                // no registered resource matching the reference
-                !referenceResource
-            ) {
-                throw new Error(`Cannot fetch a reference to "${reference}" (unknown resource).
+    const getMatchingReferences = useCallback(state => {
+        const referenceResource = getReferenceResource(state, {
+            reference,
+        });
+        if (
+            // resources are registered
+            Object.keys(state.admin.resources).length > 0 &&
+            // no registered resource matching the reference
+            !referenceResource
+        ) {
+            throw new Error(`Cannot fetch a reference to "${reference}" (unknown resource).
 You must add <Resource name="${reference}" /> as child of <Admin> to use "${reference}" in a reference`);
-            }
-            const possibleValues = getPossibleReferenceValues(state, {
-                referenceSource,
-                resource,
-                source,
-            });
+        }
+        const possibleValues = getPossibleReferenceValues(state, {
+            referenceSource,
+            resource,
+            source,
+        });
 
-            return getPossibleReferences(referenceResource, possibleValues, [
-                id,
-            ]);
-        },
-        [referenceSource, reference, resource, source, id]
-    );
+        return getPossibleReferences(referenceResource, possibleValues, [id]);
+    }, [referenceSource, reference, resource, source, id]);
 
     return useSelector(getMatchingReferences);
 };
diff --git ORI/react-admin/packages/ra-core/src/controller/input/useReferenceArrayInputController.ts ALT/react-admin/packages/ra-core/src/controller/input/useReferenceArrayInputController.ts
index d8c30c4..465e533 100644
--- ORI/react-admin/packages/ra-core/src/controller/input/useReferenceArrayInputController.ts
+++ ALT/react-admin/packages/ra-core/src/controller/input/useReferenceArrayInputController.ts
@@ -114,40 +114,34 @@ export const useReferenceArrayInputController = (
         });
 
     const form = useForm();
-    const onSelect = useCallback(
-        (newIds: Identifier[]) => {
-            // This could happen when user unselect all items using the datagrid for instance
-            if (newIds.length === 0) {
-                form.change(input.name, EmptyArray);
-                return;
-            }
+    const onSelect = useCallback((newIds: Identifier[]) => {
+        // This could happen when user unselect all items using the datagrid for instance
+        if (newIds.length === 0) {
+            form.change(input.name, EmptyArray);
+            return;
+        }
 
-            const newValue = new Set(input.value);
-            newIds.forEach(newId => {
-                newValue.add(newId);
-            });
-            form.change(input.name, Array.from(newValue));
-        },
-        [form, input.value, input.name]
-    );
+        const newValue = new Set(input.value);
+        newIds.forEach(newId => {
+            newValue.add(newId);
+        });
+        form.change(input.name, Array.from(newValue));
+    }, [form, input.value, input.name]);
 
     const onUnselectItems = useCallback(() => {
         form.change(input.name, EmptyArray);
     }, [form, input.name]);
 
-    const onToggleItem = useCallback(
-        (id: Identifier) => {
-            if (input.value.some(selectedId => selectedId === id)) {
-                form.change(
-                    input.name,
-                    input.value.filter(selectedId => selectedId !== id)
-                );
-            } else {
-                form.change(input.name, [...input.value, id]);
-            }
-        },
-        [form, input.name, input.value]
-    );
+    const onToggleItem = useCallback((id: Identifier) => {
+        if (input.value.some(selectedId => selectedId === id)) {
+            form.change(
+                input.name,
+                input.value.filter(selectedId => selectedId !== id)
+            );
+        } else {
+            form.change(input.name, [...input.value, id]);
+        }
+    }, [form, input.name, input.value]);
 
     // sort logic
     const sortRef = useRef(initialSort);
@@ -156,13 +150,13 @@ export const useReferenceArrayInputController = (
     // ReferenceArrayInput.setSort had a different signature than the one from ListContext.
     // In order to not break backward compatibility, we added this temporary setSortForList in the
     // ReferenceArrayInputContext
-    const setSortForList = useCallback(
-        (field: string, order: string = 'ASC') => {
-            setSort({ field, order });
-            setPage(1);
-        },
-        [setPage, setSort]
-    );
+    const setSortForList = useCallback((
+        field: string,
+        order: string = 'ASC'
+    ) => {
+        setSort({ field, order });
+        setPage(1);
+    }, [setPage, setSort]);
 
     // Ensure sort can be updated through props too, not just by using the setSort function
     useEffect(() => {
@@ -188,40 +182,31 @@ export const useReferenceArrayInputController = (
     const [filterValues, setFilterValues] = useSafeSetState<{
         [key: string]: any;
     }>(defaultFilter);
-    const hideFilter = useCallback(
-        (filterName: string) => {
-            setDisplayedFilters(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-            setFilterValues(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const showFilter = useCallback(
-        (filterName: string, defaultValue: any) => {
-            setDisplayedFilters(previousState => ({
-                ...previousState,
-                [filterName]: true,
-            }));
-            setFilterValues(previousState => ({
-                ...previousState,
-                [filterName]: defaultValue,
-            }));
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const setFilters = useCallback(
-        (filters, displayedFilters) => {
-            setFilterValues(removeEmpty(filters));
-            setDisplayedFilters(displayedFilters);
-            setPage(1);
-        },
-        [setDisplayedFilters, setFilterValues, setPage]
-    );
+    const hideFilter = useCallback((filterName: string) => {
+        setDisplayedFilters(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+        setFilterValues(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+    }, [setDisplayedFilters, setFilterValues]);
+    const showFilter = useCallback((filterName: string, defaultValue: any) => {
+        setDisplayedFilters(previousState => ({
+            ...previousState,
+            [filterName]: true,
+        }));
+        setFilterValues(previousState => ({
+            ...previousState,
+            [filterName]: defaultValue,
+        }));
+    }, [setDisplayedFilters, setFilterValues]);
+    const setFilters = useCallback((filters, displayedFilters) => {
+        setFilterValues(removeEmpty(filters));
+        setDisplayedFilters(displayedFilters);
+        setPage(1);
+    }, [setDisplayedFilters, setFilterValues, setPage]);
 
     // handle filter prop change
     useEffect(() => {
diff --git ORI/react-admin/packages/ra-core/src/controller/input/useReferenceInputController.ts ALT/react-admin/packages/ra-core/src/controller/input/useReferenceInputController.ts
index 00a7e98..a96b7e1 100644
--- ORI/react-admin/packages/ra-core/src/controller/input/useReferenceInputController.ts
+++ ALT/react-admin/packages/ra-core/src/controller/input/useReferenceInputController.ts
@@ -84,13 +84,10 @@ export const useReferenceInputController = (
 
     // sort logic
     const { sort, setSort: setSortObject } = useSortState(sortOverride);
-    const setSort = useCallback(
-        (field: string, order: string = 'ASC') => {
-            setSortObject({ field, order });
-            setPage(1);
-        },
-        [setPage, setSortObject]
-    );
+    const setSort = useCallback((field: string, order: string = 'ASC') => {
+        setSortObject({ field, order });
+        setPage(1);
+    }, [setPage, setSortObject]);
 
     // filter logic
     const { filter: filterValues, setFilter } = useFilterState({
diff --git ORI/react-admin/packages/ra-core/src/controller/useList.ts ALT/react-admin/packages/ra-core/src/controller/useList.ts
index 5b9591e..f0ed974 100644
--- ORI/react-admin/packages/ra-core/src/controller/useList.ts
+++ ALT/react-admin/packages/ra-core/src/controller/useList.ts
@@ -86,13 +86,10 @@ export const useList = (props: UseListOptions): UseListValue => {
 
     // sort logic
     const { sort, setSort: setSortObject } = useSortState(initialSort);
-    const setSort = useCallback(
-        (field: string, order = 'ASC') => {
-            setSortObject({ field, order });
-            setPage(1);
-        },
-        [setPage, setSortObject]
-    );
+    const setSort = useCallback((field: string, order = 'ASC') => {
+        setSortObject({ field, order });
+        setPage(1);
+    }, [setPage, setSortObject]);
 
     // selection logic
     const { selectedIds, onSelect, onToggleItem, onUnselectItems } =
@@ -106,44 +103,35 @@ export const useList = (props: UseListOptions): UseListValue => {
     const [filterValues, setFilterValues] = useSafeSetState<{
         [key: string]: any;
     }>(filter);
-    const hideFilter = useCallback(
-        (filterName: string) => {
-            setDisplayedFilters(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-            setFilterValues(previousState => {
-                const { [filterName]: _, ...newState } = previousState;
-                return newState;
-            });
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const showFilter = useCallback(
-        (filterName: string, defaultValue: any) => {
-            setDisplayedFilters(previousState => ({
+    const hideFilter = useCallback((filterName: string) => {
+        setDisplayedFilters(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+        setFilterValues(previousState => {
+            const { [filterName]: _, ...newState } = previousState;
+            return newState;
+        });
+    }, [setDisplayedFilters, setFilterValues]);
+    const showFilter = useCallback((filterName: string, defaultValue: any) => {
+        setDisplayedFilters(previousState => ({
+            ...previousState,
+            [filterName]: true,
+        }));
+        setFilterValues(previousState =>
+            removeEmpty({
                 ...previousState,
-                [filterName]: true,
-            }));
-            setFilterValues(previousState =>
-                removeEmpty({
-                    ...previousState,
-                    [filterName]: defaultValue,
-                })
-            );
-        },
-        [setDisplayedFilters, setFilterValues]
-    );
-    const setFilters = useCallback(
-        (filters, displayedFilters) => {
-            setFilterValues(removeEmpty(filters));
-            if (displayedFilters) {
-                setDisplayedFilters(displayedFilters);
-            }
-            setPage(1);
-        },
-        [setDisplayedFilters, setFilterValues, setPage]
-    );
+                [filterName]: defaultValue,
+            })
+        );
+    }, [setDisplayedFilters, setFilterValues]);
+    const setFilters = useCallback((filters, displayedFilters) => {
+        setFilterValues(removeEmpty(filters));
+        if (displayedFilters) {
+            setDisplayedFilters(displayedFilters);
+        }
+        setPage(1);
+    }, [setDisplayedFilters, setFilterValues, setPage]);
     // handle filter prop change
     useEffect(() => {
         if (!isEqual(filter, filterRef.current)) {
diff --git ORI/react-admin/packages/ra-core/src/controller/useSelectionState.ts ALT/react-admin/packages/ra-core/src/controller/useSelectionState.ts
index edf8201..879f1d7 100644
--- ORI/react-admin/packages/ra-core/src/controller/useSelectionState.ts
+++ ALT/react-admin/packages/ra-core/src/controller/useSelectionState.ts
@@ -37,28 +37,22 @@ const useSelectionState = (
         setSelectedIds(initialSelection);
     }, [initialSelection, setSelectedIds]);
 
-    const onSelect = useCallback(
-        (newIds: Identifier[]) => {
-            setSelectedIds(newIds);
-        },
-        [setSelectedIds]
-    );
-    const onToggleItem = useCallback(
-        (id: Identifier) => {
-            setSelectedIds(previousState => {
-                const index = previousState.indexOf(id);
-                if (index > -1) {
-                    return [
-                        ...previousState.slice(0, index),
-                        ...previousState.slice(index + 1),
-                    ];
-                } else {
-                    return [...previousState, id];
-                }
-            });
-        },
-        [setSelectedIds]
-    );
+    const onSelect = useCallback((newIds: Identifier[]) => {
+        setSelectedIds(newIds);
+    }, [setSelectedIds]);
+    const onToggleItem = useCallback((id: Identifier) => {
+        setSelectedIds(previousState => {
+            const index = previousState.indexOf(id);
+            if (index > -1) {
+                return [
+                    ...previousState.slice(0, index),
+                    ...previousState.slice(index + 1),
+                ];
+            } else {
+                return [...previousState, id];
+            }
+        });
+    }, [setSelectedIds]);
     const onUnselectItems = useCallback(() => {
         setSelectedIds([]);
     }, [setSelectedIds]);
diff --git ORI/react-admin/packages/ra-core/src/form/FormWithRedirect.tsx ALT/react-admin/packages/ra-core/src/form/FormWithRedirect.tsx
index 14022cb..e23340a 100644
--- ORI/react-admin/packages/ra-core/src/form/FormWithRedirect.tsx
+++ ALT/react-admin/packages/ra-core/src/form/FormWithRedirect.tsx
@@ -94,14 +94,11 @@ const FormWithRedirect = ({
      * if it has no custom onSave, and why this function forces a default to
      * save.
      */
-    const setOnSave = useCallback(
-        newOnSave => {
-            typeof newOnSave === 'function'
-                ? (onSave.current = newOnSave)
-                : (onSave.current = save);
-        },
-        [save]
-    );
+    const setOnSave = useCallback(newOnSave => {
+        typeof newOnSave === 'function'
+            ? (onSave.current = newOnSave)
+            : (onSave.current = save);
+    }, [save]);
 
     const formContextValue = useMemo<FormContextValue>(
         () => ({
@@ -283,13 +280,10 @@ const FormView = ({
      *     Save and edit
      * </Button>
      */
-    const handleSubmitWithRedirect = useCallback(
-        (redirectTo = redirect) => {
-            setRedirect(redirectTo);
-            handleSubmit();
-        },
-        [setRedirect, redirect, handleSubmit]
-    );
+    const handleSubmitWithRedirect = useCallback((redirectTo = redirect) => {
+        setRedirect(redirectTo);
+        handleSubmit();
+    }, [setRedirect, redirect, handleSubmit]);
 
     return render({
         ...props,
diff --git ORI/react-admin/packages/ra-core/src/form/useChoices.ts ALT/react-admin/packages/ra-core/src/form/useChoices.ts
index e5ee20f..6590454 100644
--- ORI/react-admin/packages/ra-core/src/form/useChoices.ts
+++ ALT/react-admin/packages/ra-core/src/form/useChoices.ts
@@ -53,24 +53,21 @@ const useChoices = ({
 }: UseChoicesOptions) => {
     const translate = useTranslate();
 
-    const getChoiceText = useCallback(
-        choice => {
-            if (isValidElement<{ record: any }>(optionText)) {
-                return cloneElement<{ record: any }>(optionText, {
-                    record: choice,
-                });
-            }
-            const choiceName =
-                typeof optionText === 'function'
-                    ? optionText(choice)
-                    : get(choice, optionText);
+    const getChoiceText = useCallback(choice => {
+        if (isValidElement<{ record: any }>(optionText)) {
+            return cloneElement<{ record: any }>(optionText, {
+                record: choice,
+            });
+        }
+        const choiceName =
+            typeof optionText === 'function'
+                ? optionText(choice)
+                : get(choice, optionText);
 
-            return translateChoice
-                ? translate(choiceName, { _: choiceName })
-                : choiceName;
-        },
-        [optionText, translate, translateChoice]
-    );
+        return translateChoice
+            ? translate(choiceName, { _: choiceName })
+            : choiceName;
+    }, [optionText, translate, translateChoice]);
 
     const getChoiceValue = useCallback(
         choice => get(choice, optionValue),
diff --git ORI/react-admin/packages/ra-core/src/form/useInput.ts ALT/react-admin/packages/ra-core/src/form/useInput.ts
index 799d14f..815e9b7 100644
--- ORI/react-admin/packages/ra-core/src/form/useInput.ts
+++ ALT/react-admin/packages/ra-core/src/form/useInput.ts
@@ -78,35 +78,26 @@ const useInput = ({
     // allowing users to provide theirs without breaking the form
     const { onBlur, onChange, onFocus, ...inputProps } = input;
 
-    const handleBlur = useCallback(
-        event => {
-            onBlur(event);
-            if (typeof customOnBlur === 'function') {
-                customOnBlur(event);
-            }
-        },
-        [onBlur, customOnBlur]
-    );
+    const handleBlur = useCallback(event => {
+        onBlur(event);
+        if (typeof customOnBlur === 'function') {
+            customOnBlur(event);
+        }
+    }, [onBlur, customOnBlur]);
 
-    const handleChange = useCallback(
-        event => {
-            onChange(event);
-            if (typeof customOnChange === 'function') {
-                customOnChange(event);
-            }
-        },
-        [onChange, customOnChange]
-    );
+    const handleChange = useCallback(event => {
+        onChange(event);
+        if (typeof customOnChange === 'function') {
+            customOnChange(event);
+        }
+    }, [onChange, customOnChange]);
 
-    const handleFocus = useCallback(
-        event => {
-            onFocus(event);
-            if (typeof customOnFocus === 'function') {
-                customOnFocus(event);
-            }
-        },
-        [onFocus, customOnFocus]
-    );
+    const handleFocus = useCallback(event => {
+        onFocus(event);
+        if (typeof customOnFocus === 'function') {
+            customOnFocus(event);
+        }
+    }, [onFocus, customOnFocus]);
 
     // If there is an input prop, this input has already been enhanced by final-form
     // This is required in for inputs used inside other inputs (such as the SelectInput inside a ReferenceInput)
diff --git ORI/react-admin/packages/ra-core/src/sideEffect/useNotify.ts ALT/react-admin/packages/ra-core/src/sideEffect/useNotify.ts
index ec0f018..62330e8 100644
--- ORI/react-admin/packages/ra-core/src/sideEffect/useNotify.ts
+++ ALT/react-admin/packages/ra-core/src/sideEffect/useNotify.ts
@@ -24,41 +24,38 @@ import warning from '../util/warning';
  */
 const useNotify = () => {
     const dispatch = useDispatch();
-    return useCallback(
-        (
-            message: string,
-            type?:
-                | NotificationType
-                | (NotificationOptions & { type: NotificationType }),
-            messageArgs: any = {},
-            undoable: boolean = false,
-            autoHideDuration?: number,
-            multiLine?: boolean
-        ) => {
-            if (typeof type === 'string') {
-                warning(
-                    true,
-                    'This way of calling useNotify callback is deprecated. Please use the new syntax passing notify("[Your message]", { ...restOfArguments })'
-                );
-                dispatch(
-                    showNotification(
-                        message,
-                        (type || 'info') as NotificationType,
-                        {
-                            messageArgs,
-                            undoable,
-                            autoHideDuration,
-                            multiLine,
-                        }
-                    )
-                );
-            } else {
-                const { type: messageType, ...options } = type || {};
-                dispatch(showNotification(message, messageType, options));
-            }
-        },
-        [dispatch]
-    );
+    return useCallback((
+        message: string,
+        type?:
+            | NotificationType
+            | (NotificationOptions & { type: NotificationType }),
+        messageArgs: any = {},
+        undoable: boolean = false,
+        autoHideDuration?: number,
+        multiLine?: boolean
+    ) => {
+        if (typeof type === 'string') {
+            warning(
+                true,
+                'This way of calling useNotify callback is deprecated. Please use the new syntax passing notify("[Your message]", { ...restOfArguments })'
+            );
+            dispatch(
+                showNotification(
+                    message,
+                    (type || 'info') as NotificationType,
+                    {
+                        messageArgs,
+                        undoable,
+                        autoHideDuration,
+                        multiLine,
+                    }
+                )
+            );
+        } else {
+            const { type: messageType, ...options } = type || {};
+            dispatch(showNotification(message, messageType, options));
+        }
+    }, [dispatch]);
 };
 
 export default useNotify;
diff --git ORI/react-admin/packages/ra-core/src/sideEffect/useRedirect.ts ALT/react-admin/packages/ra-core/src/sideEffect/useRedirect.ts
index 3c45a2d..69155b8 100644
--- ORI/react-admin/packages/ra-core/src/sideEffect/useRedirect.ts
+++ ALT/react-admin/packages/ra-core/src/sideEffect/useRedirect.ts
@@ -36,46 +36,41 @@ export type RedirectionSideEffect = string | boolean | RedirectToFunction;
 const useRedirect = () => {
     const dispatch = useDispatch();
     const history = useHistory(); // Note: history is mutable. This prevents render loops in useCallback.
-    return useCallback(
-        (
-            redirectTo: RedirectionSideEffect,
-            basePath: string = '',
-            id?: Identifier,
-            data?: Partial<Record>,
-            state: object = {}
-        ) => {
-            if (!redirectTo) {
-                if (history.location.state || history.location.search) {
-                    history.replace({
-                        ...history.location,
-                        state,
-                        search: undefined,
-                    });
-                } else {
-                    dispatch(refreshView());
-                }
-                return;
-            }
-
-            if (
-                typeof redirectTo === 'string' &&
-                redirectTo.startsWith('http') &&
-                window
-            ) {
-                // redirection to an absolute url
-                // history doesn't handle that case, so we handle it by hand
-                window.location.href = redirectTo;
-            } else {
-                history.push({
-                    ...parsePath(
-                        resolveRedirectTo(redirectTo, basePath, id, data)
-                    ),
-                    state: { _scrollToTop: true, ...state },
+    return useCallback((
+        redirectTo: RedirectionSideEffect,
+        basePath: string = '',
+        id?: Identifier,
+        data?: Partial<Record>,
+        state: object = {}
+    ) => {
+        if (!redirectTo) {
+            if (history.location.state || history.location.search) {
+                history.replace({
+                    ...history.location,
+                    state,
+                    search: undefined,
                 });
+            } else {
+                dispatch(refreshView());
             }
-        },
-        [dispatch, history]
-    );
+            return;
+        }
+
+        if (
+            typeof redirectTo === 'string' &&
+            redirectTo.startsWith('http') &&
+            window
+        ) {
+            // redirection to an absolute url
+            // history doesn't handle that case, so we handle it by hand
+            window.location.href = redirectTo;
+        } else {
+            history.push({
+                ...parsePath(resolveRedirectTo(redirectTo, basePath, id, data)),
+                state: { _scrollToTop: true, ...state },
+            });
+        }
+    }, [dispatch, history]);
 };
 
 export default useRedirect;
diff --git ORI/react-admin/packages/ra-core/src/sideEffect/useRefresh.ts ALT/react-admin/packages/ra-core/src/sideEffect/useRefresh.ts
index b35499e..c5d0c73 100644
--- ORI/react-admin/packages/ra-core/src/sideEffect/useRefresh.ts
+++ ALT/react-admin/packages/ra-core/src/sideEffect/useRefresh.ts
@@ -22,12 +22,9 @@ import { refreshView } from '../actions/uiActions';
  */
 const useRefresh = () => {
     const dispatch = useDispatch();
-    return useCallback(
-        (hard?: boolean) => {
-            dispatch(refreshView(hard));
-        },
-        [dispatch]
-    );
+    return useCallback((hard?: boolean) => {
+        dispatch(refreshView(hard));
+    }, [dispatch]);
 };
 
 export default useRefresh;
diff --git ORI/react-admin/packages/ra-core/src/sideEffect/useUnselectAll.ts ALT/react-admin/packages/ra-core/src/sideEffect/useUnselectAll.ts
index dedfb7f..d0e2f77 100644
--- ORI/react-admin/packages/ra-core/src/sideEffect/useUnselectAll.ts
+++ ALT/react-admin/packages/ra-core/src/sideEffect/useUnselectAll.ts
@@ -13,17 +13,14 @@ import { warning } from '../util';
  */
 const useUnselectAll = (resource1?: string) => {
     const dispatch = useDispatch();
-    return useCallback(
-        (resource2?: string) => {
-            warning(
-                !resource2 && !resource1,
-                "You didn't specify the resource at initialization (useUnselectAll('posts')) nor when using the callback (unselectAll('posts'))"
-            );
+    return useCallback((resource2?: string) => {
+        warning(
+            !resource2 && !resource1,
+            "You didn't specify the resource at initialization (useUnselectAll('posts')) nor when using the callback (unselectAll('posts'))"
+        );
 
-            dispatch(setListSelectedIds(resource2 || resource1, []));
-        },
-        [dispatch, resource1]
-    );
+        dispatch(setListSelectedIds(resource2 || resource1, []));
+    }, [dispatch, resource1]);
 };
 
 export default useUnselectAll;
diff --git ORI/react-admin/packages/ra-core/src/util/hooks.ts ALT/react-admin/packages/ra-core/src/util/hooks.ts
index 83c717b..faaf2ce 100644
--- ORI/react-admin/packages/ra-core/src/util/hooks.ts
+++ ALT/react-admin/packages/ra-core/src/util/hooks.ts
@@ -16,14 +16,11 @@ export function useSafeSetState<T>(
             mountedRef.current = false;
         };
     }, []);
-    const safeSetState = useCallback(
-        args => {
-            if (mountedRef.current) {
-                return setState(args);
-            }
-        },
-        [mountedRef, setState]
-    );
+    const safeSetState = useCallback(args => {
+        if (mountedRef.current) {
+            return setState(args);
+        }
+    }, [mountedRef, setState]);
 
     return [state, safeSetState];
 }
diff --git ORI/react-admin/packages/ra-no-code/src/ResourceConfiguration/ResourceConfigurationProvider.tsx ALT/react-admin/packages/ra-no-code/src/ResourceConfiguration/ResourceConfigurationProvider.tsx
index d16dd09..55250fb 100644
--- ORI/react-admin/packages/ra-no-code/src/ResourceConfiguration/ResourceConfigurationProvider.tsx
+++ ALT/react-admin/packages/ra-no-code/src/ResourceConfiguration/ResourceConfigurationProvider.tsx
@@ -18,86 +18,75 @@ export const ResourceConfigurationProvider = ({
             loadConfigurationsFromLocalStorage(storageKey)
         );
 
-    const setResources = useCallback(
-        (
-            value: (
-                prevState: ResourceConfigurationMap
-            ) => ResourceConfigurationMap
-        ) => {
-            setInternalResources(prevState => {
-                const newState = value(prevState);
-
-                if (newState != undefined) {
-                    // eslint-disable-line
-                    window.localStorage.setItem(
-                        storageKey,
-                        JSON.stringify(newState)
-                    );
-                } else {
-                    window.localStorage.removeItem(storageKey);
-                }
-                return newState;
-            });
-        },
-        [storageKey]
-    );
-
-    const addResource = useCallback(
-        (resource: ResourceConfiguration) => {
-            setResources(current => {
-                const allResources = current || {};
-                if (allResources[resource.name]) {
-                    return allResources;
-                }
-                return {
-                    ...current,
-                    [resource.name]: resource,
-                };
-            });
-        },
-        [setResources]
-    );
-
-    const updateResource = useCallback(
-        (name: string, newResource: Partial<ResourceConfiguration>) => {
-            setResources(current => {
-                const allResources = current || {};
-                const resource = allResources[name];
-                if (!resource) {
-                    return allResources;
-                }
-                const nextResources: ResourceConfigurationMap = {
-                    ...current,
-                    [name]: {
-                        ...current[name],
-                        ...newResource,
-                    },
-                };
-                return nextResources;
-            });
-        },
-        [setResources]
-    );
-
-    const removeResource = useCallback(
-        (name: string) => {
-            setResources(current => {
-                const allResources = current || {};
-                const resourceToRemove = allResources[name];
-
-                if (!resourceToRemove) {
-                    return allResources;
-                }
-
-                deleteResourceData(name, dataProvider);
-
-                const { [name]: currentResource, ...nextResources } = current;
-
-                return nextResources;
-            });
-        },
-        [dataProvider, setResources]
-    );
+    const setResources = useCallback((
+        value: (prevState: ResourceConfigurationMap) => ResourceConfigurationMap
+    ) => {
+        setInternalResources(prevState => {
+            const newState = value(prevState);
+
+            if (newState != undefined) {
+                // eslint-disable-line
+                window.localStorage.setItem(
+                    storageKey,
+                    JSON.stringify(newState)
+                );
+            } else {
+                window.localStorage.removeItem(storageKey);
+            }
+            return newState;
+        });
+    }, [storageKey]);
+
+    const addResource = useCallback((resource: ResourceConfiguration) => {
+        setResources(current => {
+            const allResources = current || {};
+            if (allResources[resource.name]) {
+                return allResources;
+            }
+            return {
+                ...current,
+                [resource.name]: resource,
+            };
+        });
+    }, [setResources]);
+
+    const updateResource = useCallback((
+        name: string,
+        newResource: Partial<ResourceConfiguration>
+    ) => {
+        setResources(current => {
+            const allResources = current || {};
+            const resource = allResources[name];
+            if (!resource) {
+                return allResources;
+            }
+            const nextResources: ResourceConfigurationMap = {
+                ...current,
+                [name]: {
+                    ...current[name],
+                    ...newResource,
+                },
+            };
+            return nextResources;
+        });
+    }, [setResources]);
+
+    const removeResource = useCallback((name: string) => {
+        setResources(current => {
+            const allResources = current || {};
+            const resourceToRemove = allResources[name];
+
+            if (!resourceToRemove) {
+                return allResources;
+            }
+
+            deleteResourceData(name, dataProvider);
+
+            const { [name]: currentResource, ...nextResources } = current;
+
+            return nextResources;
+        });
+    }, [dataProvider, setResources]);
 
     const context = useMemo<ResourceConfigurationContextValue>(() => {
         return [
diff --git ORI/react-admin/packages/ra-no-code/src/ResourceConfiguration/useResourceConfiguration.ts ALT/react-admin/packages/ra-no-code/src/ResourceConfiguration/useResourceConfiguration.ts
index b45fc18..707f263 100644
--- ORI/react-admin/packages/ra-no-code/src/ResourceConfiguration/useResourceConfiguration.ts
+++ ALT/react-admin/packages/ra-no-code/src/ResourceConfiguration/useResourceConfiguration.ts
@@ -20,12 +20,9 @@ export const useResourceConfiguration = (
 ): [ResourceConfiguration, ResourceDefinitionStateActions] => {
     const [resources, helpers] = useResourcesConfiguration();
 
-    const update = useCallback(
-        newDefinition => {
-            helpers.updateResource(name, newDefinition);
-        },
-        [helpers, name]
-    );
+    const update = useCallback(newDefinition => {
+        helpers.updateResource(name, newDefinition);
+    }, [helpers, name]);
 
     const remove = useCallback(() => {
         helpers.removeResource(name);
diff --git ORI/react-admin/packages/ra-ui-materialui/src/button/BulkExportButton.tsx ALT/react-admin/packages/ra-ui-materialui/src/button/BulkExportButton.tsx
index 54bd6e6..c3c1c9b 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/button/BulkExportButton.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/button/BulkExportButton.tsx
@@ -52,31 +52,28 @@ const BulkExportButton = (props: BulkExportButtonProps) => {
     const exporter = customExporter || exporterFromContext;
     const dataProvider = useDataProvider();
     const notify = useNotify();
-    const handleClick = useCallback(
-        event => {
-            exporter &&
-                dataProvider
-                    .getMany(resource, { ids: selectedIds })
-                    .then(({ data }) =>
-                        exporter(
-                            data,
-                            fetchRelatedRecords(dataProvider),
-                            dataProvider,
-                            resource
-                        )
+    const handleClick = useCallback(event => {
+        exporter &&
+            dataProvider
+                .getMany(resource, { ids: selectedIds })
+                .then(({ data }) =>
+                    exporter(
+                        data,
+                        fetchRelatedRecords(dataProvider),
+                        dataProvider,
+                        resource
                     )
-                    .catch(error => {
-                        console.error(error);
-                        notify('ra.notification.http_error', {
-                            type: 'warning',
-                        });
+                )
+                .catch(error => {
+                    console.error(error);
+                    notify('ra.notification.http_error', {
+                        type: 'warning',
                     });
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [dataProvider, exporter, notify, onClick, resource, selectedIds]
-    );
+                });
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [dataProvider, exporter, notify, onClick, resource, selectedIds]);
 
     return (
         <Button
diff --git ORI/react-admin/packages/ra-ui-materialui/src/button/ExportButton.tsx ALT/react-admin/packages/ra-ui-materialui/src/button/ExportButton.tsx
index 867ff31..0051859 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/button/ExportButton.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/button/ExportButton.tsx
@@ -35,47 +35,42 @@ const ExportButton = (props: ExportButtonProps) => {
     const exporter = customExporter || exporterFromContext;
     const dataProvider = useDataProvider();
     const notify = useNotify();
-    const handleClick = useCallback(
-        event => {
-            dataProvider
-                .getList(resource, {
-                    sort: currentSort || sort,
-                    filter: filter
-                        ? { ...filterValues, ...filter }
-                        : filterValues,
-                    pagination: { page: 1, perPage: maxResults },
-                })
-                .then(
-                    ({ data }) =>
-                        exporter &&
-                        exporter(
-                            data,
-                            fetchRelatedRecords(dataProvider),
-                            dataProvider,
-                            resource
-                        )
-                )
-                .catch(error => {
-                    console.error(error);
-                    notify('ra.notification.http_error', { type: 'warning' });
-                });
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [
-            currentSort,
-            dataProvider,
-            exporter,
-            filter,
-            filterValues,
-            maxResults,
-            notify,
-            onClick,
-            resource,
-            sort,
-        ]
-    );
+    const handleClick = useCallback(event => {
+        dataProvider
+            .getList(resource, {
+                sort: currentSort || sort,
+                filter: filter ? { ...filterValues, ...filter } : filterValues,
+                pagination: { page: 1, perPage: maxResults },
+            })
+            .then(
+                ({ data }) =>
+                    exporter &&
+                    exporter(
+                        data,
+                        fetchRelatedRecords(dataProvider),
+                        dataProvider,
+                        resource
+                    )
+            )
+            .catch(error => {
+                console.error(error);
+                notify('ra.notification.http_error', { type: 'warning' });
+            });
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [
+        currentSort,
+        dataProvider,
+        exporter,
+        filter,
+        filterValues,
+        maxResults,
+        notify,
+        onClick,
+        resource,
+        sort,
+    ]);
 
     return (
         <Button
diff --git ORI/react-admin/packages/ra-ui-materialui/src/button/RefreshButton.tsx ALT/react-admin/packages/ra-ui-materialui/src/button/RefreshButton.tsx
index a21db20..220cd13 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/button/RefreshButton.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/button/RefreshButton.tsx
@@ -15,16 +15,13 @@ const RefreshButton = (props: RefreshButtonProps) => {
         ...rest
     } = props;
     const dispatch = useDispatch();
-    const handleClick = useCallback(
-        event => {
-            event.preventDefault();
-            dispatch(refreshView());
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [dispatch, onClick]
-    );
+    const handleClick = useCallback(event => {
+        event.preventDefault();
+        dispatch(refreshView());
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [dispatch, onClick]);
 
     return (
         <Button label={label} onClick={handleClick} {...rest}>
diff --git ORI/react-admin/packages/ra-ui-materialui/src/button/RefreshIconButton.tsx ALT/react-admin/packages/ra-ui-materialui/src/button/RefreshIconButton.tsx
index 6b9c121..77f8b44 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/button/RefreshIconButton.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/button/RefreshIconButton.tsx
@@ -17,16 +17,13 @@ const RefreshIconButton = (props: RefreshIconButtonProps) => {
     } = props;
     const dispatch = useDispatch();
     const translate = useTranslate();
-    const handleClick = useCallback(
-        event => {
-            event.preventDefault();
-            dispatch(refreshView());
-            if (typeof onClick === 'function') {
-                onClick(event);
-            }
-        },
-        [dispatch, onClick]
-    );
+    const handleClick = useCallback(event => {
+        event.preventDefault();
+        dispatch(refreshView());
+        if (typeof onClick === 'function') {
+            onClick(event);
+        }
+    }, [dispatch, onClick]);
 
     return (
         <Tooltip title={label && translate(label, { _: label })}>
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx
index 74049b4..326f91e 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx
@@ -74,21 +74,15 @@ export const SimpleFormIterator = (props: SimpleFormIteratorProps) => {
         nextId.current > 0 ? Array.from(Array(nextId.current).keys()) : []
     );
 
-    const removeField = useCallback(
-        (index: number) => {
-            ids.current.splice(index, 1);
-            fields.remove(index);
-        },
-        [fields]
-    );
+    const removeField = useCallback((index: number) => {
+        ids.current.splice(index, 1);
+        fields.remove(index);
+    }, [fields]);
 
-    const addField = useCallback(
-        (item: any = undefined) => {
-            ids.current.push(nextId.current++);
-            fields.push(item);
-        },
-        [fields]
-    );
+    const addField = useCallback((item: any = undefined) => {
+        ids.current.push(nextId.current++);
+        fields.push(item);
+    }, [fields]);
 
     // add field and call the onClick event of the button passed as addButton prop
     const handleAddButtonClick =
@@ -99,15 +93,12 @@ export const SimpleFormIterator = (props: SimpleFormIteratorProps) => {
             }
         };
 
-    const handleReorder = useCallback(
-        (origin: number, destination: number) => {
-            const item = ids.current[origin];
-            ids.current[origin] = ids.current[destination];
-            ids.current[destination] = item;
-            fields.move(origin, destination);
-        },
-        [fields]
-    );
+    const handleReorder = useCallback((origin: number, destination: number) => {
+        const item = ids.current[origin];
+        ids.current[origin] = ids.current[destination];
+        ids.current[destination] = item;
+        fields.move(origin, destination);
+    }, [fields]);
 
     const records = get(record, source);
 
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/AutocompleteArrayInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/AutocompleteArrayInput.tsx
index 7f7a077..e6d5c4c 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/AutocompleteArrayInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/AutocompleteArrayInput.tsx
@@ -221,20 +221,19 @@ const AutocompleteArrayInput = (props: AutocompleteArrayInputProps) => {
         [setFilter, debounceDelay]
     );
 
-    const handleFilterChange = useCallback(
-        (eventOrValue: React.ChangeEvent<{ value: string }> | string) => {
-            const event = eventOrValue as React.ChangeEvent<{ value: string }>;
-            const value = event.target
-                ? event.target.value
-                : (eventOrValue as string);
-
-            setFilterValue(value);
-            if (setFilter) {
-                debouncedSetFilter(value);
-            }
-        },
-        [debouncedSetFilter, setFilter, setFilterValue]
-    );
+    const handleFilterChange = useCallback((
+        eventOrValue: React.ChangeEvent<{ value: string }> | string
+    ) => {
+        const event = eventOrValue as React.ChangeEvent<{ value: string }>;
+        const value = event.target
+            ? event.target.value
+            : (eventOrValue as string);
+
+        setFilterValue(value);
+        if (setFilter) {
+            debouncedSetFilter(value);
+        }
+    }, [debouncedSetFilter, setFilter, setFilterValue]);
 
     // We must reset the filter every time the value changes to ensure we
     // display at least some choices even if the input has a value.
@@ -244,36 +243,30 @@ const AutocompleteArrayInput = (props: AutocompleteArrayInputProps) => {
         handleFilterChange('');
     }, [values.join(','), handleFilterChange]); // eslint-disable-line react-hooks/exhaustive-deps
 
-    const handleKeyDown = useCallback(
-        (event: React.KeyboardEvent) => {
-            // Remove latest item from array when user hits backspace with no text
-            if (
-                selectedItems.length &&
-                !filterValue.length &&
-                event.key === 'Backspace'
-            ) {
-                const newSelectedItems = selectedItems.slice(
-                    0,
-                    selectedItems.length - 1
-                );
-                input.onChange(newSelectedItems.map(getChoiceValue));
-            }
-        },
-        [filterValue.length, getChoiceValue, input, selectedItems]
-    );
-
-    const handleChange = useCallback(
-        (item: any, newItem) => {
-            const finalItem = newItem || item;
-            const newSelectedItems =
-                !allowDuplicates && selectedItems.includes(finalItem)
-                    ? [...selectedItems]
-                    : [...selectedItems, finalItem];
-            setFilterValue('');
+    const handleKeyDown = useCallback((event: React.KeyboardEvent) => {
+        // Remove latest item from array when user hits backspace with no text
+        if (
+            selectedItems.length &&
+            !filterValue.length &&
+            event.key === 'Backspace'
+        ) {
+            const newSelectedItems = selectedItems.slice(
+                0,
+                selectedItems.length - 1
+            );
             input.onChange(newSelectedItems.map(getChoiceValue));
-        },
-        [allowDuplicates, getChoiceValue, input, selectedItems, setFilterValue]
-    );
+        }
+    }, [filterValue.length, getChoiceValue, input, selectedItems]);
+
+    const handleChange = useCallback((item: any, newItem) => {
+        const finalItem = newItem || item;
+        const newSelectedItems =
+            !allowDuplicates && selectedItems.includes(finalItem)
+                ? [...selectedItems]
+                : [...selectedItems, finalItem];
+        setFilterValue('');
+        input.onChange(newSelectedItems.map(getChoiceValue));
+    }, [allowDuplicates, getChoiceValue, input, selectedItems, setFilterValue]);
 
     const {
         getCreateItem,
@@ -333,14 +326,11 @@ const AutocompleteArrayInput = (props: AutocompleteArrayInputProps) => {
         updateAnchorEl();
     };
 
-    const handleBlur = useCallback(
-        event => {
-            setFilterValue('');
-            handleFilterChange('');
-            input.onBlur(event);
-        },
-        [handleFilterChange, input, setFilterValue]
-    );
+    const handleBlur = useCallback(event => {
+        setFilterValue('');
+        handleFilterChange('');
+        input.onBlur(event);
+    }, [handleFilterChange, input, setFilterValue]);
 
     const handleFocus = useCallback(
         openMenu => event => {
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx
index d29d882..e24ead5 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx
@@ -264,17 +264,14 @@ export const AutocompleteInput = (props: AutocompleteInputProps) => {
         translateChoice,
     });
 
-    const handleChange = useCallback(
-        async (item: any, newItem: any) => {
-            const value = getChoiceValue(newItem || item);
-            if (value == null && filterValue) {
-                setFilterValue('');
-            }
+    const handleChange = useCallback(async (item: any, newItem: any) => {
+        const value = getChoiceValue(newItem || item);
+        if (value == null && filterValue) {
+            setFilterValue('');
+        }
 
-            input.onChange(value);
-        },
-        [filterValue, getChoiceValue, input]
-    );
+        input.onChange(value);
+    }, [filterValue, getChoiceValue, input]);
 
     const {
         getCreateItem,
@@ -291,19 +288,18 @@ export const AutocompleteInput = (props: AutocompleteInputProps) => {
         optionText,
     });
 
-    const handleFilterChange = useCallback(
-        (eventOrValue: React.ChangeEvent<{ value: string }> | string) => {
-            const event = eventOrValue as React.ChangeEvent<{ value: string }>;
-            const value = event.target
-                ? event.target.value
-                : (eventOrValue as string);
+    const handleFilterChange = useCallback((
+        eventOrValue: React.ChangeEvent<{ value: string }> | string
+    ) => {
+        const event = eventOrValue as React.ChangeEvent<{ value: string }>;
+        const value = event.target
+            ? event.target.value
+            : (eventOrValue as string);
 
-            if (setFilter) {
-                setFilter(value);
-            }
-        },
-        [setFilter]
-    );
+        if (setFilter) {
+            setFilter(value);
+        }
+    }, [setFilter]);
 
     // We must reset the filter every time the value changes to ensure we
     // display at least some choices even if the input has a value.
@@ -367,23 +363,20 @@ export const AutocompleteInput = (props: AutocompleteInputProps) => {
         updateAnchorEl();
     };
 
-    const handleBlur = useCallback(
-        event => {
-            handleFilterChange('');
-
-            // If we had a value before, set the filter back to its text so that
-            // Downshift displays it correctly
-            setFilterValue(
-                input.value
-                    ? inputText
-                        ? inputText(getChoiceText(selectedItem).props.record)
-                        : getChoiceText(selectedItem)
-                    : ''
-            );
-            input.onBlur(event);
-        },
-        [getChoiceText, handleFilterChange, input, inputText, selectedItem]
-    );
+    const handleBlur = useCallback(event => {
+        handleFilterChange('');
+
+        // If we had a value before, set the filter back to its text so that
+        // Downshift displays it correctly
+        setFilterValue(
+            input.value
+                ? inputText
+                    ? inputText(getChoiceText(selectedItem).props.record)
+                    : getChoiceText(selectedItem)
+                : ''
+        );
+        input.onBlur(event);
+    }, [getChoiceText, handleFilterChange, input, inputText, selectedItem]);
 
     const handleFocus = useCallback(
         openMenu => event => {
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/BooleanInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/BooleanInput.tsx
index 003bf1e..8fa539f 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/BooleanInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/BooleanInput.tsx
@@ -46,12 +46,9 @@ const BooleanInput = (props: BooleanInputProps) => {
         ...rest,
     });
 
-    const handleChange = useCallback(
-        (event, value) => {
-            finalFormOnChange(value);
-        },
-        [finalFormOnChange]
-    );
+    const handleChange = useCallback((event, value) => {
+        finalFormOnChange(value);
+    }, [finalFormOnChange]);
 
     return (
         <FormGroup {...sanitizeInputRestProps(rest)}>
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/CheckboxGroupInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/CheckboxGroupInput.tsx
index 885329b..0fd98a6 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/CheckboxGroupInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/CheckboxGroupInput.tsx
@@ -137,25 +137,22 @@ const CheckboxGroupInput: FunctionComponent<
         ...rest,
     });
 
-    const handleCheck = useCallback(
-        (event, isChecked) => {
-            let newValue;
-            try {
-                // try to convert string value to number, e.g. '123'
-                newValue = JSON.parse(event.target.value);
-            } catch (e) {
-                // impossible to convert value, e.g. 'abc'
-                newValue = event.target.value;
-            }
-            if (isChecked) {
-                finalFormOnChange([...(value || []), ...[newValue]]);
-            } else {
-                finalFormOnChange(value.filter(v => v != newValue)); // eslint-disable-line eqeqeq
-            }
-            finalFormOnBlur(); // HACK: See https://github.com/final-form/react-final-form/issues/365#issuecomment-515045503
-        },
-        [finalFormOnChange, finalFormOnBlur, value]
-    );
+    const handleCheck = useCallback((event, isChecked) => {
+        let newValue;
+        try {
+            // try to convert string value to number, e.g. '123'
+            newValue = JSON.parse(event.target.value);
+        } catch (e) {
+            // impossible to convert value, e.g. 'abc'
+            newValue = event.target.value;
+        }
+        if (isChecked) {
+            finalFormOnChange([...(value || []), ...[newValue]]);
+        } else {
+            finalFormOnChange(value.filter(v => v != newValue)); // eslint-disable-line eqeqeq
+        }
+        finalFormOnBlur(); // HACK: See https://github.com/final-form/react-final-form/issues/365#issuecomment-515045503
+    }, [finalFormOnChange, finalFormOnBlur, value]);
 
     if (loading) {
         return (
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/ResettableTextField.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/ResettableTextField.tsx
index ec00bb1..a365101 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/ResettableTextField.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/ResettableTextField.tsx
@@ -34,27 +34,18 @@ const ResettableTextField = (props: ResettableTextFieldProps) => {
     const translate = useTranslate();
 
     const { onChange, onFocus, onBlur } = props;
-    const handleClickClearButton = useCallback(
-        event => {
-            event.preventDefault();
-            onChange('');
-        },
-        [onChange]
-    );
-
-    const handleFocus = useCallback(
-        event => {
-            onFocus && onFocus(event);
-        },
-        [onFocus]
-    );
-
-    const handleBlur = useCallback(
-        event => {
-            onBlur && onBlur(event);
-        },
-        [onBlur]
-    );
+    const handleClickClearButton = useCallback(event => {
+        event.preventDefault();
+        onChange('');
+    }, [onChange]);
+
+    const handleFocus = useCallback(event => {
+        onFocus && onFocus(event);
+    }, [onFocus]);
+
+    const handleBlur = useCallback(event => {
+        onBlur && onBlur(event);
+    }, [onBlur]);
 
     const {
         clearButton,
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/SelectArrayInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/SelectArrayInput.tsx
index 1eafedf..5b03056 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/SelectArrayInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/SelectArrayInput.tsx
@@ -144,16 +144,13 @@ const SelectArrayInput = (props: SelectArrayInputProps) => {
         ...rest,
     });
 
-    const handleChange = useCallback(
-        (event, newItem) => {
-            if (newItem) {
-                input.onChange([...input.value, getChoiceValue(newItem)]);
-                return;
-            }
-            input.onChange(event);
-        },
-        [input, getChoiceValue]
-    );
+    const handleChange = useCallback((event, newItem) => {
+        if (newItem) {
+            input.onChange([...input.value, getChoiceValue(newItem)]);
+            return;
+        }
+        input.onChange(event);
+    }, [input, getChoiceValue]);
 
     const {
         getCreateItem,
@@ -177,22 +174,19 @@ const SelectArrayInput = (props: SelectArrayInputProps) => {
         [getChoiceText]
     );
 
-    const renderMenuItem = useCallback(
-        choice => {
-            return choice ? (
-                <MenuItem
-                    key={getChoiceValue(choice)}
-                    value={getChoiceValue(choice)}
-                    disabled={getDisableValue(choice)}
-                >
-                    {!!createItem && choice?.id === createItem.id
-                        ? createItem.name
-                        : renderMenuItemOption(choice)}
-                </MenuItem>
-            ) : null;
-        },
-        [getChoiceValue, getDisableValue, renderMenuItemOption, createItem]
-    );
+    const renderMenuItem = useCallback(choice => {
+        return choice ? (
+            <MenuItem
+                key={getChoiceValue(choice)}
+                value={getChoiceValue(choice)}
+                disabled={getDisableValue(choice)}
+            >
+                {!!createItem && choice?.id === createItem.id
+                    ? createItem.name
+                    : renderMenuItemOption(choice)}
+            </MenuItem>
+        ) : null;
+    }, [getChoiceValue, getDisableValue, renderMenuItemOption, createItem]);
 
     if (loading) {
         return (
diff --git ORI/react-admin/packages/ra-ui-materialui/src/input/SelectInput.tsx ALT/react-admin/packages/ra-ui-materialui/src/input/SelectInput.tsx
index 86b12e9..1e50aef 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/input/SelectInput.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/input/SelectInput.tsx
@@ -177,18 +177,18 @@ export const SelectInput = (props: SelectInputProps) => {
         [getChoiceText]
     );
 
-    const handleChange = useCallback(
-        async (event: React.ChangeEvent<HTMLSelectElement>, newItem) => {
-            if (newItem) {
-                const value = getChoiceValue(newItem);
-                input.onChange(value);
-                return;
-            }
+    const handleChange = useCallback(async (
+        event: React.ChangeEvent<HTMLSelectElement>,
+        newItem
+    ) => {
+        if (newItem) {
+            const value = getChoiceValue(newItem);
+            input.onChange(value);
+            return;
+        }
 
-            input.onChange(event);
-        },
-        [input, getChoiceValue]
-    );
+        input.onChange(event);
+    }, [input, getChoiceValue]);
 
     const {
         getCreateItem,
diff --git ORI/react-admin/packages/ra-ui-materialui/src/layout/Confirm.tsx ALT/react-admin/packages/ra-ui-materialui/src/layout/Confirm.tsx
index c5e0caa..6dd1c24 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/layout/Confirm.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/layout/Confirm.tsx
@@ -71,13 +71,10 @@ const Confirm = (props: ConfirmProps) => {
     const classes = useStyles(props);
     const translate = useTranslate();
 
-    const handleConfirm = useCallback(
-        e => {
-            e.stopPropagation();
-            onConfirm(e);
-        },
-        [onConfirm]
-    );
+    const handleConfirm = useCallback(e => {
+        e.stopPropagation();
+        onConfirm(e);
+    }, [onConfirm]);
 
     const handleClick = useCallback(e => {
         e.stopPropagation();
diff --git ORI/react-admin/packages/ra-ui-materialui/src/layout/MenuItemLink.tsx ALT/react-admin/packages/ra-ui-materialui/src/layout/MenuItemLink.tsx
index 0f56085..1275602 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/layout/MenuItemLink.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/layout/MenuItemLink.tsx
@@ -103,15 +103,12 @@ const MenuItemLink = forwardRef((props: MenuItemLinkProps, ref) => {
     const dispatch = useDispatch();
     const isSmall = useMediaQuery<Theme>(theme => theme.breakpoints.down('sm'));
     const open = useSelector((state: ReduxState) => state.admin.ui.sidebarOpen);
-    const handleMenuTap = useCallback(
-        e => {
-            if (isSmall) {
-                dispatch(setSidebarVisibility(false));
-            }
-            onClick && onClick(e);
-        },
-        [dispatch, isSmall, onClick]
-    );
+    const handleMenuTap = useCallback(e => {
+        if (isSmall) {
+            dispatch(setSidebarVisibility(false));
+        }
+        onClick && onClick(e);
+    }, [dispatch, isSmall, onClick]);
 
     const renderMenuItem = () => {
         return (
diff --git ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/Datagrid.tsx ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/Datagrid.tsx
index f51b9c6..54ec59b 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/Datagrid.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/Datagrid.tsx
@@ -152,35 +152,32 @@ const Datagrid: FC<DatagridProps> = React.forwardRef((props, ref) => {
         }
     }, [JSON.stringify(selectedIds)]); // eslint-disable-line react-hooks/exhaustive-deps
 
-    const handleToggleItem = useCallback(
-        (id, event) => {
-            const lastSelectedIndex = ids.indexOf(lastSelected.current);
-            lastSelected.current = event.target.checked ? id : null;
+    const handleToggleItem = useCallback((id, event) => {
+        const lastSelectedIndex = ids.indexOf(lastSelected.current);
+        lastSelected.current = event.target.checked ? id : null;
 
-            if (event.shiftKey && lastSelectedIndex !== -1) {
-                const index = ids.indexOf(id);
-                const idsBetweenSelections = ids.slice(
-                    Math.min(lastSelectedIndex, index),
-                    Math.max(lastSelectedIndex, index) + 1
-                );
+        if (event.shiftKey && lastSelectedIndex !== -1) {
+            const index = ids.indexOf(id);
+            const idsBetweenSelections = ids.slice(
+                Math.min(lastSelectedIndex, index),
+                Math.max(lastSelectedIndex, index) + 1
+            );
 
-                const newSelectedIds = event.target.checked
-                    ? union(selectedIds, idsBetweenSelections)
-                    : difference(selectedIds, idsBetweenSelections);
+            const newSelectedIds = event.target.checked
+                ? union(selectedIds, idsBetweenSelections)
+                : difference(selectedIds, idsBetweenSelections);
 
-                onSelect(
-                    isRowSelectable
-                        ? newSelectedIds.filter((id: Identifier) =>
-                              isRowSelectable(data[id])
-                          )
-                        : newSelectedIds
-                );
-            } else {
-                onToggleItem(id);
-            }
-        },
-        [data, ids, isRowSelectable, onSelect, onToggleItem, selectedIds]
-    );
+            onSelect(
+                isRowSelectable
+                    ? newSelectedIds.filter((id: Identifier) =>
+                          isRowSelectable(data[id])
+                      )
+                    : newSelectedIds
+            );
+        } else {
+            onToggleItem(id);
+        }
+    }, [data, ids, isRowSelectable, onSelect, onToggleItem, selectedIds]);
 
     /**
      * if loaded is false, the list displays for the first time, and the dataProvider hasn't answered yet
diff --git ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridHeader.tsx ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridHeader.tsx
index ee72cf1..94867b6 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridHeader.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridHeader.tsx
@@ -36,41 +36,33 @@ export const DatagridHeader = (props: DatagridHeaderProps) => {
     const { currentSort, data, ids, onSelect, selectedIds, setSort } =
         useListContext(props);
 
-    const updateSortCallback = useCallback(
-        event => {
-            event.stopPropagation();
-            const newField = event.currentTarget.dataset.field;
-            const newOrder =
-                currentSort.field === newField
-                    ? currentSort.order === 'ASC'
-                        ? 'DESC'
-                        : 'ASC'
-                    : event.currentTarget.dataset.order;
+    const updateSortCallback = useCallback(event => {
+        event.stopPropagation();
+        const newField = event.currentTarget.dataset.field;
+        const newOrder =
+            currentSort.field === newField
+                ? currentSort.order === 'ASC'
+                    ? 'DESC'
+                    : 'ASC'
+                : event.currentTarget.dataset.order;
 
-            setSort(newField, newOrder);
-        },
-        [currentSort.field, currentSort.order, setSort]
-    );
+        setSort(newField, newOrder);
+    }, [currentSort.field, currentSort.order, setSort]);
 
     const updateSort = setSort ? updateSortCallback : null;
 
-    const handleSelectAll = useCallback(
-        event => {
-            if (event.target.checked) {
-                const all = ids.concat(
-                    selectedIds.filter(id => !ids.includes(id))
-                );
-                onSelect(
-                    isRowSelectable
-                        ? all.filter(id => isRowSelectable(data[id]))
-                        : all
-                );
-            } else {
-                onSelect([]);
-            }
-        },
-        [data, ids, onSelect, isRowSelectable, selectedIds]
-    );
+    const handleSelectAll = useCallback(event => {
+        if (event.target.checked) {
+            const all = ids.concat(selectedIds.filter(id => !ids.includes(id)));
+            onSelect(
+                isRowSelectable
+                    ? all.filter(id => isRowSelectable(data[id]))
+                    : all
+            );
+        } else {
+            onSelect([]);
+        }
+    }, [data, ids, onSelect, isRowSelectable, selectedIds]);
 
     const selectableIds = isRowSelectable
         ? ids.filter(id => isRowSelectable(data[id]))
diff --git ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridRow.tsx ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridRow.tsx
index b91e267..607139b 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridRow.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/list/datagrid/DatagridRow.tsx
@@ -95,61 +95,52 @@ const DatagridRow: FC<DatagridRowProps> = React.forwardRef((props, ref) => {
 
     const history = useHistory();
 
-    const handleToggleExpand = useCallback(
-        event => {
-            toggleExpanded();
-            event.stopPropagation();
-        },
-        [toggleExpanded]
-    );
-    const handleToggleSelection = useCallback(
-        event => {
-            if (!selectable) return;
-            onToggleItem(id, event);
-            event.stopPropagation();
-        },
-        [id, onToggleItem, selectable]
-    );
-    const handleClick = useCallback(
-        async event => {
-            if (!rowClick) return;
-            event.persist();
+    const handleToggleExpand = useCallback(event => {
+        toggleExpanded();
+        event.stopPropagation();
+    }, [toggleExpanded]);
+    const handleToggleSelection = useCallback(event => {
+        if (!selectable) return;
+        onToggleItem(id, event);
+        event.stopPropagation();
+    }, [id, onToggleItem, selectable]);
+    const handleClick = useCallback(async event => {
+        if (!rowClick) return;
+        event.persist();
 
-            const effect =
-                typeof rowClick === 'function'
-                    ? await rowClick(id, basePath || `/${resource}`, record)
-                    : rowClick;
-            switch (effect) {
-                case 'edit':
-                    history.push(linkToRecord(basePath || `/${resource}`, id));
-                    return;
-                case 'show':
-                    history.push(
-                        linkToRecord(basePath || `/${resource}`, id, 'show')
-                    );
-                    return;
-                case 'expand':
-                    handleToggleExpand(event);
-                    return;
-                case 'toggleSelection':
-                    handleToggleSelection(event);
-                    return;
-                default:
-                    if (effect) history.push(effect);
-                    return;
-            }
-        },
-        [
-            basePath,
-            history,
-            handleToggleExpand,
-            handleToggleSelection,
-            id,
-            record,
-            resource,
-            rowClick,
-        ]
-    );
+        const effect =
+            typeof rowClick === 'function'
+                ? await rowClick(id, basePath || `/${resource}`, record)
+                : rowClick;
+        switch (effect) {
+            case 'edit':
+                history.push(linkToRecord(basePath || `/${resource}`, id));
+                return;
+            case 'show':
+                history.push(
+                    linkToRecord(basePath || `/${resource}`, id, 'show')
+                );
+                return;
+            case 'expand':
+                handleToggleExpand(event);
+                return;
+            case 'toggleSelection':
+                handleToggleSelection(event);
+                return;
+            default:
+                if (effect) history.push(effect);
+                return;
+        }
+    }, [
+        basePath,
+        history,
+        handleToggleExpand,
+        handleToggleSelection,
+        id,
+        record,
+        resource,
+        rowClick,
+    ]);
 
     return (
         <RecordContextProvider value={record}>
diff --git ORI/react-admin/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx ALT/react-admin/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx
index 336fc13..083c125 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx
@@ -53,27 +53,21 @@ const FilterButton = (props: FilterButtonProps): JSX.Element => {
                 'undefined'
     );
 
-    const handleClickButton = useCallback(
-        event => {
-            // This prevents ghost click.
-            event.preventDefault();
-            setOpen(true);
-            anchorEl.current = event.currentTarget;
-        },
-        [anchorEl, setOpen]
-    );
+    const handleClickButton = useCallback(event => {
+        // This prevents ghost click.
+        event.preventDefault();
+        setOpen(true);
+        anchorEl.current = event.currentTarget;
+    }, [anchorEl, setOpen]);
 
     const handleRequestClose = useCallback(() => {
         setOpen(false);
     }, [setOpen]);
 
-    const handleShow = useCallback(
-        ({ source, defaultValue }) => {
-            showFilter(source, defaultValue);
-            setOpen(false);
-        },
-        [showFilter, setOpen]
-    );
+    const handleShow = useCallback(({ source, defaultValue }) => {
+        showFilter(source, defaultValue);
+        setOpen(false);
+    }, [showFilter, setOpen]);
 
     if (hiddenFilters.length === 0) return null;
     return (
diff --git ORI/react-admin/packages/ra-ui-materialui/src/list/pagination/Pagination.tsx ALT/react-admin/packages/ra-ui-materialui/src/list/pagination/Pagination.tsx
index 0402827..f2d6ee0 100644
--- ORI/react-admin/packages/ra-ui-materialui/src/list/pagination/Pagination.tsx
+++ ALT/react-admin/packages/ra-ui-materialui/src/list/pagination/Pagination.tsx
@@ -36,27 +36,21 @@ const Pagination = (props: PaginationProps) => {
     /**
      * Warning: material-ui's page is 0-based
      */
-    const handlePageChange = useCallback(
-        (event, page) => {
-            event && event.stopPropagation();
-            if (page < 0 || page > totalPages - 1) {
-                throw new Error(
-                    translate('ra.navigation.page_out_of_boundaries', {
-                        page: page + 1,
-                    })
-                );
-            }
-            setPage(page + 1);
-        },
-        [totalPages, setPage, translate]
-    );
+    const handlePageChange = useCallback((event, page) => {
+        event && event.stopPropagation();
+        if (page < 0 || page > totalPages - 1) {
+            throw new Error(
+                translate('ra.navigation.page_out_of_boundaries', {
+                    page: page + 1,
+                })
+            );
+        }
+        setPage(page + 1);
+    }, [totalPages, setPage, translate]);
 
-    const handlePerPageChange = useCallback(
-        event => {
-            setPerPage(event.target.value);
-        },
-        [setPerPage]
-    );
+    const handlePerPageChange = useCallback(event => {
+        setPerPage(event.target.value);
+    }, [setPerPage]);
 
     const labelDisplayedRows = useCallback(
         ({ from, to, count }) =>

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: typescript-eslint/typescript-eslint@833f822

The diff is empty.

@github-actions
Copy link
Contributor

prettier/prettier#11947 VS prettier/prettier@main :: vega/vega-lite@675653d

The diff is empty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant