Skip to content

Commit

Permalink
refactor: removing labelled by children in favor of label prop (#700)
Browse files Browse the repository at this point in the history
  • Loading branch information
zchenwei authored Nov 15, 2021
1 parent c052abe commit 7bffae2
Show file tree
Hide file tree
Showing 19 changed files with 186 additions and 215 deletions.
5 changes: 2 additions & 3 deletions .changeset/bump-versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,10 @@
<CheckboxField
errorMessage={validationErrors.acknowledgement}
hasError={!!validationErrors.acknowledgement}
label="I agree with the Terms & Conditions"
name="acknowledgement"
value="yes"
>
I agree with the Terms & Conditions
</CheckboxField>
/>
</>
);
},
Expand Down
21 changes: 16 additions & 5 deletions docs/src/components/CheckboxFieldPropControls.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from 'react';
import * as React from 'react';

import {
CheckboxField,
Expand All @@ -17,6 +17,9 @@ export interface CheckboxFieldPropControlsProps extends CheckboxFieldProps {
value: React.SetStateAction<CheckboxFieldProps['isDisabled']>
) => void;
setLabel: (value: React.SetStateAction<CheckboxFieldProps['label']>) => void;
setLabelHidden: (
value: React.SetStateAction<CheckboxFieldProps['labelHidden']>
) => void;
setSize: (value: React.SetStateAction<CheckboxFieldProps['size']>) => void;
}

Expand All @@ -29,6 +32,8 @@ export const CheckboxFieldPropControls: CheckboxFieldPropControlsInterface = ({
setIsDisabled,
label,
setLabel,
labelHidden,
setLabelHidden,
size,
setSize,
}) => {
Expand All @@ -40,7 +45,7 @@ export const CheckboxFieldPropControls: CheckboxFieldPropControlsInterface = ({
name="label"
label="label"
labelHidden
value={label}
value={label as string}
onChange={(e) =>
setLabel(e.target.value as CheckboxFieldProps['label'])
}
Expand All @@ -67,9 +72,15 @@ export const CheckboxFieldPropControls: CheckboxFieldPropControlsInterface = ({
value="true"
checked={isDisabled}
onChange={(e) => setIsDisabled(e.target.checked)}
>
isDisabled
</CheckboxField>
label="isDisabled"
/>
<CheckboxField
name="label-hidden"
value="true"
checked={labelHidden}
onChange={(e) => setLabelHidden(e.target.checked)}
label="labelHidden"
/>
</DemoBox>
);
};
5 changes: 2 additions & 3 deletions docs/src/components/ExpanderPropControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,8 @@ export const ExpanderPropControls: React.FC<ExpanderPropControlsProps> = ({
checked={isCollapsible}
value="yes"
onChange={(event) => setIsCollapsible(event.target.checked)}
>
isCollapsible
</CheckboxField>
label="isCollapsible"
/>
) : null}
</DemoBox>
);
Expand Down
15 changes: 6 additions & 9 deletions docs/src/components/SliderFieldPropControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,25 +149,22 @@ export const SliderFieldPropControls: React.FC<SliderFieldPropControlsProps> =
value="yes"
checked={isDisabled}
onChange={(event) => setIsDisabled(event.target.checked)}
>
isDisabled
</CheckboxField>
label="isDisabled"
/>
<CheckboxField
name="value-hidden"
value="yes"
checked={isValueHidden}
onChange={(event) => setIsValueHidden(event.target.checked)}
>
isValueHidden
</CheckboxField>
label="isValueHidden"
/>
<CheckboxField
name="label-hidden"
value="yes"
checked={labelHidden}
onChange={(event) => setLabelHidden(event.target.checked)}
>
labelHidden
</CheckboxField>
label="labelHidden"
/>
</DemoBox>
);
};
5 changes: 2 additions & 3 deletions docs/src/components/StepperFieldPropControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@ export const StepperFieldPropControls: React.FC<StepperFieldPropControlsProps> =
value="yes"
checked={labelHidden}
onChange={(event) => setLabelHidden(event.target.checked)}
>
labelHidden
</CheckboxField>
label="labelHidden"
/>
</DemoBox>
);
5 changes: 2 additions & 3 deletions docs/src/components/ToggleButtonPropControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,8 @@ export const ToggleButtonPropControls: ToggleButtonPropControlsInterface = ({
value="yes"
checked={isDisabled}
onChange={(event) => setIsDisabled(event.target.checked)}
>
isDisabled
</CheckboxField>
label="isDisabled"
/>
</DemoBox>
);
};
19 changes: 12 additions & 7 deletions docs/src/components/useCheckboxFieldProps.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useState } from 'react';
import * as React from 'react';

