From 7b4536cb2f94e46d484651680b1bbafb069e6c48 Mon Sep 17 00:00:00 2001 From: Josh Hunt Date: Tue, 19 Sep 2023 14:34:13 +0000 Subject: [PATCH] Chore: Remove memoize-one from grafana-ui (#75016) --- packages/grafana-ui/package.json | 1 - packages/grafana-ui/src/components/Cascader/Cascader.tsx | 4 ++-- packages/grafana-ui/src/components/Table/utils.ts | 4 ++-- packages/grafana-ui/src/themes/ThemeContext.tsx | 5 ++++- packages/grafana-ui/src/themes/stylesFactory.ts | 4 ++-- yarn.lock | 1 - 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/grafana-ui/package.json b/packages/grafana-ui/package.json index 84156700c0c..812636b6bf6 100644 --- a/packages/grafana-ui/package.json +++ b/packages/grafana-ui/package.json @@ -76,7 +76,6 @@ "is-hotkey": "0.2.0", "jquery": "3.7.0", "lodash": "4.17.21", - "memoize-one": "6.0.0", "micro-memoize": "^4.1.2", "moment": "2.29.4", "monaco-editor": "0.34.0", diff --git a/packages/grafana-ui/src/components/Cascader/Cascader.tsx b/packages/grafana-ui/src/components/Cascader/Cascader.tsx index 9e89a7da52b..27c8f03f176 100644 --- a/packages/grafana-ui/src/components/Cascader/Cascader.tsx +++ b/packages/grafana-ui/src/components/Cascader/Cascader.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import memoizeOne from 'memoize-one'; +import memoize from 'micro-memoize'; import RCCascader from 'rc-cascader'; import React, { PureComponent } from 'react'; @@ -106,7 +106,7 @@ export class Cascader extends PureComponent { return selectOptions; }; - getSearchableOptions = memoizeOne((options: CascaderOption[]) => this.flattenOptions(options)); + getSearchableOptions = memoize((options: CascaderOption[]) => this.flattenOptions(options)); setInitialValue(searchableOptions: Array>, initValue?: string) { if (!initValue) { diff --git a/packages/grafana-ui/src/components/Table/utils.ts b/packages/grafana-ui/src/components/Table/utils.ts index 77be02f4521..7dd1f7cf58f 100644 --- a/packages/grafana-ui/src/components/Table/utils.ts +++ b/packages/grafana-ui/src/components/Table/utils.ts @@ -1,6 +1,6 @@ import { Property } from 'csstype'; import { clone } from 'lodash'; -import memoizeOne from 'memoize-one'; +import memoize from 'micro-memoize'; import { Row } from 'react-table'; import { @@ -137,7 +137,7 @@ export function getColumns( sortType: selectSortType(field.type), width: fieldTableOptions.width, minWidth: fieldTableOptions.minWidth ?? columnMinWidth, - filter: memoizeOne(filterByValue(field)), + filter: memoize(filterByValue(field)), justifyContent: getTextAlign(field), Footer: getFooterValue(fieldIndex, footerValues, isCountRowsSet), }); diff --git a/packages/grafana-ui/src/themes/ThemeContext.tsx b/packages/grafana-ui/src/themes/ThemeContext.tsx index 3c9b4da1f2a..7c1f532b9f3 100644 --- a/packages/grafana-ui/src/themes/ThemeContext.tsx +++ b/packages/grafana-ui/src/themes/ThemeContext.tsx @@ -106,14 +106,17 @@ export function useStyles(getStyles: (theme: GrafanaTheme) => T) { * Prefer using primitive values (boolean, number, string, etc) for * additional arguments for better performance * + * ``` * const getStyles = (theme, isDisabled, isOdd) => {css(...)} * [...] * const styles = useStyles2(getStyles, true, Boolean(index % 2)) + * ``` * * NOTE: For memoization to work, ensure that all arguments don't change * across renders (or only change if they need to) + * + * @public * */ -/** @public */ export function useStyles2( getStyles: (theme: GrafanaTheme2, ...args: T) => CSSReturnValue, ...additionalArguments: T diff --git a/packages/grafana-ui/src/themes/stylesFactory.ts b/packages/grafana-ui/src/themes/stylesFactory.ts index 4925d33f16a..8fe69e5cb70 100644 --- a/packages/grafana-ui/src/themes/stylesFactory.ts +++ b/packages/grafana-ui/src/themes/stylesFactory.ts @@ -1,4 +1,4 @@ -import memoizeOne from 'memoize-one'; +import memoize from 'micro-memoize'; /** * @public @@ -9,5 +9,5 @@ import memoizeOne from 'memoize-one'; export function stylesFactory ReturnType>( stylesCreator: ResultFn ) { - return memoizeOne(stylesCreator); + return memoize(stylesCreator); } diff --git a/yarn.lock b/yarn.lock index 9d7883a41e3..29f29caffea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4150,7 +4150,6 @@ __metadata: is-hotkey: 0.2.0 jquery: 3.7.0 lodash: 4.17.21 - memoize-one: 6.0.0 micro-memoize: ^4.1.2 mock-raf: 1.0.1 moment: 2.29.4