Skip to content

Commit 7c84c57

Browse files
committed
refactor(client,prospect): use getClassName in TextArea and mutualize warning CSS
1 parent d9bbc5c commit 7c84c57

4 files changed

Lines changed: 15 additions & 25 deletions

File tree

packages/canopee-css/src/prospect-client/Form/TextArea/TextAreaApollo.css

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,4 @@
2525
--textarea-box-shadow-width: 3px;
2626
}
2727
}
28-
29-
&[class*="--warning"] {
30-
--textarea-box-shadow-color: var(--orange-1050);
31-
32-
&:is(:focus-visible, :hover, :active, :focus) {
33-
--textarea-box-shadow-width: 3px;
34-
}
35-
}
3628
}

packages/canopee-css/src/prospect-client/Form/TextArea/TextAreaCommon.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,12 @@
3333
font-weight: 400;
3434
color: var(--textarea-placeholder-color);
3535
}
36+
37+
&[class*="--warning"] {
38+
--textarea-box-shadow-color: var(--orange-1050);
39+
40+
&:is(:focus-visible, :hover, :active, :focus) {
41+
--textarea-box-shadow-width: 3px;
42+
}
43+
}
3644
}

packages/canopee-css/src/prospect-client/Form/TextArea/TextAreaLF.css

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,4 @@
2525
--textarea-box-shadow-width: 3px;
2626
}
2727
}
28-
29-
&[class*="--warning"] {
30-
--textarea-box-shadow-color: var(--orange-1050);
31-
32-
&:is(:focus-visible, :hover, :active, :focus) {
33-
--textarea-box-shadow-width: 3px;
34-
}
35-
}
3628
}

packages/canopee-react/src/prospect-client/Form/TextArea/TextAreaCommon.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
forwardRef,
66
useId,
77
} from "react";
8+
import { getClassName } from "../../utilities/getClassName";
89
import type { GridContainerProps } from "../../utilities/types/GridContainerProps";
910
import {
1011
ItemLabelCommon,
@@ -16,6 +17,7 @@ import {
1617
} from "../ItemMessage/ItemMessageCommon";
1718

1819
export type TextAreaProps = ComponentPropsWithRef<"textarea"> & {
20+
classModifier?: string;
1921
label?: ItemLabelProps["children"];
2022
helper?: string;
2123
/**
@@ -47,6 +49,7 @@ const TextAreaCommon = forwardRef<HTMLTextAreaElement, TextAreaCommonProps>(
4749
{
4850
id,
4951
className,
52+
classModifier = "",
5053
label,
5154
description,
5255
helper,
@@ -78,12 +81,10 @@ const TextAreaCommon = forwardRef<HTMLTextAreaElement, TextAreaCommonProps>(
7881
const hasWarning =
7982
Boolean(message) && messageType === "warning" && !hasError;
8083

81-
const textareaClassName = [
82-
"af-form__textarea",
83-
hasWarning ? "af-form__textarea--warning" : "",
84-
]
85-
.filter(Boolean)
86-
.join(" ");
84+
const textareaClassName = getClassName({
85+
baseClassName: "af-form__textarea",
86+
modifiers: [...classModifier.split(" "), hasWarning && "warning"],
87+
});
8788

8889
return (
8990
<div
@@ -103,7 +104,6 @@ const TextAreaCommon = forwardRef<HTMLTextAreaElement, TextAreaCommonProps>(
103104
>
104105
{label}
105106
</ItemLabelComponent>
106-
107107
<textarea
108108
id={inputId}
109109
className={textareaClassName}
@@ -115,13 +115,11 @@ const TextAreaCommon = forwardRef<HTMLTextAreaElement, TextAreaCommonProps>(
115115
placeholder={placeholder}
116116
{...inputProps}
117117
/>
118-
119118
{helper ? (
120119
<span id={helperId} className="af-form__input-helper">
121120
{helper}
122121
</span>
123122
) : null}
124-
125123
<ItemMessageComponent
126124
id={messageId}
127125
message={message || error}

0 commit comments

Comments
 (0)