import { CheckboxFieldProps } from '@aws-amplify/ui-react';

Expand All @@ -9,22 +9,25 @@ interface UseCheckboxFieldProps {
}

export const useCheckboxFieldProps: UseCheckboxFieldProps = (initialValues) => {
const [checked, setChecked] = useState<CheckboxFieldProps['checked']>(
const [checked, setChecked] = React.useState<CheckboxFieldProps['checked']>(
initialValues.checked
);
const [isDisabled, setIsDisabled] = useState<
const [isDisabled, setIsDisabled] = React.useState<
CheckboxFieldProps['isDisabled']
>(initialValues.isDisabled);
const [label, setLabel] = useState<CheckboxFieldProps['label']>(
const [label, setLabel] = React.useState<CheckboxFieldProps['label']>(
initialValues.label
);
const [name, setName] = useState<CheckboxFieldProps['name']>(
const [labelHidden, setLabelHidden] = React.useState<
CheckboxFieldProps['labelHidden']
>(initialValues.labelHidden);
const [name, setName] = React.useState<CheckboxFieldProps['name']>(
initialValues.size
);
const [size, setSize] = useState<CheckboxFieldProps['size']>(
const [size, setSize] = React.useState<CheckboxFieldProps['size']>(
initialValues.size
);
const [value, setValue] = useState<CheckboxFieldProps['value']>(
const [value, setValue] = React.useState<CheckboxFieldProps['value']>(
initialValues.size
);

Expand All @@ -36,6 +39,8 @@ export const useCheckboxFieldProps: UseCheckboxFieldProps = (initialValues) => {
setIsDisabled,
label,
setLabel,
labelHidden,
setLabelHidden,
name,
setName,
size,
Expand Down
5 changes: 2 additions & 3 deletions docs/src/pages/components/authenticator/index.page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,8 @@ The following example customizes the Sign Up screen with:
hasError={!!validationErrors.acknowledgement}
name="acknowledgement"
value="yes"
>
I agree with the Terms & Conditions
</CheckboxField>
label="I agree with the Terms & Conditions"
/>
</>
);
},
Expand Down
14 changes: 5 additions & 9 deletions docs/src/pages/components/checkboxfield/demo.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
import React, { useState } from 'react';

import { CheckboxField, Flex } from '@aws-amplify/ui-react';

import { CheckboxFieldPropControls } from '@/components/CheckboxFieldPropControls';
import { useCheckboxFieldProps } from '@/components/useCheckboxFieldProps';

export const Demo: React.FC = () => {
const label = 'Subscribe';
export const Demo = () => {
const props = useCheckboxFieldProps({
label,
children: label,
label: 'Subscribe',
name: 'subscribe',
value: 'yes',
});
Expand All @@ -21,9 +17,9 @@ export const Demo: React.FC = () => {
value={props.value}
isDisabled={props.isDisabled}
size={props.size}
>
{props.label}
</CheckboxField>
label={props.label}
labelHidden={props.labelHidden}
/>
</Flex>
);
};
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
import React, { useState } from 'react';
import * as React from 'react';

import { CheckboxField } from '@aws-amplify/ui-react';

export const ControlledCheckbox: React.FC = () => {
const [checked, setChecked] = useState(false);
export const ControlledCheckbox = () => {
const [checked, setChecked] = React.useState(false);
return (
<CheckboxField
name="subscribe-controlled"
value="yes"
checked={checked}
onChange={(e) => setChecked(e.target.checked)}
>
Subscribe
</CheckboxField>
label="Subscribe"
/>
);
};
15 changes: 15 additions & 0 deletions docs/src/pages/components/checkboxfield/examples/valueExample.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { CheckboxField, Button } from '@aws-amplify/ui-react';
import * as React from 'react';

export const ValueExample = () => {
const onSubmit = (event) => {
event.preventDefault();
alert(event.target.subscribe.value);
};
return (
<form onSubmit={onSubmit}>
<CheckboxField label="Subscribe" name="subscribe" value="yes" />
<Button type="submit">Submit</Button>
</form>
);
};
Loading

0 comments on commit 7bffae2

Please sign in to comment.