import { useLayoutEffect, useState } from "react"; import { View } from "react-native"; import stylesheet from "./stylesheet"; import { NCoreUIKitLocalize, NCoreUIKitTheme, PageContainer, CodeViewer, SelectBox, TextInput, Avatar, 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 { IAvatarProps } from "ncore-ui-kit"; const AVATAR_SIZES: Array = [ "small", "medium", "large", "xLarge", "xSmall" ]; const AVATAR_STATUS_INDICATOR_TYPES: Array = [ "online", "offline", "busy", "away", "idle" ]; const AVATAR_SIZES_DATA = AVATAR_SIZES.map((item) => ({ __title: item as string, __key: item as string })); const AVATAR_STATUS_INDICATOR_TYPES_DATA = AVATAR_STATUS_INDICATOR_TYPES.map( (item) => ({ __title: item as string, __key: item as string }), ); const AvatarPage = () => { const { radiuses, borders, spaces, colors } = NCoreUIKitTheme.useContext(); const { localize } = NCoreUIKitLocalize.useContext(); const navigation = useNavigation>(); const [ statusIndicatorIndex, setStatusIndicatorIndex ] = useState(1); const [ sizeIndex, setSizeIndex ] = useState(3); const [ isDisabled, setIsDisabled ] = useState(false); const [ isLoading, setIsLoading ] = useState(false); const [ imageUrl, setImageUrl ] = useState( "https://ncore.nibgat.space/assets/images/ncorelogo.png", ); const [ title, setTitle ] = useState("John Doe"); useLayoutEffect(() => { navigation.setOptions({ header: () =>
, headerShown: true }); }, []); return {localize("avatar-desc")} {localize("usage")} "} language="tsx" /> { if (selectedItems.length > 0) { const index = AVATAR_SIZES.indexOf( selectedItems[0]! .__key as IAvatarProps["size"], ); if (index !== -1) setSizeIndex(index); } }} initialSelectedItems={ AVATAR_SIZES_DATA[sizeIndex] ? [ AVATAR_SIZES_DATA[sizeIndex]! ] : [] } titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} title={localize("change-size")} data={AVATAR_SIZES_DATA} spreadBehaviour="free" /> { if (selectedItems.length > 0) { const index = AVATAR_STATUS_INDICATOR_TYPES.indexOf( selectedItems[0]! .__key as IAvatarProps["statusIndicatorType"], ); if (index !== -1) setStatusIndicatorIndex(index); } }} initialSelectedItems={ AVATAR_STATUS_INDICATOR_TYPES_DATA[ statusIndicatorIndex ] ? [ AVATAR_STATUS_INDICATOR_TYPES_DATA[ statusIndicatorIndex ]! ] : [] } data={AVATAR_STATUS_INDICATOR_TYPES_DATA} title={localize("avatar-changeStatus")} titleExtractor={(item) => item.__title} keyExtractor={(item) => item.__key} spreadBehaviour="free" /> { setIsLoading(!isLoading); }} spreadBehaviour="free" isActive={isLoading} /> { setIsDisabled(!isDisabled); }} spreadBehaviour="free" isActive={isDisabled} /> ; }; export default AvatarPage;