57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
// Metro module 9018 (f9019).
|
|
import { Pressable, View } from "react-native";
|
|
import { createStyles } from "../../Styles/native/createStyles";
|
|
import { useCheckboxA11yNative } from "../../../../_bundle/Module3907";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { Stack } from "../../Stack/native/Stack.native";
|
|
import { FormCheckbox } from "../../Forms/native/FormCheckbox.native";
|
|
import { Text } from "../../Text/native/Text";
|
|
const useStyles = createStyles({
|
|
textContainer: {
|
|
flex: 1
|
|
},
|
|
labelContainer: {
|
|
minHeight: 24,
|
|
justifyContent: "center"
|
|
}
|
|
});
|
|
export function Checkbox(props) {
|
|
const { label, description } = props;
|
|
let required = props.required;
|
|
const { checked, onToggle } = props;
|
|
const styles = useStyles();
|
|
const checkboxA11yNative = useCheckboxA11yNative({
|
|
checked
|
|
});
|
|
const { accessibilityRole, accessibilityState } = checkboxA11yNative;
|
|
let r11 = "";
|
|
const r42 = label + (required ? ` (${intl.string(t.EkokLy)})` : "");
|
|
if (description != null) {
|
|
r11 = `, ${description}`;
|
|
}
|
|
const props2 = {
|
|
accessibilityRole,
|
|
accessibilityLabel: r42 + r11,
|
|
accessibilityState,
|
|
onPress: () => onToggle(!checked),
|
|
children: null
|
|
};
|
|
const r58 = [<FormCheckbox checked={checked} />, ,];
|
|
const r67 = [label, ,];
|
|
if (required) {
|
|
required = <Text variant="text-md/bold" color="text-feedback-critical" aria-label={intl.string(t.EkokLy)}>
|
|
{" "}
|
|
*
|
|
</Text>;
|
|
}
|
|
r67[1] = required;
|
|
r58[1] = <View style={styles.textContainer}>
|
|
<View style={styles.labelContainer}>
|
|
<Text variant="text-md/medium">{r67}</Text>
|
|
</View>
|
|
{description != null && <Text variant="text-sm/normal" color="text-subtle">{description}</Text>}
|
|
</View>;
|
|
props2.children = <Stack direction="horizontal">{r58}</Stack>;
|
|
return <Pressable {...props2} />;
|
|
}
|