From bb24bf6f08d953ba0cd935bbf17f88c125fcef8a Mon Sep 17 00:00:00 2001 From: Daniil Chervyakov Date: Thu, 22 Apr 2021 14:44:28 +0500 Subject: [PATCH 1/3] fix(SidePage): fix sidepage counting for adding margins and shadows --- .../react-ui/components/SidePage/SidePage.tsx | 2 +- .../SidePage/__stories__/SidePage.stories.tsx | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/packages/react-ui/components/SidePage/SidePage.tsx b/packages/react-ui/components/SidePage/SidePage.tsx index e6d6a0c713e..51af64a969d 100644 --- a/packages/react-ui/components/SidePage/SidePage.tsx +++ b/packages/react-ui/components/SidePage/SidePage.tsx @@ -266,7 +266,7 @@ export class SidePage extends React.Component { } private handleStackChange = (stack: ReadonlyArray) => { - const sidePages = stack.filter(x => x instanceof SidePage); + const sidePages = stack.filter(x => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft); const currentSidePagePosition = sidePages.indexOf(this); const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1; diff --git a/packages/react-ui/components/SidePage/__stories__/SidePage.stories.tsx b/packages/react-ui/components/SidePage/__stories__/SidePage.stories.tsx index 90ac1392afb..91871c8c778 100644 --- a/packages/react-ui/components/SidePage/__stories__/SidePage.stories.tsx +++ b/packages/react-ui/components/SidePage/__stories__/SidePage.stories.tsx @@ -320,6 +320,47 @@ class SidePageWithLeftPosition extends React.Component<{ } } +class LeftSidePageWithRightSidePage extends React.Component<{ + disableAnimations?: boolean; +}> { + public render() { + return ( + <> + + test + + + {textSample} + {textSample} + + + + + + + + + + + test + + + {textSample} + {textSample} + + + + + + + + + + + ); + } +} + class SimpleSidePage extends React.Component<{}, {}> { public render() { return ( @@ -615,6 +656,12 @@ SidePageWithLeftPositionStory.story = { parameters: { creevey: { captureElement: null } }, }; +export const LeftSidePageWithRightSidePageStory = () => ; +LeftSidePageWithRightSidePageStory.story = { + name: 'Left SidePage With Right SidePage', + parameters: { creevey: { captureElement: null } }, +}; + export const Simple: CSFStory = () => ; Simple.story = { parameters: { From 5314d3248b9c83d324102f4ee1ae1c0cad76d9ac Mon Sep 17 00:00:00 2001 From: Daniil Chervyakov Date: Thu, 22 Apr 2021 15:06:09 +0500 Subject: [PATCH 2/3] test(SidePage): add screenshots for new story --- .../SidePage/Left SidePage With Right SidePage/chrome.png | 3 +++ .../SidePage/Left SidePage With Right SidePage/chrome8px.png | 3 +++ .../SidePage/Left SidePage With Right SidePage/firefox.png | 3 +++ .../SidePage/Left SidePage With Right SidePage/firefox8px.png | 3 +++ .../images/SidePage/Left SidePage With Right SidePage/ie11.png | 3 +++ .../SidePage/Left SidePage With Right SidePage/ie118px.png | 3 +++ 6 files changed, 18 insertions(+) create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome.png create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome8px.png create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox.png create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox8px.png create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie11.png create mode 100644 packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie118px.png diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome.png new file mode 100644 index 00000000000..999a5eaacea --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc8e4002116c20c974810576c732c8cc48ff268518632c92cfa9d8996df5e303 +size 142664 diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome8px.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome8px.png new file mode 100644 index 00000000000..d6c4a9864c4 --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/chrome8px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0d5f16a4cd78d1d8dee84e531fd9dcda46693c047895d22ac35c961e775738f +size 147626 diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox.png new file mode 100644 index 00000000000..05d3a35dd57 --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d94ec128e6357816546844be2cb422d72640037352e52fa95685516b5b221247 +size 49064 diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox8px.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox8px.png new file mode 100644 index 00000000000..4afbf49c147 --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/firefox8px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d9f3cb271da7e315e3eb40e0c192756593b7a6cac95b00488c2d873a707710a +size 50254 diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie11.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie11.png new file mode 100644 index 00000000000..26cae56adf3 --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7fa5375d843d2bcf4e6ef5bcff8eaef5a613e3512f509a0e140ef36b895e8be +size 89495 diff --git a/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie118px.png b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie118px.png new file mode 100644 index 00000000000..4d3b66e8bc2 --- /dev/null +++ b/packages/react-ui/.creevey/images/SidePage/Left SidePage With Right SidePage/ie118px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f03d8c6fe31f9ae00a94b19c71f414de80a39ccdfb46604b6a11bdd2c5994f8 +size 90101 From 89a826dd328bc9392664c11826714f64c3f65c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BE=D0=BB=D1=83=D0=B1=D0=B5=D0=B2=20=D0=9E=D0=BB?= =?UTF-8?q?=D0=B5=D0=B3=20=D0=98=D0=B3=D0=BE=D1=80=D0=B5=D0=B2=D0=B8=D1=87?= Date: Wed, 14 Apr 2021 16:38:55 +0500 Subject: [PATCH 3/3] fix(Switcher): add check for switcher in validation tooltip --- .../src/ReactUiDetection.ts | 4 ++ .../src/ValidationTooltip.tsx | 6 ++- .../stories/Switcher.stories.tsx | 50 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 packages/react-ui-validations/stories/Switcher.stories.tsx diff --git a/packages/react-ui-validations/src/ReactUiDetection.ts b/packages/react-ui-validations/src/ReactUiDetection.ts index 41a8300d778..f4d60307689 100644 --- a/packages/react-ui-validations/src/ReactUiDetection.ts +++ b/packages/react-ui-validations/src/ReactUiDetection.ts @@ -19,4 +19,8 @@ export class ReactUiDetection { public static isTokenInput(childrenArray: any): boolean { return childrenArray != null && childrenArray.type?.__KONTUR_REACT_UI__ === 'TokenInput'; } + + public static isSwitcher(childrenArray: any): boolean { + return childrenArray != null && childrenArray.type?.__KONTUR_REACT_UI__ === 'Switcher'; + } } diff --git a/packages/react-ui-validations/src/ValidationTooltip.tsx b/packages/react-ui-validations/src/ValidationTooltip.tsx index cc3944a31f0..376513ebc1f 100644 --- a/packages/react-ui-validations/src/ValidationTooltip.tsx +++ b/packages/react-ui-validations/src/ValidationTooltip.tsx @@ -27,7 +27,11 @@ export class ValidationTooltip extends React.Component { public render() { const onlyChild = React.Children.only(this.props.children); const child = onlyChild && onlyChild.props ? onlyChild.props.children : null; - if (ReactUiDetection.isRadioGroup(child) || ReactUiDetection.isTokenInput(child)) { + if ( + ReactUiDetection.isRadioGroup(child) || + ReactUiDetection.isTokenInput(child) || + ReactUiDetection.isSwitcher(child) + ) { return ( ); + +interface SwitcherStoryState { + value: string; +} + +class SwitcherStory extends React.Component<{}, SwitcherStoryState> { + public state: SwitcherStoryState = { + value: '', + }; + + private container: ValidationContainer | null = null; + + public validateValue(): Nullable { + const { value } = this.state; + if (!value) { + return { message: 'Поле обязательно', type: 'submit' }; + } + return null; + } + + public render() { + return ( +
+ + + this.setState({ value })} + /> + +
+ +
+
+
+ ); + } + + private refContainer = (el: ValidationContainer | null) => (this.container = el); +}