import { useLayoutEffect, useState } from "react"; import { View } from "react-native"; import stylesheet from "./stylesheet"; import { type ICheckBoxProps, NCoreUIKitLocalize, NCoreUIKitTheme, PageContainer, CodeViewer, SelectBox, TextInput, CheckBox, Header, Switch, Text } from "ncore-ui-kit"; import { useNavigation } from "@react-navigation/native"; import type RootStackParamList from "../../../navigation/type"; import type { NativeStackNavigationProp } from "@react-navigation/native-stack"; const CHECK_BOX_TYPES: Array = [ "primary", "danger", "warning", "success", "info" ]; const CHECK_BOX_SPREAD_BEHAVIOURS: Array = [ "baseline", "stretch", "free" ]; const CHECK_BOX_TYPES_DATA = CHECK_BOX_TYPES.map((item) => ({ __title: item as string, __key: item as string })); const CHECK_BOX_SPREAD_BEHAVIOURS_DATA = CHECK_BOX_SPREAD_BEHAVIOURS.map( (item) => ({ __title: item as string, __key: item as string }), ); type IsCheckedType = "checked" | "partially" | null; const IS_CHECKED_TYPES: Array = [ "partially", "checked", null ]; const IS_CHECKED_TYPES_DATA = IS_CHECKED_TYPES.map((item) => ({ __title: String(item), __key: String(item) })); const CheckBoxPage = () => { const { radiuses, borders, spaces, colors } = NCoreUIKitTheme.useContext(); const { localize } = NCoreUIKitLocalize.useContext(); const navigation = useNavigation>(); const [ spreadIndex, setSpreadIndex ] = useState(0); const [ typeIndex, setTypeIndex ] = useState(0); const [ isCheckedIndex, setIsCheckedIndex ] = useState(0); const [ isDisabled, setIsDisabled ] = useState(false); const [ isLoading, setIsLoading ] = useState(false); const [ subTitle, setSubTitle ] = useState("Subtitle"); const [ isFlip, setIsFlip ] = useState(false); const [ title, setTitle ] = useState("CheckBox Title"); useLayoutEffect(() => { navigation.setOptions({ header: () =>
, headerShown: true }); }, []); return {localize("checkBox-desc")} { setIsCheckedIndex((prev) => (prev === 0 ? 2 : 0)); }} spreadBehaviour={ CHECK_BOX_SPREAD_BEHAVIOURS[spreadIndex] } isChecked={IS_CHECKED_TYPES[isCheckedIndex]} type={CHECK_BOX_TYPES[typeIndex]} isDisabled={isDisabled} isLoading={isLoading} subTitle={subTitle} isFlip={isFlip} title={title} /> {localize("usage")} "} language="tsx" /> { if (selectedItems.length > 0) { const index = CHECK_BOX_TYPES.indexOf( selectedItems[0]! .__key as ICheckBoxProps["type"], ); if (index !== -1) setTypeIndex(index); } }} initialSelectedItems={ CHECK_BOX_TYPES_DATA[typeIndex] ? [ CHECK_BOX_TYPES_DATA[typeIndex]! ] : [] } title={localize("checkBox-changeType")} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} data={CHECK_BOX_TYPES_DATA} spreadBehaviour="free" /> { if (selectedItems.length > 0) { const index = CHECK_BOX_SPREAD_BEHAVIOURS.indexOf( selectedItems[0]! .__key as ICheckBoxProps["spreadBehaviour"], ); if (index !== -1) setSpreadIndex(index); } }} initialSelectedItems={ CHECK_BOX_SPREAD_BEHAVIOURS_DATA[spreadIndex] ? [ CHECK_BOX_SPREAD_BEHAVIOURS_DATA[ spreadIndex ]! ] : [] } title={localize("checkBox-changeSpread")} data={CHECK_BOX_SPREAD_BEHAVIOURS_DATA} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} spreadBehaviour="free" /> { if (selectedItems.length > 0) { const index = IS_CHECKED_TYPES_DATA.findIndex( (item) => item.__key === selectedItems[0]!.__key, ); if (index !== -1) setIsCheckedIndex(index); } }} initialSelectedItems={ IS_CHECKED_TYPES_DATA[isCheckedIndex] ? [ IS_CHECKED_TYPES_DATA[isCheckedIndex]! ] : [] } title={localize("checkBox-changeIsChecked")} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} data={IS_CHECKED_TYPES_DATA} spreadBehaviour="free" /> { setIsLoading(!isLoading); }} spreadBehaviour="free" isActive={isLoading} /> { setIsDisabled(!isDisabled); }} spreadBehaviour="free" isActive={isDisabled} /> { setIsFlip(!isFlip); }} spreadBehaviour="free" isActive={isFlip} /> ; }; export default CheckBoxPage;