aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/molecules/forms/labelled-boolean-field.tsx
blob: d110d45ddb3f08a11cd88bb17cf2d652ed9e8744 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
generated by cgit v1.2.3 (git 2.39.1) at 2025-10-27 01:52:05 +0000
 


nField: FC<LabelledBooleanFieldProps> = ({
  className = '',
  fieldClassName,
  hidden,
  id,
  label,
  labelClassName,
  labelPosition = 'left',
  labelSize,
  ...props
}) => {
  const labelHiddenModifier = hidden ? 'label--hidden' : 'label--visible';
  const labelPositionModifier = `label--${labelPosition}`;
  const labelClass = `${styles[labelPositionModifier]} ${styles[labelHiddenModifier]} ${labelClassName}`;

  return labelPosition === 'left' ? (
    <span className={`${styles.wrapper} ${className}`}>
      <Label className={labelClass} htmlFor={id} size={labelSize}>
        {label}
      </Label>
      <BooleanField
        {...props}
        className={fieldClassName}
        hidden={hidden}
        id={id}
      />
    </span>
  ) : (
    <span className={`${styles.wrapper} ${className}`}>
      <BooleanField
        {...props}
        className={fieldClassName}
        hidden={hidden}
        id={id}
      />
      <Label className={labelClass} htmlFor={id} size={labelSize}>
        {label}
      </Label>
    </span>
  );
};