Skip to content

Conversation

@pwltr
Copy link
Collaborator

@pwltr pwltr commented Jul 19, 2024

Description

The Home screen and several components lower in the tree were rerendering way too many times because of bad selectors. Reselect's createSelector is not doing its job correctly so I'm adding a custom createShallowEqualSelector that does correct shallow equality checking needed for some larger selectors. Also we should not memoize selectors with createSelector by default. Should be assessed case by case whether it's needed. For most simple value lookups it is not needed.

Linked Issues/Tasks

#2052

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring (improving code without creating new functionality)

Tests

  • Detox test
  • Unit test
  • No test

QA Notes

Make sure components still rerender when they should.

@socket-security
Copy link

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@babel/plugin-syntax-bigint@7.8.3 None 0 2.42 kB nicolo-ribaudo
npm/@bleskomat/form@1.2.6 None 0 17.7 kB chill1
npm/@eslint/eslintrc@2.1.4 filesystem, unsafe 0 659 kB eslintbot
npm/@eslint/js@8.57.0 None 0 13.9 kB eslintbot
npm/@flatten-js/interval-tree@1.1.2 None 0 148 kB alexbol99
npm/@humanwhocodes/config-array@0.11.14 None 0 55.6 kB nzakas
npm/@humanwhocodes/module-importer@1.0.1 unsafe 0 21.2 kB nzakas
npm/@humanwhocodes/object-schema@2.0.3 None 0 23.3 kB nzakas
npm/@istanbuljs/load-nyc-config@1.1.0 environment, filesystem 0 10.9 kB coreyfarrell
npm/@jest/console@29.7.0 None 0 19 kB simenb
npm/@jest/core@29.7.0 unsafe 0 145 kB simenb
npm/@jest/expect-utils@29.5.0 None 0 28 kB simenb
npm/@jest/expect@29.7.0 None 0 5.23 kB simenb
npm/@jest/globals@29.7.0 None 0 5.26 kB simenb
npm/@jest/reporters@29.7.0 environment, unsafe 0 115 kB simenb
npm/@jest/source-map@29.6.3 None 0 5.07 kB simenb
npm/@jest/test-result@29.7.0 None 0 15.8 kB simenb
npm/@jest/test-sequencer@29.7.0 None 0 13.6 kB simenb
npm/@jest/transform@29.7.0 None 0 52.4 kB simenb
npm/@react-native/metro-config@0.74.85 None 0 6.55 kB react-native-bot
npm/@react-native/typescript-config@0.74.85 None 0 2 kB react-native-bot
npm/@reduxjs/toolkit@2.2.6 environment 0 5.48 MB phryneas
npm/@svgr/babel-plugin-add-jsx-attribute@8.0.0 None 0 13.5 kB neoziro
npm/@svgr/babel-plugin-remove-jsx-attribute@8.0.0 None 0 5.01 kB neoziro
npm/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0 None 0 3.71 kB neoziro
npm/@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0 None 0 7.04 kB neoziro
npm/@svgr/babel-plugin-svg-dynamic-title@8.0.0 None 0 13.8 kB neoziro
npm/@svgr/babel-plugin-svg-em-dimensions@8.0.0 None 0 7.99 kB neoziro
npm/@svgr/babel-plugin-transform-react-native-svg@8.1.0 None 0 13.2 kB neoziro
npm/@svgr/babel-plugin-transform-svg-component@8.0.0 None 0 32.8 kB neoziro
npm/@svgr/babel-preset@8.1.0 None 0 14.1 kB neoziro
npm/@svgr/core@8.1.0 None 0 24.8 kB neoziro
npm/@svgr/hast-util-to-babel-ast@8.0.0 None 0 73 kB neoziro
npm/@svgr/plugin-jsx@8.1.0 None 0 12.8 kB neoziro
npm/@svgr/plugin-svgo@8.1.0 None 0 8.72 kB neoziro
npm/@trysound/sax@0.2.0 None 0 48.8 kB trysound
npm/@types/b4a@1.6.4 None 0 8.93 kB types
npm/@types/babel__core@7.20.1 None 0 33.7 kB types
npm/@types/babel__generator@7.6.4 None 0 11.7 kB types
npm/@types/babel__template@7.4.1 None 0 6.93 kB types
npm/@types/babel__traverse@7.20.0 None 0 165 kB types
npm/@types/bip21@2.0.3 None 0 3.16 kB types
npm/@types/bn.js@4.11.6 None 0 13.9 kB types
npm/@types/graceful-fs@4.1.6 None 0 4.52 kB types
npm/@types/hoist-non-react-statics@3.3.1 None 0 4.74 kB types
npm/@types/jest@29.5.12 None 0 78.7 kB types
npm/@types/lodash@4.17.0 None 0 862 kB types
npm/@types/mime@3.0.4 None 0 3.25 kB types
npm/@types/prop-types@15.7.5 None 0 6.54 kB types
npm/@types/react-native-dotenv@0.2.2 None 0 2.8 kB types
npm/@types/react-native@0.70.14 None 0 392 kB types
npm/@types/react@18.3.3 None 0 437 kB types
npm/@types/redux-logger@3.0.13 None 0 6.89 kB types
npm/@types/styled-components-react-native@5.2.5 None 0 8.97 kB types
npm/@types/styled-components@5.1.26 None 0 23.5 kB types
npm/@types/url-parse@1.4.11 None 0 5.74 kB types
npm/@types/uuid@9.0.8 None 0 6.74 kB types
npm/@ungap/structured-clone@1.2.0 None 0 26.2 kB webreflection
npm/acorn-jsx@5.3.2 None 0 24.4 kB rreverser
npm/ansi-escapes@4.3.2 None 0 16.4 kB sindresorhus
npm/array-buffer-byte-length@1.0.0 None 0 8.05 kB ljharb
npm/array-flatten@1.1.1 None 0 4.42 kB blakeembrey
npm/array-union@2.1.0 None 0 3.17 kB sindresorhus
npm/array.prototype.flat@1.3.2 None 0 18.7 kB ljharb
npm/arraybuffer.prototype.slice@1.0.2 None 0 19.4 kB ljharb
npm/async@3.2.4 None 0 821 kB hargasinski
npm/babel-jest@29.7.0 environment 0 13.5 kB simenb
npm/babel-plugin-istanbul@6.1.1 environment, filesystem, shell 0 25.7 kB oss-bot
npm/babel-plugin-jest-hoist@29.6.3 None 0 14.3 kB simenb
npm/babel-plugin-transform-remove-console@6.9.4 None 0 3.66 kB boopathi
npm/babel-preset-current-node-syntax@1.0.1 eval 0 5.46 kB nicolo-ribaudo
npm/babel-preset-jest@29.6.3 None 0 2.69 kB simenb
npm/bignumber.js@9.0.2 None 0 349 kB mikemcl
npm/bitcoin-json-rpc@1.3.3 None 0 74.1 kB abrkn
npm/bluebird@3.7.2 environment, eval, unsafe 0 632 kB esailija
npm/body-parser@1.20.0 network 0 60.2 kB dougwilson
npm/bolt11@1.3.4 None 0 48 kB junderw
npm/browser-process-hrtime@1.0.0 None 0 3.52 kB kumavis
npm/btoa@1.2.1 None 0 32 kB coolaj86
npm/bunyamin@1.5.1 environment 0 362 kB yaroslavs
npm/bunyan-debug-stream@3.1.0 None 0 63.5 kB jwalton
npm/bunyan@1.8.15 environment, filesystem 0 201 kB trentm
npm/caf@15.0.1 None 0 134 kB getify
npm/char-regex@1.0.2 None 0 4.96 kB richienb
npm/child-process-promise@2.2.1 shell 0 21.4 kB pnidem
npm/cjs-module-lexer@1.2.2 None 0 138 kB guybedford
npm/co@4.6.0 None 0 16 kB jongleberry
npm/collect-v8-coverage@1.0.1 unsafe 0 4.14 kB simenb
npm/content-disposition@0.5.4 None 0 19.1 kB dougwilson
npm/content-type@1.0.5 None 0 10.5 kB dougwilson
npm/cookie-signature@1.0.6 None 0 3.94 kB natevw
npm/cookie@0.5.0 None 0 23.1 kB dougwilson
npm/create-jest@29.7.0 None 0 15.9 kB simenb
npm/csso@5.0.5 unsafe 0 606 kB lahmatiy
npm/csstype@3.1.2 None 0 1.22 MB faddee
npm/decamelize@4.0.0 None 0 4 kB sindresorhus
npm/dedent@1.5.1 None 0 13.9 kB joshuakgoldberg
npm/deep-is@0.1.4 None 0 8.11 kB thlorenz
npm/define-data-property@1.1.1 None 0 29.2 kB ljharb
npm/delay@5.0.0 None 0 11.2 kB sindresorhus
npm/detect-newline@3.1.0 None 0 3.77 kB sindresorhus
npm/detox@20.20.2 environment, eval, filesystem, network, shell, unsafe 0 8.05 MB wix.mobile
npm/diff-sequences@29.4.3 None 0 46 kB simenb
npm/dir-glob@3.0.1 None 0 5.42 kB sindresorhus
npm/dot-case@3.0.4 None 0 10.5 kB blakeembrey
npm/dtrace-provider@0.8.8 environment 0 88.3 kB melloc
npm/duplexer@0.1.2 None 0 5.47 kB raynos
npm/duplexer2@0.1.4 None 0 6.4 kB zertosh
npm/easy-stack@1.0.1 None 0 13.1 kB riaevangelist
npm/ejs@3.1.9 eval, filesystem 0 142 kB mde
npm/emittery@0.13.1 None 0 46.5 kB sindresorhus
npm/es-to-primitive@1.2.1 None 0 40.4 kB ljharb
npm/eslint@8.57.0 environment, filesystem 0 3.04 MB eslintbot
npm/espree@9.6.1 None 0 73.6 kB eslintbot
npm/esquery@1.5.0 None 0 1 MB michaelficarra
npm/esrecurse@4.3.0 None 0 13.5 kB michaelficarra
npm/event-pubsub@4.3.0 None 0 21.8 kB riaevangelist
npm/exit@0.1.2 None 0 59.8 kB cowboy
npm/expect@29.5.0 None 0 146 kB simenb
npm/express-handlebars@6.0.3 None 0 137 kB tonybrix
npm/express@4.18.1 environment, filesystem, network 0 214 kB dougwilson
npm/fast-json-stable-stringify@2.1.0 None 0 17 kB esp
npm/fast-levenshtein@2.0.6 None 0 9.44 kB hiddentao
npm/file-entry-cache@6.0.1 filesystem 0 25.6 kB royriojas
npm/filelist@1.0.4 filesystem 0 18.6 kB mde
npm/flat-cache@3.2.0 filesystem 0 29.4 kB jaredwray
npm/flat@5.0.2 None 0 26.6 kB timoxley
npm/flatted@3.3.1 None 0 40.3 kB webreflection
npm/forwarded@0.2.0 None 0 5.88 kB dougwilson
npm/fp-ts@2.16.1 None 0 4.72 MB gcanti
npm/function.prototype.name@1.1.6 None 0 25.5 kB ljharb
npm/functions-have-names@1.2.3 None 0 16.7 kB ljharb
npm/funpermaproxy@1.1.0 None 0 17.8 kB yaroslavs
npm/get-package-type@0.1.0 filesystem 0 6.01 kB coreyfarrell
npm/get-symbol-description@1.0.0 None 0 10.3 kB ljharb
npm/gzip-size@6.0.0 filesystem 0 7.93 kB sindresorhus
npm/handlebars@4.7.8 filesystem 0 2.78 MB jaylinski
npm/has-bigints@1.0.2 None 0 12.8 kB ljharb
npm/hasown@2.0.0 None 0 10.8 kB ljharb
npm/husky@9.0.11 environment, filesystem, shell 0 3.61 kB typicode
npm/import-local@3.1.0 None 0 4.66 kB sindresorhus
npm/io-ts@2.2.20 None 0 461 kB gcanti
npm/ipaddr.js@1.9.1 None 0 42.1 kB whitequark
npm/is-array-buffer@3.0.2 None 0 11.9 kB ljharb
npm/is-async-function@2.0.0 eval 0 19.5 kB ljharb
npm/is-bigint@1.0.4 None 0 14.8 kB ljharb
npm/is-boolean-object@1.1.2 None 0 22.1 kB ljharb
npm/is-date-object@1.0.5 None 0 20.8 kB ljharb
npm/is-finalizationregistry@1.0.2 None 0 12.7 kB ljharb
npm/is-generator-fn@2.1.0 None 0 3.28 kB sindresorhus
npm/is-map@2.0.2 None 0 12.7 kB ljharb
npm/is-negative-zero@2.0.2 None 0 22 kB ljharb
npm/is-number-object@1.0.7 None 0 22.2 kB ljharb
npm/is-path-inside@3.0.3 None 0 4.12 kB sindresorhus
npm/is-plain-obj@2.1.0 None 0 3.69 kB sindresorhus
npm/is-regex@1.1.4 None 0 30.1 kB ljharb
npm/is-set@2.0.2 None 0 12.3 kB ljharb
npm/is-shared-array-buffer@1.0.2 None 0 11.9 kB ljharb
npm/is-symbol@1.0.4 None 0 22 kB ljharb
npm/is-weakmap@2.0.1 None 0 10.1 kB ljharb
npm/is-weakref@1.0.2 None 0 12.1 kB ljharb
npm/is-weakset@2.0.2 None 0 15.1 kB ljharb
npm/isarray@2.0.5 None 0 3.43 kB juliangruber
npm/istanbul-lib-instrument@5.2.1 None 0 70.2 kB oss-bot
npm/istanbul-lib-source-maps@4.0.1 filesystem 0 34.1 kB oss-bot
npm/jake@10.8.7 environment, filesystem, shell 0 175 kB mde
npm/jest-changed-files@29.7.0 environment 0 18.2 kB simenb
npm/jest-circus@29.7.0 unsafe 0 72 kB simenb
npm/jest-cli@29.7.0 None 0 33.8 kB simenb
npm/jest-config@29.7.0 None 0 114 kB simenb
npm/jest-diff@29.5.0 None 0 78.3 kB simenb
npm/jest-docblock@29.7.0 None 0 8.99 kB simenb
npm/jest-each@29.7.0 None 0 33.7 kB simenb
npm/jest-environment-emit@1.0.5 environment 0 96.8 kB yaroslavs
npm/jest-haste-map@29.7.0 environment, filesystem, shell, unsafe 0 121 kB simenb
npm/jest-leak-detector@29.7.0 unsafe 0 5.59 kB simenb
npm/jest-matcher-utils@29.5.0 None 0 28.2 kB simenb
npm/jest-pnp-resolver@1.2.3 None 0 5.68 kB arcanis
npm/jest-regex-util@29.6.3 None 0 3.52 kB simenb
npm/jest-resolve-dependencies@29.7.0 None 0 8.92 kB simenb
npm/jest-resolve@29.7.0 environment, unsafe 0 65.7 kB simenb
npm/jest-runner@29.7.0 environment 0 29.6 kB simenb
npm/jest-runtime@29.7.0 unsafe 0 89.2 kB simenb
npm/jest-snapshot@29.7.0 eval 0 83.5 kB simenb
npm/jest-watcher@29.7.0 None 0 23.4 kB simenb
npm/jest@29.7.0 None 0 5.01 kB simenb
npm/js-message@1.0.7 None 0 10.3 kB riaevangelist
npm/js-queue@2.0.2 None 0 13.3 kB riaevangelist
npm/json-buffer@3.0.1 None 0 5.4 kB dominictarr
npm/json-cycle@1.5.0 None 0 11.4 kB valery-barysok
npm/json-stable-stringify-without-jsonify@1.0.1 None 0 14.2 kB samn
npm/keyv@4.5.4 None 0 27.8 kB jaredwray
npm/levn@0.4.1 None 0 24.9 kB gkz
npm/lightning-backends@1.5.1 filesystem, network 0 82.7 kB chill1
npm/lnurl-offline@1.1.1 None 0 16.4 kB chill1
npm/lnurl@0.24.2 filesystem, network 0 110 kB chill1
npm/lower-case@2.0.2 None 0 17.7 kB blakeembrey
npm/media-typer@0.3.0 None 0 11.1 kB dougwilson
npm/merge-descriptors@1.0.1 None 0 4.89 kB dougwilson
npm/methods@1.1.2 network 0 5.29 kB dougwilson
npm/mitt@3.0.1 None 0 26.4 kB developit
npm/moment@2.29.4 None 0 4.23 MB ichernev
npm/multi-sort-stream@1.0.4 None 0 8.27 kB substack
npm/multipipe@4.0.0 None 0 6.89 kB juliangruber
npm/mv@2.1.1 filesystem 0 10.3 kB superjoe
npm/nano-staged@0.8.0 None 0 41.1 kB usmanyunusov
npm/ncp@2.0.0 filesystem 0 18 kB mmalecki
npm/no-case@3.0.4 None 0 25.1 kB blakeembrey
npm/node-ipc@9.2.1 filesystem, network 0 85.3 kB riaevangelist
npm/node-version@1.2.0 None 0 5 kB srod
npm/object-keys@1.1.1 None 0 26.5 kB ljharb
npm/object.assign@4.1.4 None 0 1.17 MB ljharb
npm/optionator@0.9.3 None 0 50.2 kB gkz
npm/path-dirname@1.0.2 None 0 6.26 kB es128
npm/path-to-regexp@0.1.7 None 0 6.78 kB blakeembrey
npm/path-type@4.0.0 filesystem 0 5.41 kB sindresorhus
npm/prelude-ls@1.2.1 None 0 36.7 kB gkz
npm/prettier@2.8.8 environment, filesystem, unsafe 0 11.2 MB prettier-bot
npm/promise-polyfill@6.1.0 None 0 27.6 kB taylorhakes
npm/proper-lockfile@3.2.0 None 0 24.7 kB hugomrdias
npm/proxy-addr@2.0.7 None 0 15.4 kB dougwilson
npm/pure-rand@6.0.2 None 0 70.7 kB ndubien

