import { useLayoutEffect, useState } from "react"; import { View } from "react-native"; import stylesheet from "./stylesheet"; import { NCoreUIKitLocalize, NCoreUIKitTheme, PageContainer, SelectBox, TextInput, Button, 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"; import type { ITextInputProps } from "ncore-ui-kit"; import { Home as HomeIcon } from "lucide-react-native"; const TYPES: Array = [ "default", "danger", "warning", "question", "success", "info" ]; const VARIANTS: Array = [ "text", "hidden" ]; const SPREAD_BEHAVIOURS: Array = [ "baseline", "stretch", "free" ]; const TYPES_DATA = TYPES.map((item) => ({ __title: item as string, __key: item as string })); const VARIANTS_DATA = VARIANTS.map((item) => ({ __title: item as string, __key: item as string })); const TextInputPage = () => { const { radiuses, borders, spaces, colors } = NCoreUIKitTheme.useContext(); const { localize } = NCoreUIKitLocalize.useContext(); const navigation = useNavigation>(); const [ typeIndex, setTypeIndex ] = useState(0); const [ variantIndex, setVariantIndex ] = useState(0); const [ spreadIndex, setSpreadIndex ] = useState(0); const [ title, setTitle ] = useState(""); const [ isDisabled, setIsDisabled ] = useState(false); const [ showIcon, setShowIcon ] = useState(false); const [ isCleanEnabled, setIsCleanEnabled ] = useState(true); const [ isRequired, setIsRequired ] = useState(false); const [ isOptional, setIsOptional ] = useState(false); const [ val, setVal ] = useState(""); useLayoutEffect(() => { navigation.setOptions({ header: () => (
), headerShown: true }); }, []); return ( {localize("textInput-desc")} ( ) : undefined } title={ title || localize("textInput-exampleTitle") } placeholder={localize("textInput-placeholder")} spreadBehaviour={SPREAD_BEHAVIOURS[spreadIndex]} variant={VARIANTS[variantIndex]} isCleanEnabled={isCleanEnabled} type={TYPES[typeIndex]} isDisabled={isDisabled} isRequired={isRequired} isOptional={isOptional} onChangeText={setVal} value={val} /> { if (selectedItems.length > 0) { const index = TYPES.indexOf(selectedItems[0]!.__key as unknown as ITextInputProps["type"]); if (index !== -1) setTypeIndex(index); } }} title={localize("textInput-changeType")} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} spreadBehaviour="free" data={TYPES_DATA} /> { if (selectedItems.length > 0) { const index = VARIANTS.indexOf(selectedItems[0]!.__key as unknown as ITextInputProps["variant"]); if (index !== -1) setVariantIndex(index); } }} initialSelectedItems={VARIANTS_DATA[variantIndex] ? [VARIANTS_DATA[variantIndex]] : []} title={localize("textInput-changeVariant")} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} spreadBehaviour="free" data={VARIANTS_DATA} />