Skip to content

Commit b387359

Browse files
author
Haider Alshamma
committed
Fix failing specs
1 parent 2567b5a commit b387359

File tree

4 files changed

+55
-62
lines changed

4 files changed

+55
-62
lines changed

src/Checkbox/Checkbox.tsx

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ type NativeInputProps = Omit<React.ComponentPropsWithRef<"input">, "size">;
1414

1515
type CheckboxProps = NativeInputProps &
1616
SpaceProps & {
17+
children?: React.ReactNode;
1718
htmlSize?: number;
1819
size?: ComponentSize;
1920
labelText?: string;
@@ -55,7 +56,7 @@ const checkboxStyle = (theme: DefaultNDSThemeType) => ({
5556
},
5657
});
5758

58-
const getCheckboxStyle = (props, checked) => {
59+
const getCheckboxStyle = (props: CheckboxProps, checked: "checked" | "unchecked") => {
5960
const checkboxStyleMap = checkboxStyle(props.theme);
6061
if (props.disabled) {
6162
return checkboxStyleMap[checked].disabled;
@@ -129,43 +130,40 @@ const CheckboxInput = styled.input<CheckboxProps>((props) => ({
129130

130131
type Ref = HTMLInputElement;
131132

132-
const Checkbox = forwardRef<Ref, CheckboxProps>(
133-
(
134-
{ size, className, labelText, checked, indeterminate, disabled = false, error = false, required = false, ...props },
135-
ref
136-
) => {
137-
const componentSize = useComponentSize(size);
138-
const spaceProps = getSubset(props, propTypes.space);
139-
const restProps = omitSubset(props, propTypes.space);
133+
const Checkbox = forwardRef<Ref, CheckboxProps>((props, ref) => {
134+
const { size, className, labelText, disabled, checked, required, error, indeterminate } = props;
140135

141-
return (
142-
<Box className={className} px="0" {...spaceProps}>
143-
<ClickInputLabel size={componentSize} disabled={disabled}>
144-
<CheckboxInput
145-
type="checkbox"
146-
required={required}
147-
aria-required={required}
148-
aria-invalid={error}
149-
indeterminate={indeterminate}
150-
ref={ref}
151-
{...restProps}
152-
/>
153-
<VisualCheckbox
154-
disabled={disabled}
155-
checked={checked}
156-
indeterminate={indeterminate}
157-
data-testid="visual-checkbox"
158-
marginTop={labelText ? "half" : "0px"}
159-
/>
160-
{labelText && (
161-
<Text disabled={disabled} ml="x1">
162-
{labelText}
163-
</Text>
164-
)}
165-
</ClickInputLabel>
166-
</Box>
167-
);
168-
}
169-
);
136+
const componentSize = useComponentSize(size);
137+
const spaceProps = getSubset(props, propTypes.space);
138+
const restProps = omitSubset(props, propTypes.space);
139+
140+
return (
141+
<Box className={className} px="0" {...spaceProps}>
142+
<ClickInputLabel size={componentSize} disabled={disabled}>
143+
<CheckboxInput
144+
type="checkbox"
145+
required={required}
146+
aria-required={required}
147+
aria-invalid={error}
148+
indeterminate={indeterminate}
149+
ref={ref}
150+
{...restProps}
151+
/>
152+
<VisualCheckbox
153+
disabled={disabled}
154+
checked={checked}
155+
indeterminate={indeterminate}
156+
data-testid="visual-checkbox"
157+
marginTop={labelText ? "half" : "0px"}
158+
/>
159+
{labelText && (
160+
<Text disabled={disabled} ml="x1">
161+
{labelText}
162+
</Text>
163+
)}
164+
</ClickInputLabel>
165+
</Box>
166+
);
167+
});
170168

171169
export default Checkbox;

src/Checkbox/CheckboxGroup.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Fieldset } from "../Form";
66
import Checkbox from "./Checkbox";
77

88
interface CheckboxGroupProps {
9-
children: React.ReactNode;
9+
children?: React.ReactNode;
1010
errorMessage?: string;
1111
errorList?: string[];
1212
labelText: string;
@@ -25,16 +25,14 @@ interface CheckboxGroupProps {
2525
export default function CheckboxGroup({
2626
className,
2727
id,
28+
errorMessage,
29+
errorList,
2830
labelText,
2931
helpText,
3032
requirementText,
31-
disabled = false,
32-
errorMessage,
33-
errorList,
3433
...props
3534
}: CheckboxGroupProps) {
36-
const otherProps = { ...props, errorMessage, errorList, disabled };
37-
35+
const otherProps = { ...props, errorMessage, errorList };
3836
return (
3937
<Fieldset className={className} id={id} hasHelpText={!!helpText}>
4038
<Legend>

src/Popper/Popper.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const makeArray = (children) => {
1414
const wrapInFunction = (x: unknown) => (typeof x === "function" ? x : () => x);
1515

1616
type PopperProps = {
17-
children: React.ReactNode;
17+
children?: React.ReactNode;
1818
popperPlacement?: string;
1919
defaultOpen?: boolean;
2020
showDelay?: string | number;

src/Toggle/Toggle.tsx

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,7 @@ type MaybeToggleTitleProps = React.ComponentPropsWithRef<"div"> & {
2525
children?: React.ReactNode;
2626
};
2727

28-
const MaybeToggleTitle: React.FC<React.PropsWithChildren<MaybeToggleTitleProps>> = ({
29-
labelText,
30-
requirementText,
31-
helpText,
32-
children,
33-
...props
34-
}) => {
28+
function MaybeToggleTitle({ labelText, requirementText, helpText, children, ...props }: MaybeToggleTitleProps) {
3529
const themeContext = useContext(ThemeContext);
3630
return labelText ? (
3731
<div {...props}>
@@ -45,10 +39,10 @@ const MaybeToggleTitle: React.FC<React.PropsWithChildren<MaybeToggleTitleProps>>
4539
) : (
4640
<>{children}</>
4741
);
48-
};
42+
}
4943

5044
type BaseToggleProps = SpaceProps & {
51-
onChange?: React.ChangeEventHandler<HTMLInputElement>;
45+
onChange?: (...args: any[]) => any;
5246
size?: ComponentSize;
5347
toggled?: boolean;
5448
disabled?: boolean;
@@ -61,28 +55,28 @@ type BaseToggleProps = SpaceProps & {
6155
labelText?: string;
6256
requirementText?: string;
6357
error?: boolean;
64-
onClick?: React.MouseEventHandler<HTMLLabelElement>;
65-
innerRef?: React.ForwardedRef<React.Ref<HTMLInputElement>>;
58+
onClick?: any;
59+
innerRef?: any;
6660
name?: string;
6761
theme?: DefaultNDSThemeType;
6862
"data-testid"?: string;
6963
};
7064

7165
const BaseToggle = ({
66+
disabled,
7267
onChange,
7368
onText,
7469
offText,
7570
className,
71+
required,
72+
error,
7673
id,
7774
labelText,
7875
requirementText,
7976
helpText,
8077
toggled,
8178
onClick,
8279
size,
83-
disabled = false,
84-
required = false,
85-
error = false,
8680
"data-testid": dataTestId,
8781
...props
8882
}: BaseToggleProps) => {
@@ -93,6 +87,7 @@ const BaseToggle = ({
9387
const componentSize = useComponentSize(size);
9488
const spaceProps = getSubset(props, propTypes.space);
9589
const restProps = omitSubset(props, propTypes.space);
90+
9691
return (
9792
<Field className={className} alignItems="flex-start" py="half" {...spaceProps}>
9893
<MaybeToggleTitle
@@ -101,7 +96,7 @@ const BaseToggle = ({
10196
requirementText={requirementText}
10297
helpText={helpText}
10398
>
104-
<ClickInputLabel size={componentSize} onClick={onClick} disabled={disabled} data-testid={dataTestId}>
99+
<ClickInputLabel size={componentSize} as="div" onClick={onClick} disabled={disabled} data-testid={dataTestId}>
105100
<ToggleButton
106101
id={id}
107102
checked={toggled}
@@ -143,10 +138,12 @@ const StatefulToggle = ({ defaultToggled, onClick, disabled, ...props }: Statefu
143138
return <BaseToggle toggled={toggled} onClick={handleClick} disabled={disabled} {...props} />;
144139
};
145140

146-
const Toggle = ({ toggled, ...props }: StatefulToggleProps) =>
141+
type ToggleProps = StatefulToggleProps;
142+
143+
const Toggle = ({ toggled, ...props }: ToggleProps) =>
147144
toggled === undefined ? <StatefulToggle {...props} /> : <BaseToggle toggled={toggled} {...props} />;
148145

149-
const ToggleComponent = React.forwardRef<React.Ref<HTMLInputElement>, StatefulToggleProps>((props, ref) => (
146+
const ToggleComponent = React.forwardRef<React.ComponentPropsWithRef<"input">, ToggleProps>((props, ref) => (
150147
<Toggle innerRef={ref} {...props} />
151148
));
152149

0 commit comments

Comments
 (0)