From 0f97e8d9e9669e42233c0e344213739d280e8f50 Mon Sep 17 00:00:00 2001 From: Marin Atanasov <8436925+tyxla@users.noreply.github.com> Date: Wed, 22 Jun 2022 10:11:43 +0300 Subject: [PATCH] Lodash: Refactor away from _.uniqWith() (#41812) --- .eslintrc.js | 1 + .../components/media-placeholder/index.native.js | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 609311057cc45..611ac94827640 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -114,6 +114,7 @@ module.exports = { 'take', 'toString', 'trim', + 'uniqWith', ], message: 'This Lodash method is not recommended. Please use native functionality instead. If using `memoize`, please use `memize` instead.', diff --git a/packages/block-editor/src/components/media-placeholder/index.native.js b/packages/block-editor/src/components/media-placeholder/index.native.js index 4b83c1e314fde..25f6571fd80f3 100644 --- a/packages/block-editor/src/components/media-placeholder/index.native.js +++ b/packages/block-editor/src/components/media-placeholder/index.native.js @@ -2,7 +2,6 @@ * External dependencies */ import { View, Text, TouchableWithoutFeedback } from 'react-native'; -import { uniqWith } from 'lodash'; /** * WordPress dependencies @@ -23,12 +22,17 @@ import { Icon, plusCircleFilled } from '@wordpress/icons'; */ import styles from './styles.scss'; +const isMediaEqual = ( media1, media2 ) => + media1.id === media2.id || media1.url === media2.url; + // Remove duplicates after gallery append. const dedupMedia = ( media ) => - uniqWith( - media, - ( media1, media2 ) => - media1.id === media2.id || media1.url === media2.url + media.reduce( + ( dedupedMedia, mediaItem ) => + dedupedMedia.some( ( item ) => isMediaEqual( item, mediaItem ) ) + ? dedupedMedia + : [ ...dedupedMedia, mediaItem ], + [] ); function MediaPlaceholder( props ) {