From 270484c0e777dcd4e1ef2f8490ce4d4e34b9d2e9 Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Fri, 5 May 2023 16:03:49 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(react)=20make=20Input=20use?= =?UTF-8?q?=20LabelledBox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let's use the power of reusability! --- .../src/components/Forms/Input/index.scss | 60 ++++++++----------- .../src/components/Forms/Input/index.tsx | 17 +++--- 2 files changed, 32 insertions(+), 45 deletions(-) diff --git a/packages/react/src/components/Forms/Input/index.scss b/packages/react/src/components/Forms/Input/index.scss index 5c72669..ed13799 100644 --- a/packages/react/src/components/Forms/Input/index.scss +++ b/packages/react/src/components/Forms/Input/index.scss @@ -1,5 +1,4 @@ .c__input__wrapper { - border-radius: var(--c--components--forms-input--border-radius); border-width: var(--c--components--forms-input--border-width); border-color: var(--c--components--forms-input--border-color); @@ -19,45 +18,36 @@ font-weight: var(--c--components--forms-input--font-weight); } - .c__input__inner { - position: relative; + .c__input { + box-sizing: border-box; + outline: 0; + border: none; + color: var(--c--theme--colors--greyscale-800); flex-grow: 1; - display: flex; - height: 100%; + text-overflow: ellipsis; + background-color: transparent; + @extend %text-style; - .c__input { - - box-sizing: border-box; - outline: 0; - border: none; - padding: 1rem 0 0 0; - color: var(--c--theme--colors--greyscale-800); - flex-grow: 1; - text-overflow: ellipsis; - background-color: transparent; - @extend %text-style; - - &--medium { - min-width: 150px; - } - - &--nano { - min-width: 10px; - } + &--medium { + min-width: 150px; } - label { - position: absolute; - font-size: var(--c--theme--font--sizes--s); - left: 0; - top: 0.75rem; - transition: all var(--c--theme--transitions--duration) var(--c--theme--transitions--ease-out); - color: var(--c--theme--colors--greyscale-600); + &--nano { + min-width: 10px; + } + } - &.placeholder { - @extend %text-style; - top: 18px; - } + label { + position: absolute; + font-size: var(--c--theme--font--sizes--s); + left: 0; + top: 0.75rem; + transition: all var(--c--theme--transitions--duration) var(--c--theme--transitions--ease-out); + color: var(--c--theme--colors--greyscale-600); + + &.placeholder { + @extend %text-style; + top: 18px; } } diff --git a/packages/react/src/components/Forms/Input/index.tsx b/packages/react/src/components/Forms/Input/index.tsx index ab42cad..99f654a 100644 --- a/packages/react/src/components/Forms/Input/index.tsx +++ b/packages/react/src/components/Forms/Input/index.tsx @@ -10,6 +10,7 @@ import React, { import classNames from "classnames"; import { randomString } from ":/utils"; import { Field, FieldProps } from ":/components/Forms/Field"; +import { LabelledBox } from ":/components/Forms/LabelledBox"; export interface InputRefType { input: HTMLInputElement | null; @@ -106,7 +107,11 @@ export const Input = forwardRef( }} > {!!icon && icon} -
+ ( }} ref={inputRef} /> - {label && ( - - )} -
+ {!!rightIcon && rightIcon}