From 92208a2dd6d7e6bf5acf756a7a962647ad829677 Mon Sep 17 00:00:00 2001 From: Zolotykh Nikita Date: Mon, 19 Aug 2024 13:51:05 +0300 Subject: [PATCH] fix: copy button and long value components fixes --- .../kit/components/CopyButton/CopyButton.scss | 10 +++++- .../kit/components/CopyButton/CopyButton.tsx | 6 +++- .../kit/components/LongValue/LongValue.scss | 11 +++--- .../kit/components/LongValue/LongValue.tsx | 26 +++++--------- src/stories/components/Editor/Editor.tsx | 34 +++++++++++-------- .../components/InputPreview/InputPreview.tsx | 14 ++++---- 6 files changed, 57 insertions(+), 44 deletions(-) diff --git a/src/lib/kit/components/CopyButton/CopyButton.scss b/src/lib/kit/components/CopyButton/CopyButton.scss index 7c6c779f..d337e154 100644 --- a/src/lib/kit/components/CopyButton/CopyButton.scss +++ b/src/lib/kit/components/CopyButton/CopyButton.scss @@ -1,6 +1,14 @@ @import '../../styles/variables.scss'; .#{$ns}copy-button { + width: 20px; display: none; - margin: 2px 0 0 5px; + position: relative; + margin: -1px 0 0 5px; + + &__button { + position: absolute; + top: 0; + left: 0; + } } diff --git a/src/lib/kit/components/CopyButton/CopyButton.tsx b/src/lib/kit/components/CopyButton/CopyButton.tsx index de03b224..9d0e28b2 100644 --- a/src/lib/kit/components/CopyButton/CopyButton.tsx +++ b/src/lib/kit/components/CopyButton/CopyButton.tsx @@ -21,7 +21,11 @@ export interface CopyButtonProps { export const CopyButton: React.FC = ({spec, value}) => { if ((isStringSpec(spec) || isNumberSpec(spec)) && spec.viewSpec.copy) { - return ; + return ( +
+ +
+ ); } return null; diff --git a/src/lib/kit/components/LongValue/LongValue.scss b/src/lib/kit/components/LongValue/LongValue.scss index b0678136..14a090ed 100644 --- a/src/lib/kit/components/LongValue/LongValue.scss +++ b/src/lib/kit/components/LongValue/LongValue.scss @@ -2,6 +2,13 @@ .#{$ns}long-value { max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + + &_open { + white-space: pre-wrap; + word-wrap: break-word; + } &_long { cursor: pointer; @@ -10,8 +17,4 @@ color: var(--g-color-text-secondary); } } - - &__container { - display: flex; - } } diff --git a/src/lib/kit/components/LongValue/LongValue.tsx b/src/lib/kit/components/LongValue/LongValue.tsx index fb79e6b8..5053dfef 100644 --- a/src/lib/kit/components/LongValue/LongValue.tsx +++ b/src/lib/kit/components/LongValue/LongValue.tsx @@ -21,18 +21,6 @@ export const LongValue: React.FC = ({value, className}) => { const handleClick = React.useCallback(() => setOpen((f) => !f), [setOpen]); - const currentTextProperies = React.useMemo(() => { - let wordBreak: 'break-all' | undefined; - let whiteSpace: 'break-spaces' | undefined; - - if (open) { - wordBreak = 'break-all'; - whiteSpace = 'break-spaces'; - } - - return {wordBreak, whiteSpace}; - }, [open]); - React.useEffect(() => { if (ref.current) { if (value !== prevValue.current) { @@ -58,10 +46,14 @@ export const LongValue: React.FC = ({value, className}) => { }); return ( -
- - {value} - -
+ + {value} + ); }; diff --git a/src/stories/components/Editor/Editor.tsx b/src/stories/components/Editor/Editor.tsx index 38fd3cdf..d07971e4 100644 --- a/src/stories/components/Editor/Editor.tsx +++ b/src/stories/components/Editor/Editor.tsx @@ -159,22 +159,26 @@ export const Editor: React.FC = ({spec: externalSpec, value, viewMo /> ) : null} -
- - Enable showLayoutDescription props - setShowLayoutDescription((v) => !v)} - className={b('switch')} + {toggler === 'view' ? ( +
+ + + Enable showLayoutDescription props + + setShowLayoutDescription((v) => !v)} + className={b('switch')} + /> + + - - -
+
+ ) : null} {toggler === 'json' ? (
diff --git a/src/stories/components/InputPreview/InputPreview.tsx b/src/stories/components/InputPreview/InputPreview.tsx index 5f6e7282..bfa25aa9 100644 --- a/src/stories/components/InputPreview/InputPreview.tsx +++ b/src/stories/components/InputPreview/InputPreview.tsx @@ -175,12 +175,14 @@ export const InputPreview: React.FC = ({ search={searchInput} />
-
- -
+ {togglerInput === 'view' ? ( +
+ +
+ ) : null} {togglerInput === 'json' ? (
{renderMonaco(form.values.input)}
) : null}