@chem-po/react-native 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +228 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/box/Center.tsx","../src/components/box/CollapseHorizontal.tsx","../src/components/box/ContentBox.tsx","../src/components/box/DropShadow.tsx","../src/components/text/Txt.tsx","../src/components/box/Expandable.tsx","../src/components/box/ExpandOnMount.tsx","../src/components/box/FullSizeContainer.tsx","../src/components/button/DeleteButton.tsx","../src/components/button/LoadingButton.tsx","../src/components/button/Toggle.tsx","../src/components/feed/context.tsx","../src/styles/fill.ts","../src/components/loading/Loading.tsx","../src/components/feed/FeedContentPane.tsx","../src/components/feed/hooks.ts","../src/components/loading/CircularProgress.tsx","../src/components/overlay/ImageViewOverlay.tsx","../src/components/loading/LoadingImage.tsx","../src/components/loading/LoadingSwitch.tsx","../src/components/feed/MediaFeedBackground.tsx","../src/components/feed/MediaFeedRefresh.tsx","../src/components/feed/MediaFeed.tsx","../src/components/form/Condition.tsx","../src/components/form/input/boolean/index.tsx","../src/components/form/input/InputSlider.tsx","../src/components/form/input/hooks/useInputImperativeHandle.ts","../src/components/form/input/color/index.tsx","../src/components/form/input/common/InputClearButton.tsx","../src/components/form/input/hooks/useInputColor.ts","../src/components/form/input/date/index.tsx","../src/components/form/input/datetime/index.tsx","../src/components/form/input/file/index.tsx","../src/components/form/input/multipleSelect/index.tsx","../src/components/form/input/hooks/useInputStyle.ts","../src/components/form/input/number/index.tsx","../src/components/form/input/select/index.tsx","../src/components/form/input/socialMedia/index.tsx","../src/components/form/input/text/index.tsx","../src/components/form/input/text/textarea.tsx","../src/components/form/input/time/index.tsx","../src/components/form/input/input.tsx","../src/components/form/Field.tsx","../src/components/form/UploadProgress/index.tsx","../src/components/form/FormFooter.tsx","../src/components/form/input/Editable.tsx","../src/components/form/view/file.tsx","../src/components/form/view/multipleSelect.tsx","../src/components/form/view/select.tsx","../src/components/form/view/index.tsx","../src/components/form/input/StandaloneInput.tsx","../src/components/form/Form.tsx","../src/components/theme/colorMode/DarkModeToggle.tsx","../src/constants/toast.ts","../src/hooks/useThemeState.ts","../src/store/useScreen.ts","../src/contexts/root.tsx"],"names":["Center","forwardRef","style","props","ref","jsx","View","styles","AnimatedCenter","Animated","StyleSheet","CollapseHorizontal","width","children","active","duration","styleProp","widthValue","useRef","opacityValue","useEffect","useMemo","ContentBoxBase","ContentBox","DropShadow","Platform","Txt","color","useTextColor","Text","Expandable","header","initExpanded","nested","alwaysExpanded","iconColor","footer","isOpenProp","onCloseProp","onOpenProp","isOpen","setIsOpen","React","heightAnim","rotateAnim","onClose","useCallback","onOpen","handleOpenClick","rotate","jsxs","Pressable","ExpandOnMount","animateOpacity","isIn","onExited","mounted","setMounted","useState","bodyHeight","setBodyHeight","bodyRef","expanded","opacityAnim","x","y","height","animations","FullSizeContainer","setWidth","setHeight","handleLayout","event","newWidth","newHeight","FullSizeContext","createContext","FullSizeProvider","contextValue","useFullSize","useContext","defaultAlertBodyText","DeleteConfirmAlert","confirmActive","onCancel","onConfirm","body","actionName","actionLoading","itemName","Modal","TouchableOpacity","ActivityIndicator","DeleteButton","onDelete","noConfirm","alertBody","text","deleteLoading","setDeleteLoading","setConfirmActive","confirmTimer","isMounted","contentOpacity","loaderOpacity","animateLoading","isLoading","handleDelete","err","Toast","Fragment","e","Ionicons","LoadingButton","onPress","textStyle","colorProp","icon","disabled","loading","setLoading","handlePress","fallbackColor","ToggleButton","selected","Render","disabledMessage","size","Toggle","value","onChange","options","background","useTheme","option","MediaFeedContext","MediaFeedProvider","curr","contextData","useMediaFeed","sharedProps","fill","LottieLoadingLogo","speed","inFeed","asset","colorMode","animationData","LottieView","SVGLoadingLogo","svg","Image","LoadingBody","useAppAssets","LoadingLogo","Loading","inBox","containerStyle","LoadingOverlay","bgColor","getContentScale","status","getContentY","contentSize","cHeight","FeedContentPane","id","collectionPath","onItemLoad","RenderItem","offsetY","enterStatus","useScreen","scale","baseY","docPath","item","useDocument","newScale","updatedY","DEFAULT_LIMIT","fetch","onUpdatePanels","limit","authRequired","ids","setIds","idIdx","setIdIdx","user","useAuth","s","refreshing","setRefreshing","error","setError","itemLoading","setItemLoading","direction","setDirection","fetchingId","idsRef","updateCurr","updateNext","updatePrev","fetchIds","startBefore","startAfter","isPrefetch","data","firstId","secondId","newLastId","getNextId","currIdx","currIds","nextIds","nextIdx","fetchedNextId","getPrevId","prevIds","prevIdx","newFirstId","fetchedPrevIds","fetchedPrevId","goNext","newPrev","nextIdData","nextId","newNextId","goPrev","newNext","prevIdData","prevId","newPrevId","refresh","initFetchIds","canGoPrev","canGoNext","CircularProgress","trackColor","animating","visible","viewStyle","defaultTrackColor","useColorModeValue","opacity","ImageViewOverlay","src","screenWidth","screenHeight","imageSize","setImageSize","ratio","h","w","onLoadStart","onLoad","naturalWidth","naturalHeight","emptyPng","LoadingImage","loadingOverride","noFullView","buttonFullView","imageLoading","setImageLoading","imageRef","viewing","setViewing","useMounted","handleImageLoad","prevSrc","setPrevSrc","ImageComponent","LoadingSwitch","label","setIsLoading","reportComplete","fetchedOn","buffer","handleChange","newValue","Switch","backgroundStyle","FillBackground","ImageBackground","FileValueBackground","getBackgroundValue","url","useObjectUrl","usedIndex","index","setIndex","url1","setUrl1","url2","setUrl2","UrlBackground","getBackgroundUrl","MediaFeedBackground","WINDOW","MediaFeedRefresh","canRefresh","dist","baseProgress","progress","progressRoot","yConstrained","finalScale","Icon","useUpdatePanels","setItems","updated","MediaFeed","defaultBackground","swipeDisabled","theme","contentRef","containerRef","panels","setPanels","onNewData","backgroundRef","pointerDown","dragStart","onDragStart","onDragEnd","maxY","minY","oY","onDragMove","oX","panGesture","Gesture","setCurr","handleItemLoad","p","GestureDetector","panel","Condition","path","condition","useWatch","BaseCheckboxComponent","field","input","placeholder","useImperativeHandle","CheckboxBooleanComponent","BaseSwitchComponent","SwitchBooleanComponent","BaseBooleanComponent","BooleanComponent","InputSlider","gradient","minimumValue","maximumValue","Slider","useInputImperativeHandle","inputRef","ColorComponentSlider","ColorComponent","meta","withAlpha","defaultValue","key","val","withDefault","asHex","colorValueToHex","gradients","updatedRed","updatedGreen","updatedBlue","updatedAlpha","InputClearButton","isActive","marginRight","useIconColor","borderColor","useBorderColor","DateInputClearButton","useInputColor","textColor","placeholderColor","usePlaceholderColor","DateInput","onFocus","onBlur","minDate","maxDate","optional","date","showDialog","inputColor","minDateObj","maxDateObj","getDateString","Portal","DatePickerModal","d","DateTimeInput","showDatePicker","setShowDatePicker","showTimePicker","setShowTimePicker","selectedDate","handleDateChange","newDate","handleTimeChange","hours","minutes","handleDismiss","formattedValue","getDateTimeString","hourMinute","TimePickerModal","generateAccept","accept","NoFileView","hasUpload","FileView","imageOptions","storagePath","dataUrl","FileComponent","handlePickFile","result","fileExtension","fileName","isImageField","imgOptions","MultipleSelectComponent","inEditable","renderOption","getOptionKey","useColorMode","handleOptionPress","v","o","inputPaddingY","inputPaddingX","fontSize","useInputStyle","NumberComponent","prefix","_","type","endsWith","setEndsWith","displayed","TextInput","num","BaseCurrencyAmountComponent","CurrencyAmountComponent","BaseSelectComponent","buttonLayout","setButtonLayout","buttonRef","key1","key2","handleButtonLayout","_x","_y","pageX","pageY","renderOptionText","isSelected","getKey","menuBg","useBackgroundColor","selectedOptionBg","ScrollView","SelectComponent","siteToIcon","SocialMediaSiteInput","site","isModalVisible","onModalClose","handle","getHandle","displayedText","SocialMediaComponent","sites","selectedSite","setSelectedSite","_curr","rest","TextAreaComponent","inputProps","TextComponent","isHidden","setIsHidden","TimeInput","setVisible","timeString","padZeros","amPm","m","Components","InputBase","touched","useThemeValue","activeColor","errorColor","shadowColorAnim","displayedError","shadowColor","animatedShadowColor","_type","showPlaceholder","bg","animatedStyles","Component","paddingBottom","staticStyles","Input","FieldComponentBase","name","control","getOnChange","fieldBlur","useField","Controller","_r","FieldComponent","UploadProgress","uploads","asArr","upload","palette","CancelButton","onBack","SubmitButton","onSubmitClick","submitting","FormErrorView","formError","useChempoForm","FormFooter","onSubmit","renderFooter","buttonText","valid","useFormState","FileFieldView","noLabel","MultipleSelectFieldView","colorScheme","useColorScheme","DefaultRenderOption","SelectFieldView","customRender","DefaultFieldView","formatted","format","formatField","FieldView","StandaloneInputBase","useStandaloneInput","StandaloneInput","Editable","initValue","onEditClose","onEditOpen","setValue","editHovered","handleEditOpen","handleEditClose","isEditing","setEditHovered","submit","parse","useEditable","alwaysEditing","editingBorderColor","ListFieldInput","emptyData","isField","isListField","useFormContext","fields","append","remove","useFieldArray","formField","idx","FormElement","childName","childField","f","b","ListFieldView","itemField","FormElementView","updateField","useDataView","DataView","fieldName","setIsEditing","DataViewProvider","Form","FieldMapForm","onSubmitProp","useSubmitDataProps","useSubmitData","useFormSubmit","FieldForm","fieldMap","ChempoFormProvider","DarkModeToggle","toggleColorMode","isDark","iconName","AbsoluteDarkModeToggle","nativeToast","Notifier","title","message","NotifierComponents","componentProps","useThemeState","initialColorMode","setColorMode","initializeScreen","onDimensionsChange","Dimensions","subscription","registerTranslation","en","ChempoNativeProvider","themeProp","useThemeProps","ChempoProvider"],"mappings":"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","file":"index.mjs","sourcesContent":["import { forwardRef } from 'react'\nimport { Animated, StyleSheet, View, ViewProps } from 'react-native'\n\nexport type CenterProps = ViewProps\nexport const Center = forwardRef<View, CenterProps>(({ style, ...props }, ref) => {\n return <View ref={ref} style={[styles.center, style]} {...props} />\n})\n\nexport const AnimatedCenter = forwardRef<View, CenterProps>(({ style, ...props }, ref) => {\n return <Animated.View ref={ref} style={[styles.center, style]} {...props} />\n})\n\nconst styles = StyleSheet.create({\n center: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { useEffect, useMemo, useRef } from 'react'\nimport { Animated, StyleProp, ViewStyle } from 'react-native'\nimport { AnimatedCenter, CenterProps } from './Center'\n\nexport const CollapseHorizontal = ({\n width,\n children,\n active,\n duration = 400,\n style: styleProp,\n ...props\n}: CenterProps & { width: number; active: boolean; duration?: number }) => {\n const widthValue = useRef(new Animated.Value(active ? width : 0)).current\n const opacityValue = useRef(new Animated.Value(active ? 1 : 0)).current\n\n useEffect(() => {\n Animated.parallel([\n Animated.timing(widthValue, {\n toValue: active ? width : 0,\n duration,\n useNativeDriver: false,\n }),\n Animated.timing(opacityValue, {\n toValue: active ? 1 : 0,\n duration,\n useNativeDriver: true,\n }),\n ]).start()\n }, [active, widthValue, opacityValue, width, duration])\n\n const style: StyleProp<ViewStyle> = useMemo(() => {\n return {\n width: widthValue,\n opacity: opacityValue,\n overflow: 'hidden',\n }\n }, [widthValue, opacityValue])\n\n return (\n <AnimatedCenter style={[style, styleProp]} {...props}>\n {children}\n </AnimatedCenter>\n )\n}\n","import { forwardRef } from 'react'\nimport { StyleSheet, View, ViewProps } from 'react-native'\n\nconst ContentBoxBase = (props: ViewProps, ref: any) => {\n return <View ref={ref} style={[styles.container, props.style]} {...props} />\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#FFFFFF',\n padding: 12,\n borderRadius: 6,\n shadowColor: '#000000',\n shadowOffset: {\n width: 1,\n height: 1,\n },\n shadowOpacity: 0.4,\n shadowRadius: 4,\n elevation: 4,\n },\n})\n\nexport const ContentBox = forwardRef<View, ViewProps>(ContentBoxBase)\n","import { PropsWithChildren } from 'react'\nimport { Platform, StyleProp, View, ViewStyle } from 'react-native'\n\n// Method 1: Wrapping in a View\nexport const DropShadow = ({\n children,\n style,\n}: PropsWithChildren<{ style: StyleProp<ViewStyle> }>) => (\n <View\n style={[\n {\n ...Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n },\n android: {\n elevation: 5,\n },\n }),\n },\n style,\n ]}>\n {children}\n </View>\n)\n","import { useTextColor } from '@chem-po/react'\nimport { Text, TextProps } from 'react-native'\n\nexport const Txt = ({ children, ...props }: TextProps) => {\n const color = useTextColor()\n return (\n <Text {...props} style={[{ color }, props.style]}>\n {children}\n </Text>\n )\n}\n","import React, { FC, PropsWithChildren, useCallback, useEffect, useRef } from 'react'\nimport { Animated, Pressable, StyleSheet, View, ViewStyle } from 'react-native'\nimport { Txt } from '../text/Txt'\nimport { AnimatedCenter } from './Center'\ntype ExpandableProps = PropsWithChildren<{\n header: string | FC<{ isOpen: boolean; onClose: () => void }>\n footer?: FC<{ isOpen: boolean; onClose: () => void }>\n nested?: boolean\n alwaysExpanded?: boolean\n initExpanded?: boolean\n isOpen?: boolean\n onClose?: () => void\n iconColor?: string\n onOpen?: () => void\n style?: ViewStyle\n}>\n\nexport const Expandable = ({\n header,\n children,\n initExpanded = false,\n nested,\n alwaysExpanded,\n iconColor = '#000',\n footer,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n style,\n}: ExpandableProps) => {\n const [isOpen, setIsOpen] = React.useState(alwaysExpanded ?? initExpanded)\n const heightAnim = useRef(new Animated.Value(0)).current\n const rotateAnim = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n if (typeof isOpenProp !== 'undefined') {\n setIsOpen(isOpenProp)\n }\n }, [isOpenProp])\n\n const onClose = useCallback(() => {\n setIsOpen(false)\n onCloseProp?.()\n }, [onCloseProp])\n\n const onOpen = useCallback(() => {\n setIsOpen(true)\n onOpenProp?.()\n }, [onOpenProp])\n\n const handleOpenClick = useCallback(() => {\n if (alwaysExpanded) return\n if (isOpen) {\n onClose()\n } else {\n onOpen()\n }\n }, [alwaysExpanded, onOpen, onClose, isOpen])\n\n useEffect(() => {\n Animated.parallel([\n Animated.timing(heightAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 300,\n useNativeDriver: false,\n }),\n Animated.timing(rotateAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 300,\n useNativeDriver: true,\n }),\n ]).start()\n }, [isOpen, heightAnim, rotateAnim])\n\n const rotate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '180deg'],\n })\n\n return (\n <View style={[styles.container, style]}>\n <Pressable onPress={handleOpenClick} style={styles.header}>\n <View style={styles.headerContent}>\n {typeof header === 'string' ? (\n <Txt style={styles.headerText}>{header}</Txt>\n ) : (\n header({ isOpen, onClose })\n )}\n </View>\n {!alwaysExpanded && (\n <Animated.Text style={[styles.arrow, { transform: [{ rotate }], color: iconColor }]}>\n ▼\n </Animated.Text>\n )}\n </Pressable>\n\n <AnimatedCenter\n style={[\n styles.content,\n nested && styles.nested,\n {\n maxHeight: heightAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1000],\n }),\n },\n ]}>\n {children}\n </AnimatedCenter>\n\n {footer?.({ isOpen, onClose })}\n </View>\n )\n}\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n header: {\n flexDirection: 'row',\n padding: 8,\n alignItems: 'center',\n },\n headerContent: {\n flex: 1,\n },\n headerText: {\n fontWeight: '600',\n color: '#666',\n },\n arrow: {\n fontSize: 12,\n marginLeft: 8,\n },\n content: {\n width: '100%',\n overflow: 'hidden',\n },\n nested: {\n borderLeftWidth: 4,\n borderLeftColor: 'rgba(0,0,0,0.2)',\n },\n})\n","import { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport { Animated, View, ViewProps } from 'react-native'\n\nexport const ExpandOnMount: FC<\n ViewProps & { in?: boolean; animateOpacity?: boolean; duration?: number; onExited?: () => void }\n> = ({ animateOpacity, duration = 300, children, in: isIn = true, onExited, style, ...props }) => {\n const [mounted, setMounted] = useState(false)\n useEffect(() => {\n setMounted(true)\n }, [])\n\n const [bodyHeight, setBodyHeight] = useState<number>(0)\n const bodyRef = useRef<View>(null)\n\n const expanded = useMemo(() => mounted && isIn, [isIn, mounted])\n\n const heightAnim = useRef(new Animated.Value(0)).current\n const opacityAnim = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n if (bodyRef.current) {\n bodyRef.current.measure((x, y, width, height) => {\n setBodyHeight(height)\n })\n }\n }, [children])\n\n useEffect(() => {\n const animations = [\n Animated.timing(heightAnim, {\n toValue: expanded ? bodyHeight : 0,\n duration,\n useNativeDriver: false,\n }),\n ]\n\n if (animateOpacity) {\n animations.push(\n Animated.timing(opacityAnim, {\n toValue: expanded ? 1 : 0,\n duration,\n delay: expanded ? duration : 0,\n useNativeDriver: true,\n }),\n )\n }\n\n Animated.parallel(animations).start(() => {\n if (!expanded && onExited) {\n onExited()\n }\n })\n }, [expanded, bodyHeight, duration, heightAnim, opacityAnim, animateOpacity, onExited])\n\n return (\n <Animated.View\n style={[\n {\n overflow: 'hidden',\n width: '100%',\n height: heightAnim,\n },\n style,\n ]}\n {...props}>\n <View\n ref={bodyRef}\n style={[{ width: '100%' }, animateOpacity && { opacity: opacityAnim }, style]}\n {...props}>\n {children}\n </View>\n </Animated.View>\n )\n}\n","import { createContext, FC, useCallback, useContext, useMemo, useRef, useState } from 'react'\nimport { View, ViewProps } from 'react-native'\n\nexport const FullSizeContainer = ({\n children,\n ...props\n}: Omit<ViewProps, 'children'> & { children: FC<{ width: number; height: number }> }) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<View>(null)\n const handleLayout = useCallback((event: any) => {\n const { width: newWidth, height: newHeight } = event.nativeEvent.layout\n setWidth(newWidth)\n setHeight(newHeight)\n }, [])\n\n return (\n <View\n ref={ref}\n {...props}\n style={[{ width: '100%', height: '100%' }, props.style]}\n onLayout={handleLayout}>\n {children({ width, height })}\n </View>\n )\n}\n\ninterface FullSizeContextType {\n width: number\n height: number\n}\n\nconst FullSizeContext = createContext<FullSizeContextType>({\n width: 0,\n height: 0,\n})\n\n// same as FullSizeContainer, but provides the width and height in a context instead of a render prop\nexport const FullSizeProvider = ({ children, ...props }: ViewProps) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<View>(null)\n const handleLayout = useCallback((event: any) => {\n const { width: newWidth, height: newHeight } = event.nativeEvent.layout\n setWidth(newWidth)\n setHeight(newHeight)\n }, [])\n\n const contextValue = useMemo(() => ({ width, height }), [width, height])\n\n return (\n <View\n ref={ref}\n {...props}\n style={[{ width: '100%', height: '100%' }, props.style]}\n onLayout={handleLayout}>\n <FullSizeContext.Provider value={contextValue}>{children}</FullSizeContext.Provider>\n </View>\n )\n}\n\nexport const useFullSize = () => useContext(FullSizeContext)\n","import { Ionicons } from '@expo/vector-icons'\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\nimport {\n ActivityIndicator,\n Animated,\n Modal,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native'\nimport Toast from 'react-native-toast-message'\nimport { Txt } from '../text/Txt'\n\nconst defaultAlertBodyText = \"Are you sure? You can't undo this action afterwards.\"\n\nexport const DeleteConfirmAlert = ({\n confirmActive,\n onCancel,\n onConfirm,\n body = defaultAlertBodyText,\n actionName = 'Delete',\n actionLoading,\n itemName,\n}: {\n confirmActive: boolean\n onCancel: () => void\n onConfirm: () => void\n body?: string | ReactNode\n actionLoading?: boolean\n actionName?: string\n itemName: string\n}) => {\n return (\n <Modal\n transparent={true}\n visible={confirmActive}\n onRequestClose={onCancel}\n animationType=\"fade\">\n <View style={styles.overlay}>\n <View style={styles.alertContainer}>\n <Txt style={styles.alertTitle}>\n {actionName} {itemName}?\n </Txt>\n {typeof body === 'string' ? <Txt style={styles.alertBody}>{body}</Txt> : body}\n <View style={styles.buttonContainer}>\n <TouchableOpacity style={styles.cancelButton} onPress={onCancel}>\n <Txt style={styles.cancelText}>Cancel</Txt>\n </TouchableOpacity>\n <TouchableOpacity\n style={styles.confirmButton}\n onPress={onConfirm}\n disabled={actionLoading}>\n {actionLoading ? (\n <ActivityIndicator color=\"#fff\" />\n ) : (\n <Txt style={[styles.buttonText, styles.confirmButtonText]}>{actionName}</Txt>\n )}\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n )\n}\n\nexport const DeleteButton: React.FC<{\n onDelete: (() => Promise<any>) | (() => void)\n itemName: string\n actionName?: string\n noConfirm?: boolean\n text?: string\n alertBody?: string | ReactNode\n style?: ViewStyle\n}> = ({ onDelete, itemName, noConfirm, alertBody, text, actionName = 'Delete', style }) => {\n const [deleteLoading, setDeleteLoading] = useState(false)\n const [confirmActive, setConfirmActive] = useState(false)\n const confirmTimer = useRef<any>()\n const isMounted = useRef(true)\n const contentOpacity = useRef(new Animated.Value(1)).current\n const loaderOpacity = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const animateLoading = useCallback(\n (isLoading: boolean) => {\n Animated.parallel([\n Animated.timing(contentOpacity, {\n toValue: isLoading ? 0 : 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(loaderOpacity, {\n toValue: isLoading ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start()\n },\n [contentOpacity, loaderOpacity],\n )\n\n const handleDelete = useCallback(async () => {\n if (confirmTimer.current) clearTimeout(confirmTimer.current)\n setConfirmActive(false)\n if (onDelete) {\n setDeleteLoading(true)\n animateLoading(true)\n try {\n await onDelete()\n } catch (err: any) {\n console.error(err)\n Toast.show({\n text1: err.message ?? 'An error occurred',\n type: 'error',\n })\n }\n if (isMounted.current) {\n setDeleteLoading(false)\n animateLoading(false)\n }\n } else {\n console.error('No delete function')\n }\n }, [onDelete, animateLoading])\n\n return (\n <>\n {text ? (\n <TouchableOpacity\n style={[styles.button, style]}\n onPress={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n disabled={deleteLoading}>\n <View style={styles.buttonContent}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n <Ionicons name=\"trash\" size={20} color=\"red\" />\n <Text style={styles.buttonText}>{text}</Text>\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color=\"#ff0000\" size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity\n style={[styles.iconButton, style]}\n onPress={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n disabled={deleteLoading}>\n <View style={styles.buttonContent}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n <Ionicons name=\"trash\" size={24} color=\"#ee0000\" />\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color=\"#ff0000\" size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n )}\n {noConfirm ? null : (\n <DeleteConfirmAlert\n confirmActive={confirmActive}\n onCancel={() => setConfirmActive(false)}\n actionLoading={deleteLoading}\n onConfirm={() => {\n handleDelete()\n }}\n actionName={actionName}\n body={alertBody}\n itemName={itemName}\n />\n )}\n </>\n )\n}\n\nconst styles = StyleSheet.create({\n overlay: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n alertContainer: {\n width: '80%',\n maxWidth: 400,\n backgroundColor: 'white',\n borderRadius: 10,\n padding: 20,\n alignItems: 'center',\n },\n alertTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n marginBottom: 10,\n },\n alertBody: {\n fontSize: 16,\n marginBottom: 20,\n },\n buttonContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n },\n cancelButton: {\n padding: 10,\n borderColor: 'gray',\n borderWidth: 1,\n borderRadius: 5,\n flex: 1,\n marginRight: 5,\n alignItems: 'center',\n },\n cancelText: {\n color: 'gray',\n fontWeight: 'bold',\n },\n confirmButton: {\n padding: 10,\n backgroundColor: 'red',\n borderRadius: 5,\n flex: 1,\n marginLeft: 5,\n alignItems: 'center',\n },\n buttonText: {\n color: 'red',\n fontWeight: 'bold',\n },\n confirmButtonText: {\n color: 'white',\n textShadowColor: 'rgba(0, 0, 0, 0.5)',\n textShadowOffset: { width: 1, height: 1 },\n textShadowRadius: 3,\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 10,\n backgroundColor: 'transparent',\n },\n buttonContent: {\n flexDirection: 'row',\n gap: 3,\n borderWidth: 1,\n borderColor: 'red',\n paddingHorizontal: 13,\n paddingVertical: 5,\n borderRadius: 4,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 34,\n position: 'relative',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 3,\n },\n loaderContainer: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n iconButton: {\n padding: 10,\n backgroundColor: 'transparent',\n },\n loading: {\n position: 'absolute',\n top: 0,\n left: 0,\n justifyContent: 'center',\n alignItems: 'center',\n height: 24,\n width: 24,\n },\n})\n","import { useTextColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport {\n ActivityIndicator,\n Animated,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native'\nimport Toast from 'react-native-toast-message'\n\nexport interface LoadingButtonProps {\n onPress: (() => Promise<any>) | (() => void)\n children: ReactNode\n style?: ViewStyle\n textStyle?: ViewStyle\n color?: string\n icon?: {\n name: React.ComponentProps<typeof Ionicons>['name']\n size?: number\n }\n disabled?: boolean\n}\n\nexport const LoadingButton: React.FC<LoadingButtonProps> = ({\n onPress,\n children,\n style,\n textStyle,\n color: colorProp,\n icon,\n disabled = false,\n}) => {\n const [loading, setLoading] = useState(false)\n const isMounted = useRef(true)\n const contentOpacity = useRef(new Animated.Value(1)).current\n const loaderOpacity = useRef(new Animated.Value(0)).current\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const animateLoading = useCallback(\n (isLoading: boolean) => {\n Animated.parallel([\n Animated.timing(contentOpacity, {\n toValue: isLoading ? 0 : 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(loaderOpacity, {\n toValue: isLoading ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start()\n },\n [contentOpacity, loaderOpacity],\n )\n\n const handlePress = useCallback(async () => {\n if (onPress) {\n setLoading(true)\n animateLoading(true)\n try {\n await onPress()\n } catch (err: any) {\n console.error(err)\n Toast.show({\n text1: err.message ?? 'An error occurred',\n type: 'error',\n })\n }\n if (isMounted.current) {\n setLoading(false)\n animateLoading(false)\n }\n }\n }, [onPress, animateLoading])\n\n const fallbackColor = useTextColor()\n const color = useMemo(() => colorProp ?? fallbackColor, [colorProp, fallbackColor])\n return (\n <TouchableOpacity\n style={[\n styles.button,\n { borderColor: color, backgroundColor: disabled ? '#f0f0f0' : 'transparent' },\n style,\n ]}\n onPress={e => {\n e.stopPropagation()\n handlePress()\n }}\n disabled={loading || disabled}>\n <View style={[styles.buttonContent, { borderColor: disabled ? '#ccc' : color }]}>\n <Animated.View style={[styles.contentContainer, { opacity: contentOpacity }]}>\n {icon && (\n <Ionicons name={icon.name} size={icon.size ?? 20} color={disabled ? '#ccc' : color} />\n )}\n {typeof children === 'string' ? (\n <Text style={[styles.buttonText, { color: disabled ? '#ccc' : color }, textStyle]}>\n {children}\n </Text>\n ) : (\n children\n )}\n </Animated.View>\n\n <Animated.View style={[styles.loaderContainer, { opacity: loaderOpacity }]}>\n <ActivityIndicator color={color} size=\"small\" />\n </Animated.View>\n </View>\n </TouchableOpacity>\n )\n}\n\nconst styles = StyleSheet.create({\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: 'transparent',\n },\n buttonContent: {\n flexDirection: 'row',\n gap: 8,\n borderWidth: 1,\n paddingHorizontal: 16,\n paddingVertical: 8,\n borderRadius: 4,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 40,\n position: 'relative',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n },\n loaderContainer: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonText: {\n fontWeight: 'bold',\n },\n})\n","import { useTheme } from '@chem-po/react'\nimport { JSX, useCallback } from 'react'\nimport { StyleSheet, TouchableOpacity, View } from 'react-native'\nimport Toast from 'react-native-toast-message'\n\nexport interface ToggleOption<Option extends string = string> {\n id: Option\n disabledMessage?: string\n Render: (selected: boolean) => JSX.Element\n}\n\nexport interface ToggleProps<Option extends string> {\n options: ToggleOption<Option>[]\n value: Option\n size?: number\n onChange: (value: Option) => Promise<void> | void\n}\n\nconst ToggleButton = <Option extends string>({\n selected,\n option: { Render, disabledMessage },\n size,\n onPress,\n}: {\n option: ToggleOption<Option>\n size: number\n selected: boolean\n onPress: () => void\n}) => {\n const handlePress = useCallback(() => {\n if (!disabledMessage) {\n onPress()\n } else {\n Toast.show({\n type: 'error',\n text1: disabledMessage,\n })\n }\n }, [onPress, disabledMessage])\n const body = (\n <View\n style={[\n styles.buttonContainer,\n { width: size, height: size, opacity: !disabledMessage ? 1 : 0.6 },\n ]}>\n <TouchableOpacity\n style={[\n styles.button,\n {\n backgroundColor: selected ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.1)',\n pointerEvents: selected ? 'none' : 'auto',\n },\n ]}\n onPress={handlePress}\n disabled={!!disabledMessage}>\n {Render(selected)}\n </TouchableOpacity>\n </View>\n )\n\n return body\n}\n\nexport const Toggle = <Option extends string>({\n value,\n onChange,\n size = 28,\n options,\n}: ToggleProps<Option>) => {\n const {\n theme: {\n colors: { background },\n },\n } = useTheme()\n return (\n <View style={[styles.container, { borderColor: background[300] }]}>\n {options.map(option => (\n <ToggleButton<Option>\n key={option.id}\n onPress={() => {\n onChange(option.id)\n }}\n option={option}\n size={size}\n selected={option.id === value}\n />\n ))}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n borderWidth: 1,\n borderRadius: 3,\n },\n buttonContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 3,\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface MediaFeedContextValue<T extends AnyObject = AnyObject> {\n curr: WithId<T> | null\n}\nexport const MediaFeedContext = createContext<MediaFeedContextValue<any>>(\n {} as MediaFeedContextValue<any>,\n)\n\nexport const MediaFeedProvider = <T extends AnyObject = AnyObject>({\n curr,\n children,\n}: PropsWithChildren<{ curr: WithId<T> | null }>) => {\n const contextData = useMemo(() => ({ curr }), [curr])\n return <MediaFeedContext.Provider value={contextData}>{children}</MediaFeedContext.Provider>\n}\nexport const useMediaFeed = <T extends AnyObject = AnyObject>() =>\n useContext(MediaFeedContext) as MediaFeedContextValue<T>\n","import { StyleProp, StyleSheet, ViewStyle } from 'react-native'\n\nconst sharedProps: StyleProp<ViewStyle> = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n}\nexport const fill = StyleSheet.create({\n absolute: {\n ...sharedProps,\n position: 'absolute',\n },\n relative: {\n ...sharedProps,\n position: 'relative',\n },\n})\n","import { ThemedAsset, useAppAssets, useTheme } from '@chem-po/react'\nimport LottieView from 'lottie-react-native'\nimport { useMemo } from 'react'\nimport { Image, StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nexport const LottieLoadingLogo = ({\n size = 30,\n isLoading,\n speed = 2,\n inFeed,\n asset,\n}: {\n size?: number\n color?: string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n speed?: number\n}) => {\n const { colorMode } = useTheme()\n const animationData = useMemo(\n () =>\n inFeed\n ? (asset.dark ?? asset.default)\n : colorMode === 'dark'\n ? (asset.dark ?? asset.default)\n : asset.default,\n [asset, inFeed, colorMode],\n )\n\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n }),\n [size, isLoading],\n )\n\n return <LottieView source={animationData} autoPlay={isLoading} loop speed={speed} style={style} />\n}\n\nconst SVGLoadingLogo = ({\n size = 30,\n isLoading,\n asset,\n inFeed,\n}: {\n size?: number\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n}) => {\n const { colorMode } = useTheme()\n const svg = useMemo(\n () =>\n inFeed\n ? (asset.dark ?? asset.default)\n : colorMode === 'dark'\n ? (asset.dark ?? asset.default)\n : asset.default,\n [asset, inFeed, colorMode],\n )\n\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n }),\n [size, isLoading],\n )\n\n return <Image source={{ uri: svg }} style={style} />\n}\n\nconst LoadingBody = ({ isLoading, size }: { isLoading: boolean; size?: number }) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return <LottieLoadingLogo isLoading={isLoading} size={size} asset={loading.lottieJson} />\n if (loading.svg) return <SVGLoadingLogo isLoading={isLoading} size={size} asset={loading.svg} />\n return null\n}\n\nexport const LoadingLogo = ({\n isLoading,\n size,\n inFeed,\n}: {\n isLoading: boolean\n size?: number\n inFeed?: boolean\n}) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return (\n <LottieLoadingLogo\n inFeed={inFeed}\n isLoading={isLoading}\n size={size}\n asset={loading.lottieJson}\n />\n )\n if (loading.svg)\n return <SVGLoadingLogo inFeed={inFeed} isLoading={isLoading} size={size} asset={loading.svg} />\n return <Text style={styles.errorText}>ERROR: No loading animation found</Text>\n}\n\nexport const Loading = ({\n text = 'Loading...',\n inBox,\n containerStyle,\n}: {\n text?: string\n inBox?: boolean\n containerStyle?: ViewStyle\n}) => {\n const body = (\n <View style={[styles.loadingContainer, containerStyle]}>\n <LoadingBody isLoading />\n <Text style={styles.loadingText}>{text}</Text>\n </View>\n )\n return inBox ? <View style={styles.boxContainer}>{body}</View> : body\n}\n\nexport const LoadingOverlay = ({\n isLoading,\n text,\n inFeed,\n style,\n}: {\n isLoading: boolean\n text?: string\n inFeed?: boolean\n style?: ViewStyle\n}) => {\n const { colorMode } = useTheme()\n const bgColor = colorMode === 'dark' ? 'rgba(0, 0, 0, 0.53)' : 'rgba(255, 255, 255, 0.67)'\n\n return (\n <View\n style={[styles.overlay, { backgroundColor: bgColor }, { opacity: isLoading ? 1 : 0 }, style]}>\n {!text ? (\n <LoadingLogo inFeed={inFeed} size={100} isLoading={isLoading} />\n ) : (\n <Loading text={text} />\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n loadingContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n loadingText: {\n opacity: 0.8,\n fontSize: 14,\n marginLeft: 8,\n },\n boxContainer: {\n padding: 16,\n borderRadius: 8,\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n },\n overlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n justifyContent: 'center',\n alignItems: 'center',\n },\n errorText: {\n color: 'red',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { PanelStatus, useDocument, useScreen } from '@chem-po/react'\nimport { JSX, useEffect, useMemo, useRef } from 'react'\n// import { motion, MotionValue, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport { Animated } from 'react-native'\n\nconst getContentScale = (status: PanelStatus) => {\n // if (status === 'current') return 1\n if (status === 'current') return 1\n return 0\n}\n// const getContentX = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n// const { width: cWidth } = contentSize\n// if (status === 'current') return 0\n// if (status === 'next') return cWidth\n// if (status === 'prev') return -cWidth\n// return 0\n// }\n\nconst getContentY = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { height: cHeight } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cHeight * 1.1\n if (status === 'prev') return -cHeight * 1.1\n return 0\n}\n\ninterface FeedContentPaneProps<T extends AnyObject = AnyObject> {\n id: string\n collectionPath: string\n RenderItem: (i: WithId<T>) => JSX.Element\n onItemLoad: (data: WithId<T> | null) => void\n status: PanelStatus\n enterStatus?: PanelStatus | null\n offsetY: Animated.Value\n}\n\nexport const FeedContentPane = <T extends AnyObject = AnyObject>({\n id,\n collectionPath,\n onItemLoad,\n RenderItem,\n status,\n offsetY,\n enterStatus,\n}: FeedContentPaneProps<T>) => {\n const { height, width } = useScreen()\n const contentSize = useMemo(() => ({ height, width }), [height, width])\n const scale = useRef(new Animated.Value(0)).current\n const baseY = useRef(new Animated.Value(getContentY(enterStatus ?? 'next', contentSize))).current\n const y = Animated.add(baseY, offsetY)\n\n const docPath = useMemo(() => `${collectionPath}/${id}`, [collectionPath, id])\n const { data: item } = useDocument<T>(docPath, onItemLoad)\n\n // const init = useRef<{\n // status: PanelStatus\n // contentSize: Size\n // y: number\n // scale: number\n // }>({\n // contentSize,\n // status: enterStatus ?? status,\n // // x: getContentX(fromStatus || status, contentSize),\n // y: getContentY(enterStatus ?? status, contentSize),\n // scale: getContentScale(enterStatus ?? status),\n // })\n\n useEffect(() => {\n const newScale = getContentScale(status)\n const updatedY = getContentY(status, contentSize)\n baseY.setValue(updatedY)\n scale.setValue(newScale)\n // baseY.set(updatedY)\n // scale.set(newScale)\n }, [status, baseY, scale, contentSize])\n\n return (\n // <AnimatePresence>\n <Animated.View\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n transform: [{ translateY: y }, { scale }],\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n opacity: scale,\n width: '100%',\n }}>\n {item ? RenderItem(item) : null}\n </Animated.View>\n // </AnimatePresence>\n )\n}\n","import { FetchFeedFunction } from '@chem-po/core'\nimport { UpdatePanelsArgs, useAuth } from '@chem-po/react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport Toast from 'react-native-toast-message'\n\nconst DEFAULT_LIMIT = 10\nexport const useMediaFeed = (\n fetch: FetchFeedFunction,\n onUpdatePanels: (items: UpdatePanelsArgs) => void,\n limit: number = DEFAULT_LIMIT,\n authRequired = false,\n) => {\n // first element is prev ids, second element is curr ids, third element is next ids\n const [ids, setIds] = useState<[string[] | null, string[] | null, string[] | null]>([\n null,\n null,\n null,\n ])\n const [idIdx, setIdIdx] = useState<number>(0)\n const user = useAuth(s => s.user)\n\n const [loading, setLoading] = useState(false)\n const [refreshing, setRefreshing] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [itemLoading, setItemLoading] = useState(false)\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n\n const fetchingId = useRef<string | null>(null)\n\n const idsRef = useRef<{ prev: string | null; curr: string | null; next: string | null }>({\n prev: null,\n curr: null,\n next: null,\n })\n\n const updateCurr = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.curr = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updateNext = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n }\n idsRef.current.next = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updatePrev = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.prev = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const fetchIds = useCallback(\n async (\n startBefore: string | null,\n startAfter: string | null,\n isPrefetch: boolean,\n ): Promise<string[]> => {\n if (!user && authRequired) return []\n if (!isPrefetch) setLoading(true)\n\n try {\n const data = await fetch({ limit, startAfter, startBefore })\n if (!isPrefetch) {\n const firstId = data.ids[0]\n const secondId = data.ids[1] || null\n updateCurr(firstId)\n updateNext(secondId)\n updatePrev(startAfter)\n if (startAfter) {\n setIds(s => [s[1], data.ids, null])\n } else if (startBefore) {\n setIds(s => [null, data.ids, s[1]])\n } else {\n setIds([null, data.ids, null])\n }\n const newLastId = data.ids[data.ids.length - 1]\n if (newLastId) {\n fetchIds(null, newLastId, true)\n }\n } else if (startAfter) {\n setIds(s => [s[0], s[1], data.ids])\n } else if (startBefore) {\n setIds(s => [data.ids, s[1], s[2]])\n }\n setLoading(false)\n return data.ids || []\n } catch (err: any) {\n setError(err.message)\n // toast({\n // title: 'Error fetching feed',\n // description: err.message,\n // status: 'error',\n // duration: 9000,\n // isClosable: true,\n // })\n Toast.show({\n text1: 'Error fetching feed',\n text2: err.message,\n type: 'error',\n visibilityTime: 5000,\n })\n }\n setLoading(false)\n return []\n },\n [fetch, user, authRequired, updateCurr, updateNext, updatePrev, limit],\n )\n\n // handles prefetching of next items\n const getNextId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const nextIds = ids[2] ?? []\n const nextIdx = currIdx + 1\n if (nextIdx < currIds.length) {\n return { id: currIds[nextIdx], idx: nextIdx }\n }\n if (nextIds[0]) {\n const newLastId = nextIds[nextIds.length - 1]\n if (!isPrefetch) {\n setIds(s => [s[1], s[2], null])\n fetchIds(null, newLastId, true)\n }\n return { id: nextIds[0], idx: 0 }\n }\n const fetchedNextIds = await fetchIds(null, currIds[currIds.length - 1], isPrefetch)\n const fetchedNextId = fetchedNextIds[0]\n return fetchedNextId ? { id: fetchedNextId, idx: 0 } : null\n },\n [ids, fetchIds],\n )\n\n const getPrevId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const prevIds = ids[0] ?? []\n const prevIdx = currIdx - 1\n if (prevIdx >= 0) {\n return { id: currIds[prevIdx], idx: prevIdx }\n }\n if (prevIds[prevIds.length - 1]) {\n const newFirstId = prevIds[0]\n if (!isPrefetch) {\n setIds([null, ids[0], ids[1]])\n fetchIds(newFirstId, null, true)\n }\n return { id: prevIds[prevIds.length - 1], idx: prevIds.length - 1 }\n }\n const fetchedPrevIds = await fetchIds(currIds[0], null, isPrefetch)\n const fetchedPrevId = fetchedPrevIds[fetchedPrevIds.length - 1]\n return fetchedPrevId ? { id: fetchedPrevId, idx: fetchedPrevIds.length - 1 } : null\n },\n [ids, fetchIds],\n )\n\n const goNext = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newPrev = idsRef.current.curr\n\n setItemLoading(true)\n const nextIdData = await getNextId(idIdx, false)\n setDirection('next')\n if (nextIdData) {\n const { id: nextId, idx: nextIdx } = nextIdData\n fetchingId.current = nextId\n setIdIdx(nextIdx)\n updateCurr(nextId)\n updateNext(null)\n updatePrev(newPrev)\n getNextId(nextIdx, true).then(newNextId => updateNext(newNextId?.id ?? null))\n } else {\n Toast.show({\n text1: 'No more items',\n type: 'info',\n visibilityTime: 3000,\n })\n }\n setItemLoading(false)\n }, [idIdx, getNextId, updateCurr, updateNext, updatePrev, itemLoading])\n\n const goPrev = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newNext = idsRef.current.curr\n\n setDirection('prev')\n setItemLoading(true)\n const prevIdData = await getPrevId(idIdx, false)\n if (prevIdData) {\n const { id: prevId, idx: prevIdx } = prevIdData\n fetchingId.current = prevId\n setIdIdx(prevIdx)\n updateCurr(prevId)\n updatePrev(null)\n updateNext(newNext)\n getPrevId(prevIdx, true).then(newPrevId => updatePrev(newPrevId?.id ?? null))\n } else {\n Toast.show({\n text1: 'No more items',\n type: 'info',\n visibilityTime: 3000,\n })\n }\n setItemLoading(false)\n }, [idIdx, getPrevId, updateCurr, updateNext, updatePrev, itemLoading])\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setRefreshing(true)\n setIds([null, null, null])\n updateCurr(null)\n updateNext(null)\n updatePrev(null)\n setDirection(null)\n setIdIdx(0)\n await fetchIds(null, null, false)\n setRefreshing(false)\n }, [fetchIds, updateCurr, updateNext, updatePrev])\n\n const [initFetchIds] = useState(() => fetchIds)\n useEffect(() => {\n initFetchIds(null, null, false)\n }, [initFetchIds])\n\n const canGoPrev = useMemo(() => (idIdx > 0 && !!ids[1]?.length) || !!ids[0]?.length, [ids, idIdx])\n const canGoNext = useMemo(\n () => (ids[1] && idIdx < ids[1].length) ?? !!ids[2]?.length,\n [ids, idIdx],\n )\n return useMemo(\n () => ({\n ids,\n goNext,\n goPrev,\n error,\n refresh,\n refreshing,\n loading,\n canGoNext,\n direction,\n canGoPrev,\n itemLoading,\n }),\n [\n ids,\n goNext,\n goPrev,\n loading,\n error,\n itemLoading,\n canGoNext,\n canGoPrev,\n refresh,\n refreshing,\n direction,\n ],\n )\n}\n","import { useColorModeValue } from '@chem-po/react'\nimport { useEffect, useRef } from 'react'\nimport {\n ActivityIndicator,\n ActivityIndicatorProps,\n Animated,\n StyleProp,\n StyleSheet,\n ViewStyle,\n} from 'react-native'\n\nexport const CircularProgress = ({\n color,\n trackColor,\n animating,\n visible = true,\n viewStyle,\n ...props\n}: ActivityIndicatorProps & {\n trackColor?: string\n viewStyle?: StyleProp<ViewStyle>\n visible?: boolean\n}) => {\n const defaultTrackColor = useColorModeValue('#959595', '#575757')\n const opacity = useRef(new Animated.Value(visible ? 1 : 0)).current\n\n useEffect(() => {\n Animated.timing(opacity, {\n toValue: visible ? 1 : 0,\n duration: 300,\n useNativeDriver: true,\n }).start()\n }, [visible, opacity])\n return (\n <Animated.View style={[styles.container, { opacity }, viewStyle]}>\n <ActivityIndicator\n color={trackColor ?? defaultTrackColor} // Lighter version of your color\n style={StyleSheet.absoluteFill}\n animating={false}\n {...props}\n />\n {/* Spinning circle */}\n <ActivityIndicator animating={animating} color={color ?? '#575757'} {...props} />\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n})\n","import { useScreen } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useCallback, useMemo, useState } from 'react'\nimport { Image, Modal, StyleSheet, TouchableOpacity, View } from 'react-native'\nimport { LoadingLogo } from '../loading/Loading'\n\nexport const ImageViewOverlay = ({ src, onClose }: { src: string; onClose: () => void }) => {\n const [loading, setLoading] = useState(true)\n const screenWidth = useScreen(s => s.width)\n const screenHeight = useScreen(s => s.height)\n const [imageSize, setImageSize] = useState({ width: screenWidth / 2, height: screenHeight / 2 })\n\n const { height, width } = useMemo(() => {\n if (loading) return imageSize\n const ratio = imageSize.width / imageSize.height\n let h = Math.min(imageSize.height, screenHeight * 0.9)\n let w = h * ratio\n if (w > screenWidth * 0.9) {\n w = Math.min(imageSize.width, screenWidth * 0.9)\n h = w / ratio\n }\n return { height: h, width: w }\n }, [screenHeight, screenWidth, imageSize, loading])\n\n const onLoadStart = useCallback(() => setLoading(true), [])\n const onLoad = useCallback((e: any) => {\n const { width: naturalWidth, height: naturalHeight } = e.nativeEvent.source\n setImageSize({ width: naturalWidth, height: naturalHeight })\n setLoading(false)\n }, [])\n\n return (\n <Modal visible={true} transparent animationType=\"fade\" onRequestClose={onClose}>\n <View style={styles.modalOverlay}>\n <View style={styles.contentContainer}>\n <View\n style={[\n styles.imageContainer,\n {\n width,\n height,\n opacity: loading ? 0 : 1,\n },\n ]}>\n <Image\n source={{ uri: src }}\n style={styles.image}\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n resizeMode=\"contain\"\n />\n </View>\n\n <TouchableOpacity style={styles.closeButton} onPress={onClose}>\n <Ionicons name=\"close\" size={24} color=\"white\" />\n </TouchableOpacity>\n\n {loading && (\n <View style={styles.loadingContainer}>\n <LoadingLogo isLoading={loading} size={70} />\n </View>\n )}\n </View>\n </View>\n </Modal>\n )\n}\n\nconst styles = StyleSheet.create({\n modalOverlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n },\n contentContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n padding: 16,\n },\n imageContainer: {\n overflow: 'hidden',\n borderRadius: 4,\n },\n image: {\n width: '100%',\n height: '100%',\n },\n closeButton: {\n position: 'absolute',\n top: 16,\n right: 16,\n width: 40,\n height: 40,\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n loadingContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { useMounted } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { DimensionValue, Image, StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native'\nimport { ImageViewOverlay } from '../overlay/ImageViewOverlay'\nimport { LoadingLogo } from './Loading'\n\nexport interface LoadingImageProps {\n src?: string | null\n loadingOverride?: boolean\n onLoad?: (e: any) => void\n noFullView?: boolean\n buttonFullView?: boolean\n style?: ViewStyle\n width?: DimensionValue\n height?: DimensionValue\n}\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\n\nexport const LoadingImage = ({\n src,\n loadingOverride,\n onLoad,\n width,\n height,\n noFullView,\n buttonFullView,\n style,\n}: LoadingImageProps) => {\n const [imageLoading, setImageLoading] = useState(!!src)\n const imageRef = useRef<Image>(null)\n\n const [viewing, setViewing] = useState(false)\n const mounted = useMounted(100)\n\n const handleImageLoad = useCallback(\n (e: any) => {\n if (onLoad) onLoad(e)\n },\n [onLoad],\n )\n\n const [prevSrc, setPrevSrc] = useState(src)\n useEffect(() => {\n if (src) setPrevSrc(src)\n }, [src, prevSrc])\n\n const loading = useMemo(() => imageLoading || !!loadingOverride, [imageLoading, loadingOverride])\n\n const ImageComponent = (\n <Image\n ref={imageRef}\n source={{ uri: src ?? emptyPng }}\n style={[\n styles.image,\n {\n opacity: src && !loading ? 1 : 0,\n },\n ]}\n // onLoadStart={() => setImageLoading(true)}\n onLoadEnd={() => setImageLoading(false)}\n onLoad={handleImageLoad}\n resizeMode={src ? 'cover' : 'contain'}\n />\n )\n\n return (\n <View\n style={[\n styles.container,\n {\n width: width ?? '100%',\n height: height ?? '100%',\n opacity: mounted ? 1 : 0,\n },\n style,\n ]}>\n {noFullView || buttonFullView ? (\n ImageComponent\n ) : (\n <TouchableOpacity\n activeOpacity={0.9}\n onPress={() => setViewing(true)}\n style={styles.imageContainer}>\n {ImageComponent}\n </TouchableOpacity>\n )}\n {buttonFullView && (\n <TouchableOpacity\n style={styles.fullViewButton}\n onPress={() => setViewing(true)}\n activeOpacity={0.7}>\n <Ionicons name=\"expand\" size={20} color=\"white\" style={styles.fullViewIcon} />\n </TouchableOpacity>\n )}\n <View\n style={[\n styles.loadingContainer,\n {\n opacity: loading ? 1 : 0,\n },\n ]}>\n <LoadingLogo isLoading={loading} size={10} />\n </View>\n {viewing && <ImageViewOverlay src={src ?? emptyPng} onClose={() => setViewing(false)} />}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n position: 'relative',\n },\n imageContainer: {\n width: '100%',\n height: '100%',\n },\n image: {\n width: '100%',\n height: '100%',\n },\n loadingContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullViewButton: {\n position: 'absolute',\n top: 8,\n right: 8,\n width: 28,\n height: 28,\n borderRadius: 14,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullViewIcon: {\n opacity: 0.8,\n },\n})\n","import { useCallback, useState } from 'react'\nimport { Animated, StyleSheet, Switch, Text, View } from 'react-native'\nimport { Loading } from './Loading'\n\nexport const LoadingSwitch = ({\n value,\n label,\n onChange,\n}: {\n value: boolean\n label: string\n onChange: (updated: boolean) => Promise<void>\n}) => {\n const [isLoading, setIsLoading] = useState(false)\n const opacity = useState(new Animated.Value(1))[0]\n\n const reportComplete = useCallback(\n (fetchedOn: number) => {\n const buffer = Math.max(0, 1000 - (Date.now() - fetchedOn))\n setTimeout(() => {\n setIsLoading(false)\n Animated.timing(opacity, {\n toValue: 1,\n duration: 300,\n useNativeDriver: true,\n }).start()\n }, buffer)\n },\n [opacity],\n )\n\n const handleChange = (newValue: boolean) => {\n setIsLoading(true)\n Animated.timing(opacity, {\n toValue: 0,\n duration: 300,\n useNativeDriver: true,\n }).start()\n\n const fetchedOn = Date.now()\n onChange(newValue).catch(err => {\n console.error(err)\n // Note: You might want to implement a toast notification system for React Native\n // For now, we'll just log the error\n })\n\n reportComplete(fetchedOn)\n }\n\n return (\n <View style={styles.container}>\n <Animated.View\n style={[\n styles.content,\n {\n opacity,\n },\n ]}>\n <Text style={styles.label}>{label}</Text>\n <Switch value={value} onValueChange={handleChange} />\n </Animated.View>\n {isLoading && (\n <View style={styles.loadingContainer}>\n <Loading />\n </View>\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n paddingVertical: 4,\n paddingHorizontal: 12,\n backgroundColor: '#2D3748', // gray.700 equivalent\n borderRadius: 12,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n position: 'relative',\n flexDirection: 'row',\n alignItems: 'center',\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n label: {\n fontSize: 20,\n height: 24,\n color: '#FFFFFF',\n },\n loadingContainer: {\n position: 'absolute',\n top: '-10%',\n left: '-10%',\n width: '120%',\n height: '120%',\n borderRadius: 8,\n padding: 4,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { GetBackgroundUrl, GetBackgroundValue, useObjectUrl } from '@chem-po/react'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { ImageBackground, StyleSheet, View, ViewProps } from 'react-native'\nimport { fill } from '../../styles/fill'\nimport { Center } from '../box/Center'\nimport { LoadingLogo } from '../loading'\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nexport const backgroundStyle = StyleSheet.create({\n imageBackground: {\n flex: 1,\n transform: [{ scale: 1.075 }],\n },\n})\n\ninterface FillBackgroundProps extends ViewProps {\n background: string | null\n opacity?: number\n}\n\nconst FillBackground: React.FC<FillBackgroundProps> = ({\n background,\n opacity = 0.7,\n style,\n ...props\n}) => (\n <View style={[fill.absolute, style]} {...props}>\n <ImageBackground\n source={{ uri: background ?? emptyPng }}\n style={[backgroundStyle.imageBackground, { opacity }]}\n resizeMode=\"cover\"></ImageBackground>\n </View>\n)\n\ninterface FileValueBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue: GetBackgroundValue<T>\n item: WithId<T> | null\n filter?: string\n}\nconst FileValueBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n item,\n}: FileValueBackgroundProps<T>) => {\n const background = useMemo(\n () => (item ? getBackgroundValue(item) : null),\n [getBackgroundValue, item],\n )\n const { loading, url } = useObjectUrl(background)\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n const usedIdx = usedIndex.current\n if (usedIdx === 0) {\n setUrl1(url)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(url)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [url])\n\n return (\n <Center style={fill.absolute}>\n <FillBackground opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground opacity={index === 1 ? 1 : 0} background={url2} />\n <LoadingLogo isLoading={loading} />\n </Center>\n )\n}\n\nconst UrlBackground = <T extends AnyObject = AnyObject>({\n getBackgroundUrl,\n item,\n}: {\n getBackgroundUrl: GetBackgroundUrl<T>\n item: T | null\n}) => {\n const background = useMemo(() => (item ? getBackgroundUrl(item) : null), [getBackgroundUrl, item])\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n if (!background) return\n if (usedIndex.current === 0) {\n setUrl1(background)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(background)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [background])\n\n return (\n <Center style={fill.absolute}>\n <FillBackground\n //filter={filter}\n opacity={index === 0 ? 1 : 0}\n background={url1}\n />\n <FillBackground\n //filter={filter}\n opacity={index === 1 ? 1 : 0}\n background={url2}\n />\n </Center>\n )\n}\n\ninterface MediaFeedBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue?: GetBackgroundValue<T>\n getBackgroundUrl?: GetBackgroundUrl<T>\n filter?: string\n item: WithId<T> | null\n}\n\nexport const MediaFeedBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n getBackgroundUrl,\n ...props\n}: MediaFeedBackgroundProps<T>) => {\n if (getBackgroundValue)\n return <FileValueBackground getBackgroundValue={getBackgroundValue} {...props} />\n if (getBackgroundUrl) return <UrlBackground getBackgroundUrl={getBackgroundUrl} {...props} />\n return null\n}\n","import Icon from '@expo/vector-icons/MaterialCommunityIcons' // or your preferred icon set\nimport { useEffect, useRef } from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { DropShadow } from '../box/DropShadow'\nimport { CircularProgress } from '../loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\n\nconst WINDOW = REFRESH_THRESHOLD - SWIPE_THRESHOLD\n\nexport const MediaFeedRefresh = ({\n offsetY,\n refreshing,\n canRefresh,\n}: {\n offsetY: Animated.Value\n refreshing: boolean\n canRefresh: boolean\n}) => {\n // Create animated values\n const baseY = useRef(new Animated.Value(0)).current\n const isIn = useRef(new Animated.Value(0)).current\n\n const dist = Animated.subtract(offsetY, SWIPE_THRESHOLD)\n const baseProgress = Animated.divide(dist, WINDOW)\n const progress = Animated.diffClamp(baseProgress, 0, 1)\n\n // Handle refreshing state\n useEffect(() => {\n Animated.spring(baseY, {\n toValue: refreshing ? 50 : 0,\n useNativeDriver: true,\n }).start()\n }, [refreshing, baseY])\n\n // Handle canRefresh state\n useEffect(() => {\n Animated.spring(isIn, {\n toValue: canRefresh ? 1 : 0,\n useNativeDriver: true,\n }).start()\n }, [canRefresh, isIn])\n\n // Create complex animations\n const progressRoot = progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, Math.sqrt(1) * 20],\n })\n\n const yBase = Animated.add(baseY, progressRoot)\n const yConstrained = yBase.interpolate({\n inputRange: [0, 20],\n outputRange: [0, 20],\n extrapolate: 'clamp',\n })\n\n const y = Animated.multiply(isIn, yConstrained)\n\n const scale = y.interpolate({\n inputRange: [0, 30],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n const finalScale = Animated.multiply(isIn, scale)\n\n const rotate = progress.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '180deg'],\n })\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n opacity: finalScale,\n transform: [{ translateY: y }, { scale: finalScale }, { rotate }],\n },\n ]}>\n <View style={styles.centerContainer}>\n <DropShadow\n style={[\n {\n opacity: refreshing ? 0 : 1,\n },\n ]}>\n <Icon name=\"refresh\" size={32} color=\"white\" />\n </DropShadow>\n\n <DropShadow\n style={{\n opacity: refreshing ? 1 : 0,\n }}>\n <CircularProgress animating size=\"large\" color=\"white\" />\n </DropShadow>\n </View>\n </Animated.View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n pointerEvents: 'none',\n },\n centerContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n },\n})\n","import { AnyObject, WithId } from '@chem-po/core'\nimport {\n MediaBackgroundRef,\n MediaFeedProps,\n PanelData,\n UpdatePanelsArgs,\n useScreen,\n useTheme,\n} from '@chem-po/react'\nimport React, {\n CSSProperties,\n Dispatch,\n PropsWithChildren,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport {\n Gesture,\n GestureDetector,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n PanGestureHandlerEventPayload,\n} from 'react-native-gesture-handler'\nimport { fill } from '../../styles/fill'\nimport { Center } from '../box/Center'\nimport { LoadingOverlay } from '../loading/Loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\nimport { MediaFeedProvider } from './context'\nimport { FeedContentPane } from './FeedContentPane'\nimport { useMediaFeed } from './hooks'\nimport { MediaFeedBackground } from './MediaFeedBackground'\nimport { MediaFeedRefresh } from './MediaFeedRefresh'\n\nconst useUpdatePanels = (setItems: Dispatch<React.SetStateAction<Array<PanelData>>>) =>\n useCallback(\n (data: UpdatePanelsArgs) => {\n const updated: PanelData[] = []\n if (data.prev) updated.push({ status: 'prev', id: data.prev })\n if (data.curr) {\n updated.push({\n status: 'current',\n id: data.curr,\n })\n }\n if (data.next) updated.push({ status: 'next', id: data.next })\n setItems(updated)\n },\n [setItems],\n )\n\nexport const MediaFeed = <T extends AnyObject = AnyObject>({\n fetch,\n collection: collectionPath,\n RenderItem,\n authRequired,\n getBackgroundUrl,\n getBackgroundValue,\n limit,\n defaultBackground,\n swipeDisabled,\n children,\n}: PropsWithChildren<MediaFeedProps<T>>) => {\n const { width, height } = useScreen()\n const { theme } = useTheme()\n\n const contentRef = useRef<View>(null)\n\n const containerRef = useRef<HTMLDivElement>(null)\n // const panels = useRef<Array<FeedContentPaneRef>>([])\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n const [panels, setPanels] = useState<Array<PanelData>>([])\n\n const offsetY = useRef(new Animated.Value(0)).current\n const onNewData = useUpdatePanels(setPanels)\n\n const backgroundRef = useRef<MediaBackgroundRef<T>>(null)\n\n const { goNext, goPrev, loading, canGoNext, canGoPrev, refresh, refreshing } = useMediaFeed(\n fetch,\n onNewData,\n limit,\n authRequired,\n )\n\n const pointerDown = useRef(false)\n const dragStart = useRef({ x: 0, y: 0 })\n\n const onDragStart = useCallback(\n (e: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (swipeDisabled) return\n pointerDown.current = true\n dragStart.current = { x: e.x, y: e.y }\n },\n [swipeDisabled],\n )\n\n const onDragEnd = useCallback(\n (e: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (!pointerDown.current) return\n\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.y - dragStart.current.y))\n\n if (canGoNext && oY < -(SWIPE_THRESHOLD - 10)) {\n setDirection('next')\n goNext()\n } else if (canGoPrev && oY > SWIPE_THRESHOLD - 10) {\n setDirection('prev')\n goPrev()\n } else if (oY > REFRESH_THRESHOLD - 10 || oY < -(REFRESH_THRESHOLD - 10)) {\n refresh()\n if (backgroundRef.current) backgroundRef.current.onNewData(null)\n }\n\n offsetY.setValue(0)\n pointerDown.current = false\n },\n [offsetY, goNext, goPrev, canGoNext, canGoPrev, refresh],\n )\n\n const onDragMove = useCallback(\n (e: GestureUpdateEvent<PanGestureHandlerEventPayload>) => {\n if (!pointerDown.current) return\n\n const oX = Math.max(-10, Math.min(10, e.x - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.y - dragStart.current.y))\n\n const dist = Math.sqrt(oX ** 2 + oY ** 2)\n if (dist > 10 && contentRef.current) {\n // contentRef.current.style.setProperty('pointer-events', 'none')\n }\n offsetY.setValue(oY)\n },\n [offsetY, canGoNext, canGoPrev],\n )\n\n const panGesture = Gesture.Pan().onStart(onDragStart).onUpdate(onDragMove).onEnd(onDragEnd)\n\n const containerStyle = useMemo<CSSProperties>(\n () => ({\n height: `${height}px`,\n width: `${width}px`,\n overflow: 'hidden',\n pointerEvents: swipeDisabled ? 'none' : 'auto',\n }),\n [width, height, swipeDisabled],\n )\n const [curr, setCurr] = useState<WithId<T> | null>(null)\n\n const handleItemLoad = useCallback(\n (data: WithId<T> | null) => {\n const isCurr = panels.find(p => p.status === 'current')?.id === data?._id\n if (isCurr) setCurr(data)\n },\n [panels],\n )\n\n return (\n <MediaFeedProvider curr={curr}>\n <GestureDetector gesture={panGesture}>\n <Center\n style={[\n styles.container,\n { backgroundColor: defaultBackground ?? theme.colors.background[100] },\n ]}>\n <MediaFeedBackground\n item={curr}\n getBackgroundValue={getBackgroundValue}\n getBackgroundUrl={getBackgroundUrl}\n />\n <div ref={containerRef} style={containerStyle}>\n <Center style={fill.relative} ref={contentRef}>\n {panels.map(panel => (\n <FeedContentPane<T>\n key={panel.id}\n id={panel.id}\n collectionPath={collectionPath}\n RenderItem={RenderItem}\n onItemLoad={handleItemLoad}\n status={panel.status}\n enterStatus={direction}\n offsetY={offsetY}\n />\n ))}\n </Center>\n </div>\n <MediaFeedRefresh canRefresh={!canGoPrev} refreshing={refreshing} offsetY={offsetY} />\n {/* {onSwipeUp ? <MediaFeedSwipeUp offsetY={offsetY} /> : null} */}\n <LoadingOverlay inFeed isLoading={loading} />\n {children ? <Center style={[fill.absolute, { zIndex: 3 }]}>{children}</Center> : null}\n </Center>\n </GestureDetector>\n </MediaFeedProvider>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n ...fill.relative,\n overflow: 'hidden',\n },\n})\n","import { PropsWithChildren, useMemo } from 'react'\nimport { useWatch } from 'react-hook-form'\nimport { Animated } from 'react-native'\n\nexport const Condition = ({\n path,\n condition,\n children,\n}: PropsWithChildren<{\n path: string\n condition: (values: any) => boolean\n}>) => {\n const value = useWatch({ exact: true, name: path })\n const isVisible = useMemo(() => condition(value), [value, condition])\n\n if (!isVisible) return null\n\n return (\n <Animated.View\n style={{\n paddingVertical: 3,\n opacity: 1,\n }}>\n {children}\n </Animated.View>\n )\n}\n","import { InputRef } from '@chem-po/core'\nimport { BooleanField } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, useImperativeHandle } from 'react'\nimport { Switch, Text, View } from 'react-native'\nimport { FieldProps } from '../../types'\n\nconst BaseCheckboxComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <View style={{ flexDirection: 'row', alignItems: 'center' }}>\n <Switch value={value} onValueChange={onChange} {...input} />\n <Text style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>\n {placeholder}\n </Text>\n </View>\n )\n}\n\nconst CheckboxBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(\n BaseCheckboxComponent,\n)\n\nconst BaseSwitchComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <View style={{ flexDirection: 'row', alignItems: 'center' }}>\n <Switch value={value} onValueChange={onChange} {...input} />\n <Text style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>\n {placeholder}\n </Text>\n </View>\n )\n}\n\nconst SwitchBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseSwitchComponent)\n\nconst BaseBooleanComponent = (props: FieldProps<BooleanField>, ref: ForwardedRef<InputRef>) => {\n if (props.field.type === 'switch') return <SwitchBooleanComponent ref={ref} {...props} />\n return <CheckboxBooleanComponent ref={ref} {...props} />\n}\n\nexport const BooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseBooleanComponent)\n","import { Gradient } from '@chem-po/core'\nimport Slider from '@react-native-community/slider'\nimport { StyleSheet, Text, View } from 'react-native'\n\ntype SliderProps = React.ComponentProps<typeof Slider>\n\nexport const InputSlider = ({\n label,\n gradient,\n value,\n minimumValue,\n maximumValue,\n ...props\n}: {\n label: string\n gradient?: Gradient\n} & SliderProps) => {\n return (\n <View style={[styles.container, { opacity: value !== undefined ? 1 : 0.5 }]}>\n <View style={styles.sliderContainer}>\n {minimumValue !== undefined ? (\n <Text style={[styles.label, gradient ? styles.gradientText : null]}>\n {typeof minimumValue === 'number'\n ? minimumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)\n : ''}\n </Text>\n ) : null}\n\n <Slider\n style={styles.slider}\n minimumValue={minimumValue}\n maximumValue={maximumValue}\n step={1}\n {...props}\n />\n\n {maximumValue !== undefined ? (\n <Text style={[styles.label, gradient ? styles.gradientText : null]}>\n {typeof maximumValue === 'number'\n ? maximumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)\n : ''}\n </Text>\n ) : null}\n </View>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n paddingVertical: 8,\n },\n sliderContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n },\n slider: {\n flex: 1,\n height: 40,\n },\n label: {\n fontSize: 14,\n marginHorizontal: 8,\n },\n gradientText: {\n color: '#007AFF', // iOS blue color, you can customize this\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { ForwardedRef, useImperativeHandle, useRef } from 'react'\nimport { TextInput } from 'react-native'\n\nexport const useInputImperativeHandle = (ref: ForwardedRef<InputRef>) => {\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle<InputRef, InputRef>(\n ref,\n () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }),\n [],\n )\n\n return inputRef\n}\n","import { colorValueToHex, Gradient, gradients, InputRef } from '@chem-po/core'\nimport { ColorField } from '@chem-po/react'\nimport { forwardRef, useCallback, useMemo } from 'react'\nimport { StyleSheet, Text, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\n\nconst ColorComponentSlider = ({\n label,\n gradient,\n value,\n ...props\n}: {\n label: string\n gradient: Gradient\n} & React.ComponentProps<typeof InputSlider>) => (\n <InputSlider\n label={label}\n value={value}\n minimumValue={0}\n maximumValue={255}\n step={1}\n gradient={gradient}\n {...props}\n />\n)\n\nexport const ColorComponent = forwardRef<InputRef, FieldProps<ColorField>>(\n ({ input: { onChange, value }, field, meta }, ref) => {\n const { withAlpha, defaultValue } = field\n const { active } = meta || {}\n\n useInputImperativeHandle(ref)\n\n const handleChange = useCallback(\n (key: 'r' | 'g' | 'b' | 'a', val: number) => {\n if (withAlpha) {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n ...value,\n [key]: val,\n })\n } else {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n ...value,\n [key]: val,\n })\n }\n },\n [value, onChange, withAlpha],\n )\n\n const withDefault = useMemo(() => ({ ...defaultValue, ...value }), [defaultValue, value])\n const asHex = useMemo(() => colorValueToHex(!!withAlpha, withDefault), [withDefault, withAlpha])\n\n return (\n <View style={styles.container}>\n <View style={[styles.colorPreview, { backgroundColor: asHex }]}>\n <Text style={styles.hexText}>{asHex}</Text>\n </View>\n <View style={[styles.slidersContainer, active && styles.activeContainer]}>\n <ColorComponentSlider\n label=\"R\"\n gradient={gradients.red}\n value={value?.r}\n onValueChange={updatedRed => handleChange('r', updatedRed)}\n />\n <ColorComponentSlider\n label=\"G\"\n gradient={gradients.green}\n value={value?.g}\n onValueChange={updatedGreen => handleChange('g', updatedGreen)}\n />\n <ColorComponentSlider\n label=\"B\"\n gradient={gradients.blue}\n value={value?.b}\n onValueChange={updatedBlue => handleChange('b', updatedBlue)}\n />\n {withAlpha ? (\n <ColorComponentSlider\n label=\"A\"\n gradient={gradients.midnight}\n value={value?.a}\n onValueChange={updatedAlpha => handleChange('a', updatedAlpha)}\n />\n ) : null}\n </View>\n </View>\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n colorPreview: {\n width: 80,\n height: 80,\n borderRadius: 40,\n justifyContent: 'center',\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n hexText: {\n fontSize: 16,\n color: '#fff',\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: { width: 0, height: 1 },\n textShadowRadius: 2,\n },\n slidersContainer: {\n flex: 1,\n padding: 8,\n borderRadius: 6,\n },\n activeContainer: {\n shadowColor: '#fff',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0.5,\n shadowRadius: 5,\n elevation: 5,\n },\n})\n","import { useBorderColor, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\n\nexport const InputClearButton = ({\n onPress,\n isActive,\n marginRight,\n}: {\n onPress: () => void\n isActive: boolean\n marginRight?: number\n}) => {\n const iconColor = useIconColor()\n const borderColor = useBorderColor()\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.closeButton, { opacity: isActive ? 1 : 0, marginRight, borderColor }]}\n hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}\n disabled={!isActive}>\n <Ionicons name=\"close\" size={14} color={iconColor} style={{ alignSelf: 'center' }} />\n </TouchableOpacity>\n )\n}\n\nexport const DateInputClearButton = ({\n onPress,\n isActive,\n}: {\n onPress: () => void\n isActive: boolean\n}) => {\n return <InputClearButton marginRight={0} onPress={onPress} isActive={isActive} />\n}\n\nconst styles = StyleSheet.create({\n closeButton: {\n padding: 3,\n borderRadius: 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // backgroundColor: '#e2e8f0',\n borderWidth: 1,\n },\n})\n","import { usePlaceholderColor, useTextColor } from '@chem-po/react'\n\nexport const useInputColor = (value?: any) => {\n const textColor = useTextColor()\n const placeholderColor = usePlaceholderColor()\n return value !== undefined && value !== null && value !== '' ? textColor : placeholderColor\n}\n","import { getDateString, InputRef } from '@chem-po/core'\nimport { DateField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { DatePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\nconst parseDate = (date?: Date) =>\n date\n ? `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(\n date.getDate(),\n ).padStart(2, '0')}`\n : undefined\n\nexport const DateInput = forwardRef<InputRef, FieldProps<DateField>>(\n (\n {\n input: { onChange, value, onFocus, onBlur },\n field: { placeholder, minDate, maxDate, optional },\n meta: { active },\n },\n ref,\n ) => {\n const date = useMemo(() => (value ? new Date(`${value}T00:00:00.000`) : undefined), [value])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const showDialog = () => {\n onFocus()\n }\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n const minDateObj = minDate === 'now' ? new Date() : minDate ? new Date(minDate) : undefined\n const maxDateObj = maxDate === 'now' ? new Date() : maxDate ? new Date(maxDate) : undefined\n\n return (\n <View style={styles.container}>\n <TouchableOpacity style={styles.button} onPress={showDialog}>\n <Text style={[styles.text, { color: inputColor }]}>\n {value ? getDateString(value, 'short') : placeholder}\n </Text>\n <Ionicons name=\"calendar\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n <Portal>\n <DatePickerModal\n locale=\"en\"\n label=\"Date\"\n date={date}\n startYear={minDateObj?.getFullYear()}\n endYear={maxDateObj?.getFullYear()}\n mode=\"single\"\n onConfirm={d => {\n onChange(d?.date?.toISOString()?.split('T')[0] ?? null)\n onBlur()\n }}\n onDismiss={onBlur}\n visible={active}\n />\n </Portal>\n </View>\n )\n },\n)\n\nDateInput.displayName = 'DateInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { getDateTimeString, InputRef } from '@chem-po/core'\nimport { DateTimeField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { DatePickerModal, TimePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\nexport const DateTimeInput = forwardRef<InputRef, FieldProps<DateTimeField>>(\n ({ input: { value, onBlur, onChange, onFocus }, field, meta: { active } }, ref) => {\n const { placeholder, optional } = field\n const [showDatePicker, setShowDatePicker] = useState(true)\n const [showTimePicker, setShowTimePicker] = useState(false)\n // const [selectedDate] = useState<Date>(value ? new Date(value) : new Date())\n\n const selectedDate = useMemo(() => (value ? new Date(value) : new Date()), [value])\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const handleDateChange = useCallback(\n (date: string | null) => {\n if (date) {\n const newDate = new Date(date)\n onChange(newDate.toISOString())\n setShowTimePicker(true)\n } else {\n onBlur()\n }\n setShowDatePicker(false)\n },\n [onChange, onBlur],\n )\n\n const handleTimeChange = useCallback(\n ({ hours, minutes }: { hours: number; minutes: number }) => {\n const newDate = selectedDate ? new Date(selectedDate) : new Date()\n newDate.setHours(hours)\n newDate.setMinutes(minutes)\n onChange(newDate.toISOString())\n setShowTimePicker(false)\n onBlur()\n },\n [onChange, onBlur, selectedDate],\n )\n\n const handleDismiss = useCallback(() => {\n setShowDatePicker(true)\n setShowTimePicker(false)\n onBlur()\n }, [onBlur])\n\n const date = useMemo(() => (value ? new Date(value) : undefined), [value])\n\n const formattedValue = useMemo(() => {\n if (!value) return null\n return getDateTimeString(value)\n }, [value])\n\n const hourMinute = useMemo(() => {\n if (!date) return { hours: 0, minutes: 0 }\n return { hours: date.getHours(), minutes: date.getMinutes() }\n }, [date])\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n return (\n <View style={styles.container}>\n <TouchableOpacity\n style={styles.button}\n onPress={() => {\n setShowDatePicker(true)\n onFocus()\n }}>\n <Text style={[styles.text, { color: inputColor }]}>{formattedValue ?? placeholder}</Text>\n <Ionicons name=\"calendar\" size={20} color={iconColor} style={styles.icon} />\n <Ionicons name=\"time\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n <Portal>\n {showDatePicker && (\n <DatePickerModal\n locale=\"en\"\n label=\"Date\"\n date={date}\n mode=\"single\"\n onConfirm={d => {\n handleDateChange(d?.date?.toISOString()?.split('T')[0] ?? null)\n }}\n onDismiss={handleDismiss}\n visible={active && showDatePicker}\n />\n )}\n {showTimePicker && (\n <TimePickerModal\n visible={active && showTimePicker}\n onDismiss={handleDismiss}\n locale=\"en-US\"\n onConfirm={handleTimeChange}\n hours={hourMinute.hours}\n minutes={hourMinute.minutes}\n />\n )}\n </Portal>\n </View>\n )\n },\n)\n\nDateTimeInput.displayName = 'DateTimeInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { FileValue, InputRef } from '@chem-po/core'\nimport { FileField } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport * as DocumentPicker from 'expo-document-picker'\nimport * as ImagePicker from 'expo-image-picker'\nimport { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { LoadingImage } from '../../../loading/LoadingImage'\nimport { FieldProps } from '../../types'\n\nconst generateAccept = (field: FileField) => {\n if (!field.accept) return undefined\n const accept: string[] = []\n if (field.accept.includes('image')) {\n accept.push('image/jpg', 'image/jpeg', 'image/png', 'image/svg', 'image/gif')\n }\n if (field.accept.includes('pdf')) accept.push('application/pdf')\n if (field.accept.includes('audio')) {\n accept.push('audio/mp3', 'audio/wav', 'audio/x-wav', 'audio/webm', 'audio/ogg')\n }\n return accept.join(',')\n}\n\nconst NoFileView = ({ hasUpload }: { hasUpload?: boolean }) => {\n return (\n <View style={styles.noFileContainer}>\n <Text style={styles.noFileText}>{hasUpload ? 'Tap to upload file' : 'No file uploaded'}</Text>\n <Ionicons name=\"cloud-upload\" size={24} color=\"#666\" />\n </View>\n )\n}\n\nexport const FileView = ({\n value,\n hasUpload,\n imageOptions,\n}: {\n value?: FileValue | null\n hasUpload?: boolean\n imageOptions?: any\n}) => {\n const { storagePath, dataUrl } = value ?? {}\n const missingFile = !dataUrl && !storagePath\n\n if (!value || missingFile) {\n return <NoFileView hasUpload={hasUpload} />\n }\n\n if (value.type?.startsWith('image/')) {\n return (\n <LoadingImage\n src={dataUrl}\n width={imageOptions?.width ?? 120}\n height={imageOptions?.height ?? 120}\n style={styles.image}\n />\n )\n }\n\n return (\n <View style={styles.fileContainer}>\n <Ionicons name=\"document\" size={24} color=\"#666\" />\n <Text style={styles.filename}>{value.filename}</Text>\n </View>\n )\n}\n\nexport const FileComponent = forwardRef<InputRef, FieldProps<FileField>>(\n ({ input: { value, onChange }, field }, ref) => {\n const [loading, setLoading] = useState(false)\n const { imageOptions } = field || {}\n\n const handlePickFile = useCallback(async () => {\n try {\n setLoading(true)\n let result: ImagePicker.ImagePickerResult | DocumentPicker.DocumentPickerResult\n\n if (field.accept?.includes('image')) {\n result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ['images'],\n allowsEditing: true,\n quality: 1,\n base64: true,\n })\n\n if (!result.canceled && result.assets[0]) {\n const asset = result.assets[0]\n const fileExtension = asset.uri.split('.').pop() ?? 'jpeg'\n const fileName = asset.uri.split('/').pop() ?? 'image'\n\n onChange({\n ...value,\n dataUrl: asset.uri,\n type: `image/${fileExtension}`,\n filename: fileName,\n })\n }\n } else {\n result = await DocumentPicker.getDocumentAsync({\n type: generateAccept(field),\n })\n\n if (!result.canceled) {\n onChange({\n ...value,\n dataUrl: result.assets[0].uri,\n type: result.assets[0].mimeType,\n filename: result.assets[0].name,\n })\n }\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Error picking file:', error.message)\n }\n } finally {\n setLoading(false)\n }\n }, [field, onChange, value])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n void handlePickFile()\n },\n blur: () => {},\n }))\n\n const isImageField = useMemo(\n () => field.accept && field.accept.length === 1 && field.accept[0] === 'image',\n [field],\n )\n\n const imgOptions = useMemo(\n () =>\n isImageField || value?.type?.startsWith('image/')\n ? {\n height: 120,\n ...imageOptions,\n }\n : undefined,\n [imageOptions, isImageField, value],\n )\n\n return (\n <View style={styles.container}>\n <Text style={styles.placeholder}>{field.placeholder}</Text>\n <TouchableOpacity\n style={styles.contentContainer}\n onPress={() => void handlePickFile()}\n disabled={loading}>\n <FileView hasUpload imageOptions={imgOptions} value={value} />\n </TouchableOpacity>\n </View>\n )\n },\n)\n\nFileComponent.displayName = 'FileComponent'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n },\n placeholder: {\n fontSize: 14,\n opacity: 0.8,\n marginBottom: 4,\n },\n contentContainer: {\n width: '100%',\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 8,\n overflow: 'hidden',\n },\n noFileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n borderWidth: 1,\n borderColor: '#e2e8f0',\n borderRadius: 4,\n borderStyle: 'dashed',\n },\n noFileText: {\n fontSize: 14,\n textAlign: 'center',\n opacity: 0.8,\n marginRight: 8,\n },\n fileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n borderWidth: 1,\n borderColor: '#e2e8f0',\n borderRadius: 4,\n },\n filename: {\n fontSize: 14,\n marginLeft: 8,\n },\n image: {\n borderRadius: 4,\n overflow: 'hidden',\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { MultipleSelectField, useColorMode, usePlaceholderColor } from '@chem-po/react'\nimport { forwardRef, useImperativeHandle } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\n\nexport const MultipleSelectComponent = forwardRef<InputRef, FieldProps<MultipleSelectField>>(\n ({ field, input, inEditable }, ref) => {\n const { options, renderOption, getOptionKey } = field\n const { onChange, value, onFocus, onBlur } = input\n const colorMode = useColorMode()\n\n const placeholderColor = usePlaceholderColor()\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const handleOptionPress = (option: any) => {\n onChange(\n value?.includes(option) ? value.filter(v => v !== option) : [...(value ?? []), option],\n )\n }\n\n const body = (\n <View style={styles.container}>\n {options.map(o => (\n <TouchableOpacity\n key={getOptionKey ? getOptionKey(o) : o}\n style={[styles.option, value?.includes(o) && styles.selectedOption]}\n onPress={() => handleOptionPress(o)}>\n {renderOption(o, colorMode, !!value?.includes(o))}\n </TouchableOpacity>\n ))}\n </View>\n )\n\n return inEditable ? (\n <View style={styles.editableContainer}>\n <Text style={[styles.placeholder, { color: placeholderColor }]}>{field.placeholder}</Text>\n {body}\n </View>\n ) : (\n body\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 4,\n },\n editableContainer: {\n width: '100%',\n paddingVertical: 2,\n },\n placeholder: {\n fontSize: 14,\n fontWeight: '600',\n opacity: 0.8,\n paddingHorizontal: 8,\n marginBottom: 4,\n },\n option: {\n padding: 4,\n opacity: 0.7,\n },\n selectedOption: {\n opacity: 1,\n },\n})\n","import { InputSize } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet } from 'react-native'\n\nconst inputPaddingY: Record<InputSize, number> = {\n xs: 4, // 0.25rem * 16\n sm: 6, // 0.35rem * 16\n md: 8, // 0.5rem * 16\n lg: 8, // 0.5rem * 16\n xl: 8, // 0.5rem * 16\n}\n\nconst inputPaddingX: Record<InputSize, number> = {\n xs: 8, // 0.5rem * 16\n sm: 12, // 0.75rem * 16\n md: 12, // 0.75rem * 16\n lg: 12, // 0.75rem * 16\n xl: 12, // 0.75rem * 16\n}\n\nconst fontSize: Record<InputSize, number> = {\n xs: 12, // 0.75rem * 16\n sm: 14, // 0.875rem * 16\n md: 16, // 1rem * 16\n lg: 18, // 1.125rem * 16\n xl: 20, // 1.25rem * 16\n}\n\nexport const useInputStyle = (size?: InputSize) =>\n useMemo(\n () =>\n StyleSheet.create({\n style: {\n paddingVertical: inputPaddingY[size ?? 'md'],\n paddingHorizontal: inputPaddingX[size ?? 'md'],\n fontSize: fontSize[size ?? 'md'],\n },\n }),\n [size],\n )\n","import { InputRef } from '@chem-po/core'\nimport { CurrencyAmountField, NumberField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { StyleSheet, Text, TextInput, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { useInputStyle } from '../hooks/useInputStyle'\n\nexport const NumberComponent = forwardRef<InputRef, FieldProps<NumberField> & { prefix?: string }>(\n ({ input: { onChange, value, ...input }, field, size, prefix, inEditable: _, ...props }, ref) => {\n const { type, defaultValue, placeholder } = field\n const color = useTextColor()\n const { style } = useInputStyle(size)\n const inputRef = useInputImperativeHandle(ref)\n const [endsWith, setEndsWith] = useState('')\n const displayed = typeof value === 'number' && !Number.isNaN(value) ? `${value}${endsWith}` : ''\n\n const placeholderColor = usePlaceholderColor()\n\n if (type === 'slider') {\n return (\n <InputSlider\n label={placeholder}\n onValueChange={onChange}\n value={value}\n minimumValue={defaultValue}\n />\n )\n }\n\n return (\n <View style={styles.container}>\n {prefix && <Text style={styles.prefix}>{prefix}</Text>}\n <TextInput\n ref={inputRef}\n style={[styles.input, style, { color }]}\n // style={styles.input}\n placeholder={field.placeholder}\n placeholderTextColor={placeholderColor}\n keyboardType=\"numeric\"\n value={displayed}\n onChangeText={text => {\n if (text.endsWith('.')) {\n setEndsWith('.')\n } else if (text.includes('.') && text.endsWith('0')) {\n setEndsWith('0')\n } else {\n setEndsWith('')\n }\n const num = parseFloat(text)\n onChange(!isNaN(num) ? num : undefined)\n }}\n {...input}\n // {...props}\n />\n </View>\n )\n },\n)\n\nconst BaseCurrencyAmountComponent = (\n { field, ...props }: FieldProps<CurrencyAmountField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return <NumberComponent prefix=\"$\" field={{ ...field, _type: 'number' }} {...props} />\n}\n\nexport const CurrencyAmountComponent = forwardRef<InputRef, FieldProps<CurrencyAmountField>>(\n BaseCurrencyAmountComponent as any,\n)\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n },\n input: {\n flex: 1,\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n },\n prefix: {\n marginRight: 4,\n fontSize: 16,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport {\n SelectField,\n useBackgroundColor,\n useBorderColor,\n useIconColor,\n usePlaceholderColor,\n} from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { ForwardedRef, forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport { Modal, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Txt } from '../../../text/Txt'\nimport { FieldProps } from '../../types'\nimport { InputClearButton } from '../common/InputClearButton'\n\ntype SelectOption<T extends SelectField> = T['options'][number]\n\nconst BaseSelectComponent = <T extends SelectField>(\n { field, input, meta }: FieldProps<T>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder, options, renderOption, getOptionKey, optional } = field\n const { onChange, value, onFocus, onBlur } = input\n const { active } = meta\n const [buttonLayout, setButtonLayout] = useState({ x: 0, y: 0, width: 0, height: 0 })\n const buttonRef = useRef<View>(null)\n\n const selected = useMemo(() => {\n if (!value) return undefined\n return options.find(o => {\n if (getOptionKey) {\n const key1 = getOptionKey(o)\n const key2 = getOptionKey(value)\n return key1 === key2\n }\n return o === value\n })\n }, [value, options, getOptionKey])\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n // setIsOpen(true)\n },\n blur: () => {\n onBlur()\n // setIsOpen(false)\n },\n }))\n\n const handleButtonLayout = () => {\n buttonRef.current?.measure((_x, _y, width, height, pageX, pageY) => {\n setButtonLayout({ x: pageX, y: pageY, width, height })\n })\n }\n\n const renderOptionText = (option: T['options'][number], isSelected: boolean) => {\n if (typeof renderOption === 'function') {\n return renderOption(option, 'light', isSelected)\n }\n if (typeof option === 'object') {\n return <Txt>{JSON.stringify(option)}</Txt>\n }\n return <Txt>{String(option)}</Txt>\n }\n\n const getKey = (option: SelectOption<T>): string => {\n if (getOptionKey) {\n const key = getOptionKey(option)\n return typeof key === 'object' ? JSON.stringify(key) : String(key)\n }\n return typeof option === 'object' ? JSON.stringify(option) : String(option)\n }\n\n const handleOptionPress = (option: SelectOption<T>) => {\n onChange(option)\n onBlur()\n // setIsOpen(false)\n }\n\n const iconColor = useIconColor()\n const placeholderColor = usePlaceholderColor()\n const menuBg = useBackgroundColor(200)\n const selectedOptionBg = useBackgroundColor(300)\n const borderColor = useBorderColor()\n return (\n <View style={styles.wrapper}>\n <View ref={buttonRef} onLayout={handleButtonLayout} style={styles.container}>\n <TouchableOpacity\n style={[styles.button]}\n onPress={() => {\n if (active) {\n onBlur()\n } else {\n onFocus()\n }\n }}>\n <View>\n {selected ? (\n renderOptionText(selected, true)\n ) : (\n <Text style={[styles.placeholder, { color: placeholderColor }]}>{placeholder}</Text>\n )}\n </View>\n <View style={styles.iconsContainer}>\n {optional ? (\n <InputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n <Ionicons name={active ? 'chevron-up' : 'chevron-down'} size={20} color={iconColor} />\n </View>\n </TouchableOpacity>\n </View>\n <Modal visible={active} transparent animationType=\"fade\" onRequestClose={() => onBlur()}>\n <TouchableOpacity style={styles.modalOverlay} activeOpacity={1} onPress={() => onBlur()}>\n <View\n style={[\n styles.dropdownContainer,\n {\n position: 'absolute',\n top: buttonLayout.y + buttonLayout.height + 4,\n left: buttonLayout.x,\n width: buttonLayout.width,\n backgroundColor: menuBg,\n borderColor,\n },\n ]}>\n <ScrollView style={styles.dropdown}>\n {options.map((option: SelectOption<T>) => {\n const key = getKey(option)\n const isSelected = option === selected\n return (\n <TouchableOpacity\n key={key}\n style={[\n styles.option,\n { borderColor },\n isSelected && { backgroundColor: selectedOptionBg },\n ]}\n onPress={() => handleOptionPress(option)}>\n <View>{renderOptionText(option, isSelected)}</View>\n </TouchableOpacity>\n )\n })}\n </ScrollView>\n </View>\n </TouchableOpacity>\n </Modal>\n </View>\n )\n}\n\nexport const SelectComponent = forwardRef(BaseSelectComponent)\n\nconst styles = StyleSheet.create({\n wrapper: {\n width: '100%',\n },\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n borderRadius: 4,\n },\n buttonText: {\n fontSize: 16,\n flex: 1,\n },\n modalOverlay: {\n flex: 1,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n dropdownContainer: {\n backgroundColor: 'white',\n borderWidth: 1,\n borderColor: '#ddd',\n borderRadius: 4,\n maxHeight: 200,\n elevation: 3,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n padding: 0,\n },\n dropdown: {\n maxHeight: 200,\n },\n option: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderBottomWidth: 1,\n },\n optionText: {\n fontSize: 16,\n },\n iconsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n placeholder: {\n color: '#666',\n },\n})\n","import { getHandle, InputRef, SocialMediaSites } from '@chem-po/core'\nimport { SocialMediaField } from '@chem-po/react'\nimport {\n FC,\n ForwardedRef,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Modal, StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\nconst siteToIcon: Record<SocialMediaSites, string> = {\n facebook: 'facebook',\n instagram: 'instagram',\n twitter: 'twitter',\n youtube: 'youtube',\n soundcloud: 'soundcloud',\n}\n\nconst SocialMediaSiteInput: FC<{\n site: SocialMediaSites\n value?: string\n onChange: (v?: string) => void\n isModalVisible: boolean\n onModalClose: () => void\n}> = ({ site, value, onChange, isModalVisible, onModalClose }) => {\n const { handle, error } = useMemo(() => {\n try {\n const h = getHandle(site, value)\n return { handle: h }\n } catch (e: any) {\n return { error: e?.message ?? 'Error parsing handle' }\n }\n }, [value, site])\n\n const displayedText = useMemo(\n () => (handle ? `${site.toUpperCase()}: ${handle}` : site.toUpperCase()),\n [site, handle],\n )\n\n return (\n <>\n <TouchableOpacity\n style={[styles.iconButton, !handle && styles.iconButtonInactive]}\n onPress={() => onModalClose()}>\n <Text style={styles.iconText}>{siteToIcon[site]}</Text>\n </TouchableOpacity>\n\n <Modal\n visible={isModalVisible}\n transparent={true}\n animationType=\"slide\"\n onRequestClose={onModalClose}>\n <View style={styles.modalContainer}>\n <View style={styles.modalContent}>\n <Text style={styles.modalTitle}>{displayedText}</Text>\n {error && <Text style={styles.errorText}>{error}</Text>}\n <TextInput\n style={styles.modalInput}\n onChangeText={onChange}\n placeholder=\"Handle or URL\"\n value={value}\n autoCapitalize=\"none\"\n autoCorrect={false}\n />\n <TouchableOpacity style={styles.closeButton} onPress={onModalClose}>\n <Text style={styles.closeButtonText}>Close</Text>\n </TouchableOpacity>\n </View>\n </View>\n </Modal>\n </>\n )\n}\n\nexport const SocialMediaComponent = forwardRef<InputRef, FieldProps<SocialMediaField>>(\n (props: FieldProps<SocialMediaField>, ref: ForwardedRef<InputRef>) => {\n const {\n input: { value, onChange },\n field: { sites },\n } = props\n\n const [selectedSite, setSelectedSite] = useState<SocialMediaSites | null>(null)\n\n const handleChange = useCallback(\n (site: SocialMediaSites, v?: string) => {\n const { [site]: _curr, ...rest } = value ?? {}\n if (!v && Object.keys(rest).length === 0) {\n onChange({ target: { value: undefined } })\n }\n if (!v) onChange(rest)\n onChange({ ...rest, [site]: v })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n blur: () => {},\n focus: () => {},\n }))\n\n return (\n <View style={styles.container}>\n <Text style={styles.title}>Links</Text>\n <View style={styles.iconsContainer}>\n {(!sites || sites.facebook) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('facebook', v)}\n site=\"facebook\"\n value={value?.facebook}\n isModalVisible={selectedSite === 'facebook'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.instagram) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('instagram', v)}\n site=\"instagram\"\n value={value?.instagram}\n isModalVisible={selectedSite === 'instagram'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.twitter) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('twitter', v)}\n site=\"twitter\"\n value={value?.twitter}\n isModalVisible={selectedSite === 'twitter'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.youtube) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('youtube', v)}\n site=\"youtube\"\n value={value?.youtube}\n isModalVisible={selectedSite === 'youtube'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n {(!sites || sites.soundcloud) && (\n <SocialMediaSiteInput\n onChange={v => handleChange('soundcloud', v)}\n site=\"soundcloud\"\n value={value?.soundcloud}\n isModalVisible={selectedSite === 'soundcloud'}\n onModalClose={() => setSelectedSite(null)}\n />\n )}\n </View>\n </View>\n )\n },\n)\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 8,\n },\n title: {\n fontSize: 16,\n fontWeight: 'bold',\n marginBottom: 8,\n color: '#1A202C',\n },\n iconsContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 8,\n },\n iconButton: {\n width: 34,\n height: 34,\n borderRadius: 17,\n backgroundColor: '#EDF2F7',\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconButtonInactive: {\n opacity: 0.6,\n },\n iconText: {\n fontSize: 12,\n color: '#1A202C',\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n modalContent: {\n backgroundColor: 'white',\n borderRadius: 8,\n padding: 16,\n width: '80%',\n maxWidth: 300,\n },\n modalTitle: {\n fontSize: 16,\n fontWeight: 'bold',\n marginBottom: 8,\n color: '#1A202C',\n },\n errorText: {\n color: '#E53E3E',\n fontSize: 14,\n marginBottom: 8,\n padding: 4,\n backgroundColor: '#FFF5F5',\n },\n modalInput: {\n borderWidth: 1,\n borderColor: '#E2E8F0',\n borderRadius: 4,\n padding: 8,\n marginBottom: 16,\n fontSize: 16,\n },\n closeButton: {\n backgroundColor: '#EDF2F7',\n padding: 8,\n borderRadius: 4,\n alignItems: 'center',\n },\n closeButtonText: {\n color: '#1A202C',\n fontSize: 16,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { TextField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { StyleSheet, TextInput, TouchableOpacity, View } from 'react-native'\nimport { FieldProps } from '../../types'\nimport { TextAreaComponent } from './textarea'\n\nexport const TextComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, inEditable, meta, field }, ref) => {\n const { placeholder, type } = field\n const [isHidden, setIsHidden] = useState(type === 'password')\n const { value, onChange, ...inputProps } = input\n const inputRef = useRef<TextInput>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n\n const placeholderColor = usePlaceholderColor()\n const color = useTextColor()\n const body =\n type === 'textarea' ? (\n <TextAreaComponent inEditable={inEditable} field={field} input={input} meta={meta} />\n ) : (\n <TextInput\n ref={inputRef}\n style={[\n styles.input,\n inEditable && styles.inEditable,\n type === 'password' && styles.passwordInput,\n { color },\n ]}\n secureTextEntry={isHidden}\n placeholderTextColor={placeholderColor}\n placeholder={placeholder}\n value={value ?? ''}\n onChangeText={onChange}\n {...inputProps}\n />\n )\n\n return type === 'password' ? (\n <View style={styles.passwordContainer}>\n {body}\n <TouchableOpacity style={styles.eyeIcon} onPress={() => setIsHidden(!isHidden)}>\n <Ionicons name={isHidden ? 'eye' : 'eye-off'} size={20} color=\"#666\" />\n </TouchableOpacity>\n </View>\n ) : (\n body\n )\n },\n)\n\nTextComponent.displayName = 'TextComponent'\n\nconst styles = StyleSheet.create({\n input: {\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n inEditable: {\n paddingHorizontal: 0,\n paddingVertical: 0,\n height: 'auto',\n },\n passwordInput: {\n paddingRight: 40,\n },\n passwordContainer: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n position: 'relative',\n },\n eyeIcon: {\n position: 'absolute',\n right: 12,\n padding: 4,\n },\n})\n","import { InputRef } from '@chem-po/core'\nimport { TextField, usePlaceholderColor, useTextColor } from '@chem-po/react'\nimport { forwardRef, useImperativeHandle, useRef } from 'react'\nimport { StyleSheet, TextInput } from 'react-native'\nimport { FieldProps } from '../../types'\n\nexport const TextAreaComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, field, inEditable }, ref) => {\n const inputRef = useRef<TextInput>(null)\n const { value, onChange, ...inputProps } = input\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n\n const placeholderColor = usePlaceholderColor()\n const color = useTextColor()\n\n return (\n <TextInput\n ref={inputRef}\n style={[styles.textarea, inEditable && styles.inEditable, { color }]}\n placeholder={field.placeholder}\n placeholderTextColor={placeholderColor}\n multiline\n numberOfLines={2}\n maxLength={200}\n textAlignVertical=\"top\"\n value={value ?? ''}\n onChangeText={onChange}\n {...inputProps}\n />\n )\n },\n)\n\nTextAreaComponent.displayName = 'TextAreaComponent'\n\nconst styles = StyleSheet.create({\n textarea: {\n width: '100%',\n minHeight: 80,\n paddingHorizontal: 12,\n paddingVertical: 8,\n backgroundColor: 'transparent',\n textAlignVertical: 'top',\n },\n inEditable: {\n paddingHorizontal: 0,\n paddingVertical: 0,\n },\n})\n","import { InputRef, padZeros } from '@chem-po/core'\nimport { TimeField, useIconColor } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { forwardRef, useImperativeHandle, useMemo, useState } from 'react'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Portal } from 'react-native-paper'\nimport { TimePickerModal } from 'react-native-paper-dates'\nimport { FieldProps } from '../../types'\nimport { DateInputClearButton } from '../common/InputClearButton'\nimport { useInputColor } from '../hooks/useInputColor'\n\nexport const TimeInput = forwardRef<InputRef, FieldProps<TimeField>>(\n ({ input: { onChange, value, onFocus, onBlur }, field: { placeholder, optional } }, ref) => {\n const [visible, setVisible] = useState(false)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n setVisible(true)\n onFocus()\n },\n blur: () => {\n setVisible(false)\n onBlur()\n },\n }))\n\n const handleTimeChange = ({ hours, minutes }: { hours: number; minutes: number }) => {\n setVisible(false)\n const timeString = `${padZeros(hours)}:${padZeros(minutes)}`\n onChange(timeString)\n onBlur()\n }\n\n const handleDismiss = () => {\n setVisible(false)\n onBlur()\n }\n\n const formattedValue = useMemo(() => {\n if (!value) return null\n const [hours, minutes] = value.split(':').map(Number)\n const amPm = hours >= 12 ? 'PM' : 'AM'\n const formattedHours = hours % 12 === 0 ? 12 : hours % 12\n return `${formattedHours}:${padZeros(minutes)} ${amPm}`\n }, [value])\n\n const { hours, minutes } = useMemo(() => {\n if (!value) return { hours: 0, minutes: 0 }\n const [h, m] = value.split(':').map(Number)\n return { hours: h, minutes: m }\n }, [value])\n\n const iconColor = useIconColor()\n const inputColor = useInputColor(value)\n\n return (\n <View style={styles.container}>\n <TouchableOpacity\n style={styles.button}\n onPress={() => {\n setVisible(true)\n onFocus()\n }}>\n <Text style={[styles.text, { color: inputColor }]}>{formattedValue ?? placeholder}</Text>\n <Ionicons name=\"time\" size={20} color={iconColor} style={styles.icon} />\n {optional && value ? (\n <DateInputClearButton onPress={() => onChange(null)} isActive={!!value} />\n ) : null}\n </TouchableOpacity>\n <Portal>\n <TimePickerModal\n visible={visible}\n onDismiss={handleDismiss}\n onConfirm={handleTimeChange}\n hours={hours}\n minutes={minutes}\n />\n </Portal>\n </View>\n )\n },\n)\n\nTimeInput.displayName = 'TimeInput'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n button: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n text: {\n fontSize: 16,\n flex: 1,\n },\n icon: {\n marginRight: 10,\n },\n})\n","import { FieldType, InputRef } from '@chem-po/core'\nimport { Field, TypedField, useBackgroundColor, useThemeValue } from '@chem-po/react'\nimport { ForwardedRef, forwardRef, ForwardRefExoticComponent, useEffect, useMemo } from 'react'\nimport { Animated, StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { FieldProps } from '../types'\nimport { BooleanComponent } from './boolean'\nimport { ColorComponent } from './color'\nimport { DateInput } from './date'\nimport { DateTimeInput } from './datetime'\nimport { FileComponent } from './file'\nimport { MultipleSelectComponent } from './multipleSelect'\nimport { CurrencyAmountComponent, NumberComponent } from './number'\nimport { SelectComponent } from './select'\nimport { SocialMediaComponent } from './socialMedia'\nimport { TextComponent } from './text'\nimport { TimeInput } from './time'\n\ntype ComponentType<T extends Field> = ForwardRefExoticComponent<\n FieldProps<T> & React.RefAttributes<InputRef>\n>\n\nconst Components: { [Key in FieldType]: ComponentType<TypedField<Key>> } = {\n text: TextComponent,\n file: FileComponent,\n boolean: BooleanComponent,\n select: SelectComponent,\n multipleSelect: MultipleSelectComponent,\n currency: CurrencyAmountComponent,\n number: NumberComponent,\n date: DateInput,\n datetime: DateTimeInput,\n time: TimeInput,\n socialMedia: SocialMediaComponent,\n color: ColorComponent,\n}\n\nconst InputBase = <T extends Field>(props: FieldProps<T>, ref: ForwardedRef<InputRef>) => {\n const {\n field,\n meta: { error, active, touched },\n input,\n inEditable,\n } = props\n\n const { value } = input\n\n const placeholderColor = useThemeValue('colors.text.500')\n const activeColor = useThemeValue('colors.accent.400')\n const errorColor = useThemeValue('colors.error.200')\n\n const shadowColorAnim = useMemo(() => new Animated.Value(0), [])\n\n const displayedError = useMemo(() => {\n if (error && touched) return error\n return null\n }, [error, touched])\n const shadowColor = useMemo(() => {\n if (displayedError) return '#ff7777'\n return activeColor\n }, [displayedError, activeColor])\n\n useEffect(() => {\n Animated.timing(shadowColorAnim, {\n toValue: active || displayedError ? 1 : 0,\n duration: 300,\n useNativeDriver: false,\n }).start()\n }, [active, displayedError, shadowColorAnim])\n\n const animatedShadowColor = shadowColorAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [placeholderColor, shadowColor],\n })\n\n // console.log(`color: ${shadowColor}`)\n const { _type, label } = field\n const showPlaceholder = useMemo(\n () => _type === 'multipleSelect' || (!!value && _type !== 'file' && _type !== 'boolean'),\n [value, _type],\n )\n\n const bg = useBackgroundColor(150)\n\n const animatedStyles = useMemo(() => {\n if (inEditable) return {}\n switch (_type) {\n case 'text':\n case 'number':\n case 'currency':\n case 'select':\n case 'datetime':\n case 'date':\n case 'time':\n return {\n shadowColor: animatedShadowColor,\n shadowOffset: { width: 0, height: 0 },\n shadowOpacity: 1,\n shadowRadius: 7,\n elevation: 10,\n backgroundColor: bg,\n } as Animated.WithAnimatedValue<ViewStyle>\n default:\n return {}\n }\n }, [_type, animatedShadowColor, inEditable, bg])\n\n const Component = useMemo(() => Components[_type] as ComponentType<T>, [_type])\n\n const paddingBottom = useMemo(() => {\n if (inEditable) return 0\n return error && touched ? 24 : 8\n }, [inEditable, error, touched])\n\n return (\n <View style={[staticStyles.container, { paddingBottom }]}>\n {label && !inEditable ? <Text style={staticStyles.label}>{label}</Text> : null}\n <Animated.View style={[staticStyles.inputContainer, animatedStyles]}>\n <Component ref={ref} {...props} />\n </Animated.View>\n {!inEditable && (\n <>\n <Text\n style={[\n staticStyles.errorText,\n { opacity: error && touched ? 1 : 0, color: errorColor },\n ]}>\n {error}\n </Text>\n <Text style={[staticStyles.placeholder, { opacity: showPlaceholder ? 1 : 0 }]}>\n {field.placeholder ?? ''}\n </Text>\n </>\n )}\n {/* {optional && !inEditable ? <OptionalTag field={field} value={value} /> : null} */}\n </View>\n )\n}\n\nconst staticStyles = StyleSheet.create({\n container: {\n position: 'relative',\n width: '100%',\n paddingVertical: 4,\n paddingHorizontal: 4,\n },\n label: {\n color: '#1A202C',\n fontSize: 14,\n paddingHorizontal: 8,\n },\n inputContainer: {\n width: '100%',\n borderRadius: 4,\n paddingVertical: 1,\n overflow: 'hidden',\n },\n errorText: {\n position: 'absolute',\n bottom: 0,\n fontSize: 14,\n paddingHorizontal: 4,\n color: '#E53E3E',\n },\n placeholder: {\n position: 'absolute',\n top: -16,\n fontSize: 14,\n paddingHorizontal: 4,\n color: 'rgba(0,0,0,0.6)',\n },\n})\n\nexport const Input = forwardRef<InputRef, FieldProps<Field>>(InputBase)\n","import { InputRef } from '@chem-po/core'\nimport { Field, useField } from '@chem-po/react'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { ChangeHandler, Controller } from 'react-hook-form'\nimport { Input } from './input/input'\n\nconst FieldComponentBase = (\n { field, name }: { field: Field; name: string },\n ref: ForwardedRef<InputRef>,\n) => {\n const { control, getOnChange, meta, onFocus, onBlur: fieldBlur } = useField(name, field)\n\n return (\n <Controller<Field['defaultValue']>\n control={control}\n name={name}\n render={({ field: { name: _, ref: _r, onBlur, ...inputProps } }) => {\n return (\n <Input\n ref={ref}\n field={field}\n input={{\n ...inputProps,\n onFocus,\n onBlur: () => {\n fieldBlur()\n onBlur()\n },\n onChange: getOnChange(inputProps.onChange as ChangeHandler),\n }}\n meta={meta}\n />\n )\n }}\n />\n )\n}\n\nexport const FieldComponent = forwardRef(FieldComponentBase)\n","import { UploadsProgressEvent } from '@chem-po/core'\nimport { useMemo } from 'react'\nimport { Animated, StyleSheet, Text, View } from 'react-native'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'column',\n },\n progressContainer: {\n paddingHorizontal: 8,\n height: 26,\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n progressBar: {\n height: '100%',\n width: '100%',\n borderRadius: 13,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n overflow: 'hidden',\n },\n progressFill: {\n height: '100%',\n backgroundColor: '#3182CE', // Default blue color, can be customized\n },\n label: {\n position: 'absolute',\n color: 'white',\n fontSize: 12,\n fontWeight: '500',\n textTransform: 'uppercase',\n textShadowColor: 'rgba(0, 0, 0, 0.67)',\n textShadowOffset: { width: 1, height: 1 },\n textShadowRadius: 3,\n },\n})\n\nexport const UploadProgress = ({ uploads }: { uploads: UploadsProgressEvent }) => {\n const asArr = useMemo(() => Object.values(uploads), [uploads])\n\n return (\n <View style={styles.container}>\n {asArr.map(upload => (\n <Animated.View key={upload.label} style={styles.progressContainer}>\n <View style={styles.progressBar}>\n <Animated.View\n style={[\n styles.progressFill,\n {\n width: `${upload.percent * 100}%`,\n },\n ]}\n />\n </View>\n <Text style={styles.label}>{upload.label}</Text>\n </Animated.View>\n ))}\n </View>\n )\n}\n","import { palette } from '@chem-po/core'\nimport { FormProps, useChempoForm, UseSubmitData } from '@chem-po/react'\nimport { FC, PropsWithChildren } from 'react'\nimport { useFormState } from 'react-hook-form'\nimport { ActivityIndicator, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { UploadProgress } from './UploadProgress'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n progressContainer: {\n height: 5,\n width: '100%',\n },\n footerContainer: {\n flexDirection: 'row',\n paddingVertical: 8,\n borderTopWidth: 1,\n borderTopColor: palette.gray.light,\n paddingHorizontal: 12,\n width: '100%',\n },\n cancelButton: {\n flex: 1,\n paddingVertical: 8,\n paddingHorizontal: 16,\n borderWidth: 1,\n borderColor: '#cdcdcd',\n borderRadius: 4,\n marginRight: 8,\n },\n cancelButtonText: {\n color: '#777',\n textAlign: 'center',\n },\n submitButton: {\n flex: 1,\n paddingVertical: 8,\n paddingHorizontal: 16,\n borderRadius: 4,\n backgroundColor: palette.cyan.light,\n },\n submitButtonText: {\n color: '#fff',\n textAlign: 'center',\n },\n errorText: {\n color: 'red',\n paddingHorizontal: 12,\n paddingVertical: 4,\n },\n disabledButton: {\n opacity: 0.5,\n },\n})\n\nconst CancelButton = ({ onBack, children }: PropsWithChildren<{ onBack: () => void }>) => (\n <TouchableOpacity style={styles.cancelButton} onPress={onBack}>\n <Text style={styles.cancelButtonText}>{children}</Text>\n </TouchableOpacity>\n)\n\nexport const SubmitButton: FC<\n PropsWithChildren<{ onSubmitClick: () => void; submitting: boolean }>\n> = ({ onSubmitClick, submitting, children }) => (\n <TouchableOpacity\n style={[styles.submitButton, submitting && styles.disabledButton]}\n onPress={onSubmitClick}\n disabled={submitting}>\n {submitting ? (\n <ActivityIndicator color=\"#fff\" />\n ) : (\n <Text style={styles.submitButtonText}>{children}</Text>\n )}\n </TouchableOpacity>\n)\n\nconst FormErrorView = () => {\n const { formError } = useChempoForm()\n if (!formError) return null\n return <Text style={styles.errorText}>{formError}</Text>\n}\n\nexport const FormFooter = ({\n isLoading,\n uploads,\n onSubmit,\n renderFooter,\n onBack,\n buttonText,\n}: Pick<FormProps, 'renderFooter' | 'onBack' | 'buttonText'> &\n Pick<UseSubmitData, 'isLoading' | 'uploads'> & {\n onSubmit: () => void\n }) => {\n const { isSubmitting: submitting, isValid: valid } = useFormState()\n\n return (\n <View style={styles.container}>\n {isLoading && (\n <View style={styles.progressContainer}>\n <ActivityIndicator />\n </View>\n )}\n <UploadProgress uploads={uploads} />\n <FormErrorView />\n {renderFooter ? (\n renderFooter({})\n ) : (\n <View style={styles.footerContainer}>\n {onBack && <CancelButton onBack={onBack}>Cancel</CancelButton>}\n <SubmitButton onSubmitClick={onSubmit} submitting={submitting || !valid}>\n {buttonText}\n </SubmitButton>\n </View>\n )}\n </View>\n )\n}\n","import { palette } from '@chem-po/core'\nimport { EditableProps, Field, useColorModeValue, useEditable } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { useEffect, useMemo } from 'react'\nimport { StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native'\nimport { LoadingOverlay } from '../../loading/Loading'\nimport { UploadProgress } from '../UploadProgress'\nimport { FieldView } from '../view'\nimport { StandaloneInput } from './StandaloneInput'\n\nexport const Editable = <T extends Field>({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n style,\n onEditClose,\n onEditOpen,\n}: EditableProps<ViewStyle, T>) => {\n const {\n formattedValue,\n inputRef,\n setValue,\n isLoading,\n uploads,\n editHovered,\n handleEditOpen,\n handleEditClose,\n isEditing,\n value,\n setEditHovered,\n submit,\n parse,\n } = useEditable({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n onEditOpen,\n onEditClose,\n })\n\n const alwaysEditing = useMemo(() => field._type === 'file' || field._type === 'boolean', [field])\n\n useEffect(() => {\n if (isEditing) {\n inputRef.current?.focus()\n }\n }, [isEditing, inputRef])\n\n const editingBorderColor = useColorModeValue('#00000055', '#ffffff55')\n\n return (\n <View\n style={[\n styles.container,\n {\n borderColor: editHovered && !isEditing ? editingBorderColor : 'transparent',\n },\n style,\n ]}>\n <View style={styles.contentContainer}>\n <View\n style={[\n styles.inputContainer,\n {\n opacity: isLoading ? 0 : 1,\n borderColor: isEditing ? editingBorderColor : 'transparent',\n },\n ]}>\n {isEditing || alwaysEditing ? (\n <StandaloneInput\n ref={inputRef}\n value={formattedValue}\n inEditable\n field={field}\n style={[styles.input, style]}\n onChange={alwaysEditing ? v => submit(parse(v)) : v => setValue(parse(v))}\n />\n ) : (\n <FieldView style={style} field={field} value={value} />\n )}\n </View>\n\n {!alwaysEditing && (\n <>\n <TouchableOpacity\n style={styles.editButton}\n onPress={() => {\n if (isEditing) {\n setValue(value)\n handleEditClose()\n } else {\n handleEditOpen()\n }\n }}\n onPressIn={() => setEditHovered(true)}\n onPressOut={() => setEditHovered(false)}>\n <Ionicons\n name={isEditing ? 'close' : 'create-outline'}\n size={20}\n color={palette.gray.medium}\n />\n </TouchableOpacity>\n\n <View\n style={[\n styles.submitButtonContainer,\n {\n width: isEditing ? 30 : 0,\n opacity: isEditing ? 1 : 0,\n },\n ]}>\n <TouchableOpacity\n style={[styles.submitButton, { backgroundColor: palette.cyan.light }]}\n onPress={() => void submit(value)}>\n <Ionicons name=\"checkmark\" size={20} color=\"#fff\" />\n </TouchableOpacity>\n </View>\n </>\n )}\n <LoadingOverlay isLoading={isLoading} />\n </View>\n <UploadProgress uploads={uploads} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 4,\n borderWidth: 1,\n borderStyle: 'dashed',\n width: '100%',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 4,\n position: 'relative',\n width: '100%',\n },\n inputContainer: {\n flex: 1,\n minWidth: 0,\n borderWidth: 1,\n borderStyle: 'dashed',\n },\n input: {\n padding: 0,\n },\n editButton: {\n padding: 4,\n marginLeft: 4,\n },\n submitButtonContainer: {\n justifyContent: 'flex-end',\n overflow: 'hidden',\n },\n submitButton: {\n padding: 4,\n borderRadius: 4,\n },\n})\n","import { ImageViewOptions } from '@chem-po/core'\nimport { FileField } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { FileView } from '../input/file'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n },\n rowContainer: {\n flexDirection: 'row',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n emptyText: {\n opacity: 0.7,\n },\n fileContainer: {\n padding: 4,\n },\n})\n\nexport const FileFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: FileField\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { imageOptions, placeholder } = field\n const options = useMemo<ImageViewOptions>(\n () => ({\n height: 150,\n ...imageOptions,\n }),\n [imageOptions],\n )\n\n return (\n <View style={[value ? styles.container : styles.rowContainer, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n {value ? (\n <View style={styles.fileContainer}>\n <FileView imageOptions={options} value={value} />\n </View>\n ) : (\n <Text style={styles.emptyText}>None</Text>\n )}\n </View>\n )\n}\n","import { MultipleSelectField } from '@chem-po/react'\nimport { StyleSheet, Text, useColorScheme, View, ViewStyle } from 'react-native'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n maxWidth: '100%',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n optionContainer: {\n padding: 2,\n },\n emptyText: {\n opacity: 0.6,\n },\n})\n\nexport const MultipleSelectFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: MultipleSelectField\n value: any[]\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder, renderOption, getOptionKey } = field\n const colorScheme = useColorScheme() ?? 'light'\n\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n {value ? (\n value.map((v: any) => (\n <View key={getOptionKey ? getOptionKey(v) : v} style={styles.optionContainer}>\n {renderOption(v, colorScheme, true)}\n </View>\n ))\n ) : (\n <Text style={styles.emptyText}>None</Text>\n )}\n </View>\n )\n}\n","import { SelectField, usePlaceholderColor } from '@chem-po/react'\nimport { StyleSheet, Text, useColorScheme, View, ViewStyle } from 'react-native'\nimport { Txt } from '../../text'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n})\n\nconst DefaultRenderOption = (value: any) => {\n return <Txt>{typeof value === 'string' ? value : JSON.stringify(value)}</Txt>\n}\n\nexport const SelectFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: SelectField\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder, renderOption: customRender } = field\n const colorScheme = useColorScheme() ?? 'light'\n const placeholderColor = usePlaceholderColor()\n const renderOption = customRender ?? DefaultRenderOption\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={[styles.label, { color: placeholderColor }]}>{placeholder}</Text>}\n {value ? renderOption(value, colorScheme, true) : 'None'}\n </View>\n )\n}\n","import { formatField } from '@chem-po/core'\nimport { Field } from '@chem-po/react'\nimport { useMemo } from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\nimport { FileFieldView } from './file'\nimport { MultipleSelectFieldView } from './multipleSelect'\nimport { SelectFieldView } from './select'\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n label: {\n paddingRight: 8,\n opacity: 0.7,\n fontWeight: '600',\n },\n value: {\n opacity: 1,\n },\n valueEmpty: {\n opacity: 0.6,\n },\n})\n\nconst DefaultFieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n const { placeholder } = field\n\n const formatted = useMemo(() => {\n const format = formatField[field._type]\n if (!format) return value\n return format(field, value)\n }, [value, field])\n\n return (\n <View style={[styles.container, style]}>\n {!noLabel && <Text style={styles.label}>{placeholder}</Text>}\n <Text style={value !== undefined && value !== null ? styles.value : styles.valueEmpty}>\n {formatted ?? 'None'}\n </Text>\n </View>\n )\n}\n\nexport const FieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: ViewStyle\n}) => {\n switch (field._type) {\n case 'select':\n return <SelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'multipleSelect':\n return <MultipleSelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'file':\n return <FileFieldView style={style} field={field} value={value} noLabel={noLabel} />\n default:\n return <DefaultFieldView style={style} field={field} value={value} noLabel={noLabel} />\n }\n}\n","import { InputRef } from '@chem-po/core'\nimport { Field, useStandaloneInput } from '@chem-po/react'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { StyleProp, ViewStyle } from 'react-native'\nimport { Input } from './input'\n\ninterface StandaloneInputProps {\n onChange: (v?: any) => void\n value?: any\n field: Field\n onBlur?: () => void\n onFocus?: () => void\n theme?: 'basic' | 'detailed'\n inEditable?: boolean\n style?: StyleProp<ViewStyle>\n}\n\nconst StandaloneInputBase = (\n { onChange, value, field, onBlur, inEditable, onFocus, style }: StandaloneInputProps,\n ref: ForwardedRef<InputRef>,\n) => {\n const { inputProps, meta } = useStandaloneInput(field, value, onChange, onFocus, onBlur)\n\n return (\n <Input\n ref={ref}\n field={field}\n inEditable={inEditable}\n style={style}\n input={inputProps}\n meta={meta}\n />\n )\n}\n\nexport const StandaloneInput = forwardRef(StandaloneInputBase)\n","import { isField, isListField } from '@chem-po/core'\nimport {\n ChempoFormProvider,\n DataViewProps,\n DataViewProvider,\n FieldFormProps,\n FieldMap,\n FieldMapFormProps,\n FormProps,\n IFormElement,\n ListField,\n useDataView,\n useFormSubmit,\n useSubmitData,\n UseSubmitDataProps,\n} from '@chem-po/react'\nimport { FC, useMemo, useState } from 'react'\nimport { FieldValues, useFieldArray, useFormContext } from 'react-hook-form'\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native'\nimport { Expandable } from '../box/Expandable'\nimport { DeleteButton } from '../button/DeleteButton'\nimport { Condition } from './Condition'\nimport { FieldComponent } from './Field'\nimport { FormFooter } from './FormFooter'\nimport { Editable } from './input/Editable'\nimport { FieldView } from './view'\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n listContainer: {\n width: '100%',\n paddingHorizontal: 8,\n paddingVertical: 4,\n gap: 8,\n },\n listHeader: {\n fontSize: 14,\n opacity: 0.7,\n lineHeight: 1,\n },\n listContent: {\n gap: 8,\n paddingVertical: 4,\n minHeight: 30,\n },\n listItem: {\n paddingTop: 8,\n paddingHorizontal: 8,\n borderWidth: 1,\n borderColor: '#e2e8f0',\n borderRadius: 4,\n },\n listItemContent: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n width: '100%',\n },\n listItemInput: {\n flex: 1,\n minWidth: 0,\n },\n emptyListText: {\n fontSize: 14,\n opacity: 0.7,\n paddingVertical: 4,\n paddingHorizontal: 8,\n },\n newButton: {\n alignSelf: 'flex-start',\n paddingVertical: 4,\n paddingHorizontal: 8,\n borderRadius: 4,\n backgroundColor: '#f7fafc',\n },\n newButtonText: {\n fontSize: 14,\n color: '#4a5568',\n },\n formElementContainer: {\n width: '100%',\n gap: 4,\n },\n dataViewHeader: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 8,\n width: '100%',\n },\n dataViewTitle: {\n fontSize: 18,\n fontFamily: 'System',\n paddingVertical: 8,\n },\n dataViewActions: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n marginLeft: 'auto',\n },\n dataViewContent: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n})\n\nexport const ListFieldInput: FC<{ field: ListField; name: string }> = ({ field, name }) => {\n const emptyData = useMemo(() => {\n if (isField(field.itemField)) return ''\n if (isListField(field.itemField)) return []\n return {}\n }, [field])\n\n const { control } = useFormContext()\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n })\n\n return (\n <View style={styles.listContainer}>\n <Text style={styles.listHeader}>{field.placeholder}</Text>\n <View style={styles.listContent}>\n {fields.length ? (\n fields.map((formField, idx) => (\n <View key={formField.id} style={styles.listItem}>\n <View style={styles.listItemContent}>\n <View style={styles.listItemInput}>\n <FormElement name={formField.id} field={field.itemField} />\n </View>\n <DeleteButton\n onDelete={() => remove(idx)}\n itemName={`${field.placeholder} ${idx + 1}`}\n />\n </View>\n </View>\n ))\n ) : (\n <Text style={styles.emptyListText}>No items</Text>\n )}\n </View>\n <TouchableOpacity style={styles.newButton} onPress={() => append(emptyData)}>\n <Text style={styles.newButtonText}>+ NEW</Text>\n </TouchableOpacity>\n </View>\n )\n}\n\nexport const FormElement = ({ field, name }: { field: FormProps['field']; name: string }) => {\n const fields = useMemo<Array<{ name: string; field: IFormElement }>>(() => {\n if (isField(field) || isListField(field)) return [{ name: 'value', field }]\n\n return Object.entries((field as FieldMap).children).map(([childName, childField]) => ({\n name: `${name ? `${name}.` : ''}${childName}`,\n field: childField,\n }))\n }, [field, name])\n\n return (\n <View style={styles.formElementContainer}>\n {fields.map(f => {\n if (isListField(f.field)) {\n const b = <ListFieldInput key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n if (isField(f.field)) {\n const b = <FieldComponent key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n\n const b = <FormElement key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n })}\n </View>\n )\n}\n\nconst ListFieldView = ({\n field,\n value,\n path,\n}: {\n field: ListField\n value: any[]\n path: string\n}) => {\n const { itemField, placeholder } = field\n return (\n <View style={styles.listContainer}>\n <Expandable header={() => <Text style={styles.listHeader}>{placeholder}</Text>} initExpanded>\n <View style={styles.listContent}>\n {value?.length ? (\n value.map((item, index) => (\n <View key={`${path}.${index}`} style={styles.listItem}>\n <FormElementView\n path={`${path}.${index}`}\n field={{ ...itemField, placeholder: `${placeholder} ${index + 1}` }}\n value={item}\n />\n </View>\n ))\n ) : (\n <Text style={styles.emptyListText}>No items</Text>\n )}\n </View>\n </Expandable>\n </View>\n )\n}\n\nconst FormElementView = ({\n field,\n value,\n path,\n storagePath,\n}: {\n field: IFormElement\n value: any\n path: string\n storagePath?: string\n}) => {\n const { updateField } = useDataView()\n if (isField(field)) {\n return updateField ? (\n <Editable\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={v => updateField(path, v)}\n />\n ) : (\n <FieldView field={field} value={value} />\n )\n }\n if (isListField(field)) {\n return <ListFieldView path={path} field={field} value={value} />\n }\n return (\n <DataView\n storagePath={storagePath ? `${storagePath}.${path}` : undefined}\n path={path}\n field={field}\n />\n )\n}\n\nexport const DataView = ({\n field,\n value,\n onClose,\n onDelete,\n onSubmit,\n itemName,\n storagePath,\n path = '',\n}: DataViewProps & { path?: string }) => {\n const { name: fieldName, children } = field\n const [isEditing, setIsEditing] = useState(false)\n\n return (\n <DataViewProvider value={value} onSubmit={onSubmit}>\n <Expandable\n alwaysExpanded\n header={() => (\n <View style={styles.dataViewHeader}>\n <Text style={styles.dataViewTitle}>{fieldName}</Text>\n <View style={styles.dataViewActions}>\n {onDelete && <DeleteButton onDelete={onDelete} itemName={itemName ?? 'item'} />}\n {onSubmit && (\n <TouchableOpacity onPress={() => setIsEditing(true)}>\n <Text>Edit</Text>\n </TouchableOpacity>\n )}\n {onClose && (\n <TouchableOpacity onPress={onClose}>\n <Text>Close</Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n )}>\n {isEditing && onSubmit ? (\n <Form\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={onSubmit}\n onBack={() => setIsEditing(false)}\n />\n ) : (\n <View style={styles.dataViewContent}>\n {Object.entries(children).map(([key, childField]) => (\n <FormElementView\n storagePath={storagePath ? `${storagePath}/${key}` : undefined}\n path={path ? `${path}.${key}` : key}\n key={key}\n field={childField}\n value={value?.[key]}\n />\n ))}\n </View>\n )}\n </Expandable>\n </DataViewProvider>\n )\n}\n\nexport const FieldMapForm: FC<FieldMapFormProps> = ({\n onSubmit: onSubmitProp,\n onBack,\n field,\n value,\n buttonText = 'SUBMIT',\n renderFooter,\n storagePath,\n}) => {\n const useSubmitDataProps = useMemo<UseSubmitDataProps<FieldValues>>(\n () => ({\n field,\n value,\n onSubmit: onSubmitProp,\n storagePath,\n }),\n [field, value, onSubmitProp, storagePath],\n )\n const { submit, uploads, isLoading } = useSubmitData(useSubmitDataProps)\n\n const onSubmit = useFormSubmit(field, submit)\n\n return (\n <View style={styles.container}>\n <FormElement name=\"\" field={field} />\n <FormFooter\n isLoading={isLoading}\n uploads={uploads}\n onSubmit={onSubmit}\n renderFooter={renderFooter}\n onBack={onBack}\n buttonText={buttonText}\n />\n </View>\n )\n}\n\nexport const FieldForm: FC<FieldFormProps> = ({ onSubmit, field, value, ...props }) => {\n const fieldMap = useMemo<FieldMap>(() => ({ children: { value: field } }), [field])\n return (\n <FieldMapForm field={fieldMap} value={{ value }} onSubmit={data => onSubmit(data)} {...props} />\n )\n}\n\nexport const Form: FC<FormProps> = ({ field, ...props }) => {\n const body =\n isField(field) || isListField(field) ? (\n <FieldForm field={field} {...props} />\n ) : (\n <FieldMapForm field={field} {...props} />\n )\n\n return <ChempoFormProvider>{body}</ChempoFormProvider>\n}\n","import { useBackgroundColor, useIconColor, useTheme } from '@chem-po/react'\nimport { Ionicons } from '@expo/vector-icons'\nimport { StyleSheet, TouchableOpacity, View } from 'react-native'\n\nexport const DarkModeToggle = () => {\n const { colorMode, toggleColorMode } = useTheme()\n const isDark = colorMode === 'dark'\n\n const iconColor = useIconColor()\n const iconName = isDark ? 'moon' : 'sunny'\n const bg = useBackgroundColor(100)\n return (\n <TouchableOpacity\n onPress={toggleColorMode}\n style={[\n styles.button,\n {\n backgroundColor: bg,\n },\n ]}>\n <Ionicons name={iconName} size={16} color={iconColor} />\n </TouchableOpacity>\n )\n}\n\nexport const AbsoluteDarkModeToggle = () => (\n <View style={styles.container}>\n <DarkModeToggle />\n </View>\n)\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n bottom: 12,\n right: 12,\n },\n button: {\n width: 25,\n height: 25,\n borderRadius: 16,\n justifyContent: 'center',\n alignItems: 'center',\n },\n})\n","import { ToastProviderProps } from '@chem-po/react'\nimport { Notifier, NotifierComponents } from 'react-native-notifier'\nimport { AlertComponentProps } from 'react-native-notifier/lib/typescript/src/components/Alert'\nimport { NotificationComponentProps } from 'react-native-notifier/lib/typescript/src/components/Notification'\n\n// react-native toast messages\nexport const nativeToast: ToastProviderProps = {\n closeMessage: () => Notifier.hideNotification(),\n showMessage: ({ title, type, duration, message }) => {\n const Component = type === 'info' ? NotifierComponents.Notification : NotifierComponents.Alert\n const componentProps = {\n alertType: type === 'error' ? 'error' : 'success',\n } as NotificationComponentProps | AlertComponentProps\n Notifier.showNotification({\n title,\n description: message,\n duration,\n Component,\n componentProps,\n })\n return 'root'\n },\n}\n","import { ColorMode, Theme } from '@chem-po/core'\nimport { ThemeProps } from '@chem-po/react'\nimport { useMemo, useState } from 'react'\n\nexport interface UseThemeProps {\n initialColorMode?: ColorMode\n theme?: Theme\n}\n\nexport const useThemeState = (props?: UseThemeProps) => {\n const { initialColorMode, theme } = props ?? {}\n const [colorMode, setColorMode] = useState<ColorMode>(initialColorMode ?? 'light')\n\n return useMemo<ThemeProps>(\n () => ({ colorMode, setColorMode, theme }),\n [colorMode, setColorMode, theme],\n )\n}\n","import { useScreen } from '@chem-po/react'\nimport { Dimensions } from 'react-native'\n\nexport const initializeScreen = () => {\n const onDimensionsChange = () => {\n const { width, height } = Dimensions.get('window')\n useScreen.setState({\n width,\n height,\n isMobile: true, // In React Native, we're always on mobile\n isPortrait: width < height,\n })\n }\n\n // Initial setup\n onDimensionsChange()\n\n // Add listener for dimension changes\n const subscription = Dimensions.addEventListener('change', onDimensionsChange)\n\n // Return cleanup function\n return () => {\n subscription.remove()\n }\n}\n","import { BackendAdapterInterface, ColorMode, Theme } from '@chem-po/core'\nimport { ChempoProps, ChempoProvider } from '@chem-po/react'\nimport { PropsWithChildren, useMemo } from 'react'\nimport { en, registerTranslation } from 'react-native-paper-dates'\nimport { nativeToast } from '../constants/toast'\nimport { useThemeState } from '../hooks/useThemeState'\nimport { initializeScreen } from '../store/useScreen'\n\nregisterTranslation('en', en)\n\nexport interface ChempoNativeProviderProps\n extends PropsWithChildren<\n Pick<ChempoProps<BackendAdapterInterface>, 'backendAdapter' | 'assets'>\n > {\n theme?: Theme\n initialColorMode?: ColorMode\n}\nexport const ChempoNativeProvider = ({\n theme: themeProp,\n initialColorMode,\n ...props\n}: ChempoNativeProviderProps) => {\n const useThemeProps = useMemo(\n () => ({ theme: themeProp, initialColorMode }),\n [themeProp, initialColorMode],\n )\n const theme = useThemeState(useThemeProps)\n return (\n <ChempoProvider\n toast={nativeToast}\n theme={theme}\n initializeScreen={initializeScreen}\n {...props}\n />\n )\n}\n"]}
|