Skip to content

Commit

Permalink
feat: pull up OuterAdditionalContent
Browse files Browse the repository at this point in the history
  • Loading branch information
kkmch committed Aug 22, 2023
1 parent b2162de commit 309dae9
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 76 deletions.
25 changes: 0 additions & 25 deletions src/components/controls/TextArea/TextArea.scss
Original file line number Diff line number Diff line change
Expand Up @@ -48,31 +48,6 @@ $block: '.#{variables.$ns-new}text-area';
}
}

&__outer-additional-content {
display: flex;
justify-content: space-between;
vertical-align: top;
}

&__note {
margin-left: auto;
}

&__error {
@include mixins.text-body-1();

color: var(--g-color-text-danger);

&:not(:last-child) {
margin-right: var(--g-spacing-2);
}
}

&__note,
&__error {
margin-top: 2px;
}

&__clear {
position: absolute;
right: 1px;
Expand Down
13 changes: 7 additions & 6 deletions src/components/controls/TextArea/TextArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {blockNew} from '../../utils/cn';
import {useForkRef} from '../../utils/useForkRef';
import {useUniqId} from '../../utils/useUniqId';
import {ClearButton, mapTextInputSizeToButtonSize} from '../common';
import {OuterAdditionalContent} from '../common/OuterAdditionalContent/OuterAdditionalContent';
import type {
BaseInputControlProps,
InputControlPin,
Expand Down Expand Up @@ -159,12 +160,12 @@ export const TextArea = React.forwardRef<HTMLSpanElement, TextAreaProps>(functio
/>
)}
</span>
{(isErrorMsgVisible || note) && (
<div className={b('outer-additional-content')}>
{isErrorMsgVisible && <div className={b('error')}>{error}</div>}
{note && <div className={b('note')}>{note}</div>}
</div>
)}
<OuterAdditionalContent
note={note}
error={error}
isVisible={isErrorMsgVisible}
controlId={id}
/>
</span>
);
});
25 changes: 0 additions & 25 deletions src/components/controls/TextInput/TextInput.scss
Original file line number Diff line number Diff line change
Expand Up @@ -91,31 +91,6 @@ $block: '.#{variables.$ns}text-input';
flex-shrink: 0;
}

&__outer-additional-content {
display: flex;
justify-content: space-between;
vertical-align: top;
}

&__note {
margin-left: auto;
}

&__error {
@include mixins.text-body-1();

color: var(--g-color-text-danger);

&:not(:last-child) {
margin-right: var(--g-spacing-2);
}
}

&__note,
&__error {
margin-top: 2px;
}

&__additional-content {
display: flex;
align-items: center;
Expand Down
28 changes: 8 additions & 20 deletions src/components/controls/TextInput/TextInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,14 @@ import {useElementSize} from '../../utils/useElementSize';
import {useForkRef} from '../../utils/useForkRef';
import {useUniqId} from '../../utils/useUniqId';
import {ClearButton, mapTextInputSizeToButtonSize} from '../common';
import {OuterAdditionalContent} from '../common/OuterAdditionalContent/OuterAdditionalContent';
import type {
BaseInputControlProps,
InputControlPin,
InputControlSize,
InputControlView,
} from '../types';
import {
getControlErrorTextId,
getControlNoteId,
getInputControlState,
prepareAutoComplete,
} from '../utils';
import {getInputControlState, prepareAutoComplete} from '../utils';

import {AdditionalContent} from './AdditionalContent';
import {TextInputControl} from './TextInputControl';
Expand Down Expand Up @@ -214,20 +210,12 @@ export const TextInput = React.forwardRef<HTMLSpanElement, TextInputProps>(funct
</AdditionalContent>
)}
</span>
{(isErrorMsgVisible || note) && (
<div className={b('outer-additional-content')}>
{isErrorMsgVisible && (
<div className={b('error')} id={getControlErrorTextId(id)}>
{error}
</div>
)}
{note && (
<div className={b('note')} id={getControlNoteId(id)}>
{note}
</div>
)}
</div>
)}
<OuterAdditionalContent
note={note}
error={error}
isVisible={isErrorMsgVisible}
controlId={id}
/>
</span>
);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@use '../../../../../styles/mixins';
@use '../../../variables';

$block: '.#{variables.$ns}outer-additional-content';

#{$block} {
display: flex;
justify-content: space-between;
vertical-align: top;

&__note,
&__error {
margin-top: 2px;
}

&__error {
@include mixins.text-body-1();

color: var(--g-color-text-danger);

&:not(:last-child) {
margin-right: var(--g-spacing-2);
}
}

&__note {
margin-left: auto;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import React from 'react';

import {block} from '../../../utils/cn';
import {getControlErrorTextId, getControlNoteId} from '../../utils';

import './OuterAdditionalContent.scss';

const b = block('outer-additional-content');

interface OuterAdditionalContentProps {
isVisible?: boolean;
note?: React.ReactNode;
error?: React.ReactNode;
controlId?: string;
}

export const OuterAdditionalContent = ({
error,
isVisible,
note,
controlId,
}: OuterAdditionalContentProps) => {
return isVisible || note ? (
<div className={b()}>
{isVisible && (
<div className={b('error')} id={getControlErrorTextId(controlId)}>
{error}
</div>
)}
{note && (
<div className={b('note')} id={getControlNoteId(controlId)}>
{note}
</div>
)}
</div>
) : null;
};

0 comments on commit 309dae9

Please sign in to comment.