Files
community-rule/app/components/controls/IncrementerBlock/IncrementerBlock.container.tsx
T

44 lines
1.1 KiB
TypeScript

"use client";
import { memo } from "react";
import IncrementerBlockView from "./IncrementerBlock.view";
import type { IncrementerBlockProps } from "./IncrementerBlock.types";
/**
* Figma: "Control / Incrementer Block" (`19883:13283`). An `InputLabel` plus
* an `Incrementer` row, stacked with a 12px gap. Consumers can pass any
* `IncrementerProps` alongside the label-specific props.
*/
const IncrementerBlockContainer = ({
label,
helpIcon = true,
helperText,
asterisk,
labelSize = "s",
palette = "default",
blockClassName = "",
state = "default",
disabled,
...incrementerProps
}: IncrementerBlockProps) => {
const isDisabled = state === "disabled" || Boolean(disabled);
return (
<IncrementerBlockView
label={label}
helpIcon={helpIcon}
helperText={helperText}
asterisk={asterisk}
labelSize={labelSize}
palette={palette}
blockClassName={blockClassName}
state={state}
disabled={isDisabled}
{...incrementerProps}
/>
);
};
IncrementerBlockContainer.displayName = "IncrementerBlock";
export default memo(IncrementerBlockContainer);