From 4456cf37bbd0cd2f10d1a4866becd5f7365e6c82 Mon Sep 17 00:00:00 2001 From: Artem Neretin Date: Mon, 11 Apr 2022 18:16:51 +0700 Subject: [PATCH 1/3] feat(plasma-core): Add `useResizeObserver` hook --- packages/plasma-core/package-lock.json | 6 ++++ packages/plasma-core/package.json | 20 ++--------- packages/plasma-core/src/hooks/index.ts | 1 + .../src/hooks/useResizeObserver.ts | 34 +++++++++++++++++++ 4 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 packages/plasma-core/src/hooks/useResizeObserver.ts diff --git a/packages/plasma-core/package-lock.json b/packages/plasma-core/package-lock.json index 32df41e4e..e590d1f6f 100644 --- a/packages/plasma-core/package-lock.json +++ b/packages/plasma-core/package-lock.json @@ -4030,6 +4030,12 @@ "@types/react": "*" } }, + "@types/resize-observer-browser": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz", + "integrity": "sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg==", + "dev": true + }, "@types/styled-components": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.0.tgz", diff --git a/packages/plasma-core/package.json b/packages/plasma-core/package.json index 97ed1288d..60f395a47 100644 --- a/packages/plasma-core/package.json +++ b/packages/plasma-core/package.json @@ -7,18 +7,7 @@ "main": "index.js", "module": "es/index.js", "types": "index.d.ts", - "files": [ - "components", - "hocs", - "hooks", - "mixins", - "tokens", - "types", - "utils", - "index.d.ts", - "index.js", - "es" - ], + "files": ["components", "hocs", "hooks", "mixins", "tokens", "types", "utils", "index.d.ts", "index.js", "es"], "peerDependencies": { "react": ">=16.13.1", "react-dom": ">=16.13.1", @@ -36,6 +25,7 @@ "@types/node": "15.14.9", "@types/react": "16.9.38", "@types/react-dom": "16.9.8", + "@types/resize-observer-browser": "0.1.7", "@types/styled-components": "5.1.0", "babel-loader": "8.2.2", "babel-plugin-annotate-pure-calls": "0.4.0", @@ -63,11 +53,7 @@ "test": "NODE_ICU_DATA=node_modules/full-icu jest", "test:watch": "NODE_ICU_DATA=node_modules/full-icu jest --watch" }, - "contributors": [ - "Vasiliy Loginevskiy", - "Виноградов Антон Александрович", - "Зубаиров Фаниль Асхатович" - ], + "contributors": ["Vasiliy Loginevskiy", "Виноградов Антон Александрович", "Зубаиров Фаниль Асхатович"], "sideEffects": false, "dependencies": { "focus-visible": "5.2.0", diff --git a/packages/plasma-core/src/hooks/index.ts b/packages/plasma-core/src/hooks/index.ts index b1b739e4f..5190a6100 100644 --- a/packages/plasma-core/src/hooks/index.ts +++ b/packages/plasma-core/src/hooks/index.ts @@ -2,3 +2,4 @@ export { useDebouncedFunction } from './useDebouncedFunction'; export { useForkRef } from './useForkRef'; export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; export { useUniqId } from './useUniqId'; +export { useResizeObserver } from './useResizeObserver'; diff --git a/packages/plasma-core/src/hooks/useResizeObserver.ts b/packages/plasma-core/src/hooks/useResizeObserver.ts new file mode 100644 index 000000000..2ec0f83c8 --- /dev/null +++ b/packages/plasma-core/src/hooks/useResizeObserver.ts @@ -0,0 +1,34 @@ +import { useEffect } from 'react'; + +/** + * Отслеживает изменение размеров переданного элемента + * @param {React.Ref} ref - реф элемента, за которым нужно следить + * @callback callback - функция, которая вызывается при изменении элемента + * @param {Element} element - элемент, размер которого изменился + */ +export const useResizeObserver = ( + ref: React.MutableRefObject, + callback: (element: T) => void, +) => { + useEffect(() => { + /* istanbul ignore if: убираем проверку на рефы из покрытия */ + if (!ref?.current) { + return; + } + + const { current } = ref; + + const resizeObserver = new window.ResizeObserver(() => callback(current)); + + resizeObserver.observe(ref.current); + + return () => { + /* istanbul ignore if: убираем проверку на рефы из покрытия */ + if (!ref?.current) { + return; + } + + resizeObserver.unobserve(ref.current); + }; + }, [ref]); +}; From a4a7109093b179d3e907d2560bdc4404762af43d Mon Sep 17 00:00:00 2001 From: Artem Neretin Date: Mon, 11 Apr 2022 18:18:29 +0700 Subject: [PATCH 2/3] fix(plasma-web,plasma-b2c): Add useResizeObserver and fix behavior with resize --- .../src/components/TextArea/TextArea.tsx | 24 ++++++++++-- .../src/components/TextArea/TextArea.tsx | 37 +++++++++++++++++-- 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/packages/plasma-b2c/src/components/TextArea/TextArea.tsx b/packages/plasma-b2c/src/components/TextArea/TextArea.tsx index e1088f28f..e3e8c2147 100644 --- a/packages/plasma-b2c/src/components/TextArea/TextArea.tsx +++ b/packages/plasma-b2c/src/components/TextArea/TextArea.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { createRef, useMemo, useState } from 'react'; import styled from 'styled-components'; import { TextFieldRoot, @@ -7,6 +7,7 @@ import { primary, secondary, tertiary, + useResizeObserver, } from '@sberdevices/plasma-core'; import type { TextAreaProps as BaseProps } from '@sberdevices/plasma-core'; @@ -44,6 +45,10 @@ const StyledTextArea = styled(BaseArea)` } `; +const StyledFieldHelpers = styled(FieldHelpers)<{ width: number }>` + width: ${({ width }) => width}px; +`; + /** * Поле ввода многострочного текста. */ @@ -66,10 +71,21 @@ export const TextArea = React.forwardRef( className, ...rest }, - ref, + outerRef, ) => { + const [width, setWidth] = useState(0); + const ref = useMemo(() => (outerRef && 'current' in outerRef ? outerRef : createRef()), [ + outerRef, + ]); + const placeLabel = (label || placeholder) as string | undefined; + useResizeObserver(ref, (currentElement) => { + const { width: elementWidth } = currentElement.getBoundingClientRect(); + + setWidth(elementWidth); + }); + return ( ( aria-describedby={id ? `${id}-helper` : undefined} {...rest} /> - + {leftHelper} {rightHelper} - + ); diff --git a/packages/plasma-web/src/components/TextArea/TextArea.tsx b/packages/plasma-web/src/components/TextArea/TextArea.tsx index 870f09c15..d6a7db517 100644 --- a/packages/plasma-web/src/components/TextArea/TextArea.tsx +++ b/packages/plasma-web/src/components/TextArea/TextArea.tsx @@ -1,6 +1,12 @@ -import React, { forwardRef } from 'react'; +import React, { forwardRef, useState, useMemo, createRef } from 'react'; import styled from 'styled-components'; -import { FieldRoot, FieldContent, FieldHelper, TextArea as BaseArea } from '@sberdevices/plasma-core'; +import { + FieldRoot, + FieldContent, + FieldHelper, + TextArea as BaseArea, + useResizeObserver, +} from '@sberdevices/plasma-core'; import type { TextAreaProps as BaseProps } from '@sberdevices/plasma-core'; import { applyInputStyles } from '../Field'; @@ -16,14 +22,35 @@ const StyledTextArea = styled(BaseArea)` ${applyInputStyles} `; +const StyledFieldHelperWrapper = styled.div<{ width: number }>` + position: absolute; + top: 0; + + display: flex; + justify-content: flex-end; + + width: ${({ width }) => width}px; +`; + /** * Поле ввода многострочного текста. */ // eslint-disable-next-line prefer-arrow-callback export const TextArea = forwardRef(function TextArea( { id, disabled, status, label, placeholder, contentRight, helperText, style, className, ...rest }, - ref, + outerRef, ) { + const [width, setWidth] = useState(0); + const ref = useMemo(() => (outerRef && 'current' in outerRef ? outerRef : createRef()), [ + outerRef, + ]); + + useResizeObserver(ref, (currentElement) => { + const { width: elementWidth } = currentElement.getBoundingClientRect(); + + setWidth(elementWidth); + }); + const placeLabel = (label || placeholder) as string | undefined; return ( @@ -44,8 +71,10 @@ export const TextArea = forwardRef(function aria-describedby={id ? `${id}-helpertext` : undefined} {...rest} /> - {contentRight && {contentRight}} {helperText && {helperText}} + + {contentRight && {contentRight}} + ); }); From e0216ef598c19ee2d8a1cb902ccf2b3390ecef66 Mon Sep 17 00:00:00 2001 From: Artem Neretin Date: Mon, 11 Apr 2022 18:19:26 +0700 Subject: [PATCH 3/3] test(plasma-web,plasma-b2c,plasma-ui): Update snapshot and test for `TextArea` component --- .../plasma-core TextArea -- resize.snap.png | Bin 8003 -> 8015 bytes .../plasma-core TextArea -- resize.snap.png | Bin 13644 -> 13645 bytes .../plasma-core TextArea -- resize.snap.png | Bin 12669 -> 12623 bytes .../TextArea/TextArea.component-test.tsx | 2 ++ 4 files changed, 2 insertions(+) diff --git a/cypress/snapshots/b2c/components/TextArea/TextAreaBase.component-test.tsx/plasma-core TextArea -- resize.snap.png b/cypress/snapshots/b2c/components/TextArea/TextAreaBase.component-test.tsx/plasma-core TextArea -- resize.snap.png index 12f9c2f4fa7ef2f72f4a752bf06626edfb27161b..073b636a55caeb2a74e05d37f94fd80850072c8f 100644 GIT binary patch delta 5464 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 literal 13644 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 XNMGFIm5%>WViH9|e|yr_LudaBa%1Ud literal 12669 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 diff --git a/packages/plasma-core/src/components/TextArea/TextArea.component-test.tsx b/packages/plasma-core/src/components/TextArea/TextArea.component-test.tsx index 4e2ce8e14..cc29102a4 100644 --- a/packages/plasma-core/src/components/TextArea/TextArea.component-test.tsx +++ b/packages/plasma-core/src/components/TextArea/TextArea.component-test.tsx @@ -87,6 +87,8 @@ describe('plasma-core: TextArea', () => { , ); + cy.root().get('textarea').last().invoke('attr', 'style', 'width: 280px; height: 140px;'); + cy.matchImageSnapshot(); });