🚮 Removed packages: npm/@reduxjs/toolkit@2.2.3, npm/qs@6.11.1, npm/query-string@7.1.3, npm/querystring@0.2.1, npm/querystringify@2.2.0, npm/queue-microtask@1.2.3, npm/queue-tick@1.0.1, npm/queue@6.0.2, npm/random-access-storage@2.3.0, npm/random-access-web-storage@2.0.0, npm/randombytes@2.1.0, npm/range-parser@1.2.1, npm/react-devtools-core@5.1.0, npm/react-freeze@1.0.3, npm/react-i18next@14.1.0, npm/react-is@16.13.1, npm/react-native-address-generator@0.3.3, npm/react-native-animatable@1.3.3, npm/react-native-biometrics@3.0.1, npm/react-native-camera-kit@14.0.0-beta15, npm/react-native-device-info@11.1.0, npm/react-native-dotenv@3.4.11, npm/react-native-draggable-flatlist@4.0.1, npm/react-native-exit-app@2.0.0, npm/react-native-fetch-api@3.0.0, npm/react-native-fs@2.20.0, npm/react-native-gesture-handler@2.15.0, npm/react-native-haptic-feedback@2.2.0, npm/react-native-image-picker@7.1.2, npm/react-native-keyboard-accessory@0.1.16, npm/react-native-keychain@8.2.0, npm/react-native-localize@3.0.2, npm/react-native-mmkv@2.12.2, npm/react-native-modal@13.0.1, npm/react-native-permissions@3.10.1, npm/react-native-polyfill-globals@3.1.0, npm/react-native-qrcode-svg@6.3.0, npm/react-native-quick-actions@0.3.13, npm/react-native-quick-base64@2.1.2, npm/react-native-quick-crypto@0.7.1, npm/react-native-randombytes@3.6.1, npm/react-native-reanimated-carousel@3.5.1, npm/react-native-reanimated@3.9.0, npm/react-native-restart@0.0.27, npm/react-native-safe-area-context@4.10.1, npm/react-native-screens@3.31.1, npm/react-native-share@10.2.0, npm/react-native-svg@15.2.0, npm/react-native-tcp-socket@6.0.6, npm/react-native-toast-message@2.2.0, npm/react-native-zip-archive@6.1.0, npm/react-native@0.74.3, npm/react-reconciler@0.27.0, npm/react-redux@9.1.1, npm/react-refresh@0.14.0, npm/react-shallow-renderer@16.15.0, npm/react@18.3.1, npm/readable-stream@4.5.2, npm/readline@1.3.0, npm/recast@0.21.5, npm/redux-logger@3.0.6, npm/redux-persist@6.0.0, npm/redux-thunk@3.1.0, npm/redux@5.0.1, npm/regenerate-unicode-properties@10.1.0, npm/regenerate@1.4.2, npm/regenerator-runtime@0.14.0, npm/regenerator-transform@0.15.2, npm/regexpu-core@5.3.2, npm/regjsparser@0.9.1, npm/require-directory@2.1.1, npm/require-from-string@2.0.2, npm/requires-port@1.0.0, npm/reselect@5.0.1, npm/resolve-from@3.0.0, npm/resolve@1.22.2, npm/restore-cursor@3.1.0, npm/retry@0.12.0, npm/reusify@1.0.4, npm/rimraf@3.0.2, npm/ripemd160@2.0.2, npm/rn-android-keyboard-adjust@2.1.2, npm/rn-electrum-client@0.0.18, npm/rn-qr-generator@1.4.0, npm/rss-parser@3.13.0, npm/run-parallel-limit@1.1.0, npm/run-parallel@1.2.0, npm/safe-buffer@5.2.1, npm/safer-buffer@2.1.2, npm/same-object@1.0.2, npm/sax@1.2.4, npm/scheduler@0.21.0, npm/secp256k1@4.0.3, npm/selfsigned@2.4.1, npm/semver@7.6.0, npm/send@0.18.0, npm/serialize-error@2.1.0, npm/serve-static@1.15.0, npm/setprototypeof@1.2.0, npm/sha.js@2.4.11, npm/sha256-uint8array@0.10.5, npm/sha256-universal@1.2.1, npm/sha256-wasm@2.2.2, npm/sha512-universal@1.2.1, npm/sha512-wasm@2.3.4, npm/shallow-clone@3.0.1, npm/shallowequal@1.1.0, npm/shebang-command@2.0.0, npm/shebang-regex@3.0.0, npm/shell-quote@1.8.1, npm/side-channel@1.0.4, npm/signal-exit@4.1.0, npm/simple-swizzle@0.2.2, npm/siphash24@1.3.1, npm/sisteransi@1.0.5, npm/sjcl@1.0.8, npm/slash@3.0.0, npm/slice-ansi@2.1.0, npm/smart-buffer@4.2.0, npm/socks-proxy-agent@8.0.3, npm/socks@2.8.3, npm/sodium-javascript@0.8.0, npm/sodium-native@4.0.1, npm/sodium-react-native-direct@0.4.2, npm/sodium-universal@4.0.0, npm/source-map-support@0.5.21, npm/source-map@0.5.7, npm/split-on-first@1.1.0, npm/split2@4.2.0, npm/sprintf-js@1.1.3, npm/ssri@10.0.5, npm/stack-utils@2.0.6, npm/stackframe@1.3.4, npm/stacktrace-parser@0.1.10, npm/statuses@2.0.1, npm/stream-browserify@3.0.0, npm/strict-uri-encode@2.0.0, npm/string-natural-compare@3.0.1, npm/string-width-cjs@4.2.3, npm/string-width@5.1.2, npm/string.prototype.matchall@4.0.10, npm/string_decoder@1.3.0, npm/strip-ansi-cjs@6.0.1, npm/strip-ansi@6.0.1, npm/strip-final-newline@2.0.0, npm/strnum@1.0.5, npm/styled-components@5.3.11, npm/sudo-prompt@9.2.1, npm/supports-color@7.2.0, npm/supports-preserve-symlinks-flag@1.0.0, npm/tar@6.2.1, npm/tdigest@0.1.2, npm/temp-dir@2.0.0, npm/temp@0.8.4, npm/terser@5.17.6, npm/test-exclude@6.0.0, npm/text-extensions@2.4.0, npm/throat@5.0.0, npm/through2@2.0.5, npm/through@2.3.8, npm/tiny-secp256k1@1.1.6, npm/tmatch@5.0.0, npm/tmpl@1.0.5, npm/to-fast-properties@2.0.0, npm/to-regex-range@5.0.1, npm/toidentifier@1.0.1, npm/tr46@0.0.3, npm/ts-api-utils@1.3.0, npm/ts-protoc-gen@0.8.0, npm/tslib@2.5.0, npm/type-detect@4.0.8, npm/type-fest@0.7.1, npm/typeforce@1.18.0, npm/unicode-canonical-property-names-ecmascript@2.0.0, npm/unicode-match-property-ecmascript@2.0.0, npm/unicode-match-property-value-ecmascript@2.1.0, npm/unicode-property-aliases-ecmascript@2.1.0, npm/unique-filename@3.0.0, npm/unique-slug@4.0.0, npm/universalify@0.1.2, npm/unpipe@1.0.0, npm/update-browserslist-db@1.0.11, npm/uri-js@4.4.1, npm/url-parse@1.5.10, npm/use-latest-callback@0.2.1, npm/use-sync-external-store@1.2.0, npm/utf8@3.0.0, npm/util-deprecate@1.0.2, npm/util@0.12.5, npm/utils-merge@1.0.1, npm/uuid@9.0.1, npm/v8-to-istanbul@9.1.0, npm/varuint-bitcoin@1.1.2, npm/vary@1.1.2, npm/vlq@1.0.1, npm/void-elements@3.1.0, npm/walker@1.0.8, npm/warn-once@0.1.1, npm/wcwidth@1.0.1, npm/weak-lru-cache@1.2.2, npm/web-streams-polyfill@3.2.1, npm/webidl-conversions@3.0.1, npm/whatwg-fetch@3.6.2, npm/whatwg-url@5.0.0, npm/which-typed-array@1.1.15, npm/which@4.0.0, npm/wif@2.0.6, npm/wrap-ansi-cjs@7.0.0, npm/wrap-ansi@8.1.0, npm/write-file-atomic@2.4.3, npm/ws@7.5.9, npm/xml2js@0.5.0, npm/xmlbuilder@11.0.1, npm/xmlhttprequest@1.8.0, npm/xsalsa20@1.2.0, npm/xtend@4.0.2, npm/y18n@5.0.8, npm/yallist@4.0.0, npm/yaml@2.3.4, npm/yargs-parser@20.2.9, npm/yargs@16.2.0, npm/yocto-queue@0.1.0, npm/z32@1.0.0

View full report↗︎

@socket-security
Copy link

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Alert Package NoteSourceCI
Install scripts npm/detox@20.20.2
  • Install script: postinstall
  • Source: node scripts/postinstall.js
🚫

View full report↗︎

Next steps

What is an install script?

Install scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.

Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead.

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore npm/detox@20.20.2

dispatch(updateUi({ isOnline: true }));
updateExchangeRates();
// FIXME: this runs too often
// updateExchangeRates();
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be moved to another place. Not sure why but this fires even when connection status did not change.

@pwltr pwltr requested a review from limpbrains July 19, 2024 13:36
Copy link
Contributor

@limpbrains limpbrains left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is strange. Maybe it was because we are mutating state where we should not

@pwltr pwltr self-assigned this Jul 22, 2024
@pwltr
Copy link
Collaborator Author

pwltr commented Jul 22, 2024

This is strange. Maybe it was because we are mutating state where we should not

I think this is purely about selectors. Docs are not very clear but looks like createSelector too only does strict equality === for inputs and outputs. For getting non-primitive types from selectors we need to do shallow equality specifically.

@pwltr pwltr merged commit 4c9dac2 into master Jul 22, 2024
@pwltr pwltr deleted the selectors branch July 22, 2024 11:05
@catch-21
Copy link
Collaborator

Nothing to specifically test. See #2052 (comment)

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

Successfully merging this pull request may close these issues.

4 participants