@chem-po/react-native 0.0.51 → 0.0.53

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.
Files changed (292) hide show
  1. package/lib/commonjs/components/box/Center.js.map +1 -1
  2. package/lib/commonjs/components/box/CollapseHorizontal.js.map +1 -1
  3. package/lib/commonjs/components/box/ContentBox.js.map +1 -1
  4. package/lib/commonjs/components/box/DropShadow.js.map +1 -1
  5. package/lib/commonjs/components/box/ExpandOnMount.js.map +1 -1
  6. package/lib/commonjs/components/box/Expandable.js.map +1 -1
  7. package/lib/commonjs/components/box/FullSizeContainer.js.map +1 -1
  8. package/lib/commonjs/components/box/index.js.map +1 -1
  9. package/lib/commonjs/components/button/ActionButton.js.map +1 -1
  10. package/lib/commonjs/components/button/ButtonText.js.map +1 -1
  11. package/lib/commonjs/components/button/DeleteButton.js.map +1 -1
  12. package/lib/commonjs/components/button/LoadingButton.js.map +1 -1
  13. package/lib/commonjs/components/button/Toggle.js.map +1 -1
  14. package/lib/commonjs/components/button/hooks.js.map +1 -1
  15. package/lib/commonjs/components/button/index.js.map +1 -1
  16. package/lib/commonjs/components/feed/FeedContentPane.js.map +1 -1
  17. package/lib/commonjs/components/feed/MediaFeed.js.map +1 -1
  18. package/lib/commonjs/components/feed/MediaFeedBackground.js.map +1 -1
  19. package/lib/commonjs/components/feed/MediaFeedRefresh.js.map +1 -1
  20. package/lib/commonjs/components/feed/constants.js.map +1 -1
  21. package/lib/commonjs/components/feed/context.js.map +1 -1
  22. package/lib/commonjs/components/feed/hooks.js.map +1 -1
  23. package/lib/commonjs/components/feed/index.js.map +1 -1
  24. package/lib/commonjs/components/form/Condition.js.map +1 -1
  25. package/lib/commonjs/components/form/Field.js.map +1 -1
  26. package/lib/commonjs/components/form/Form.js.map +1 -1
  27. package/lib/commonjs/components/form/FormFooter.js.map +1 -1
  28. package/lib/commonjs/components/form/UploadProgress/index.js.map +1 -1
  29. package/lib/commonjs/components/form/index.js.map +1 -1
  30. package/lib/commonjs/components/form/input/Editable.js.map +1 -1
  31. package/lib/commonjs/components/form/input/InputSlider.js.map +1 -1
  32. package/lib/commonjs/components/form/input/OptionalTag.js.map +1 -1
  33. package/lib/commonjs/components/form/input/StandaloneInput.js.map +1 -1
  34. package/lib/commonjs/components/form/input/boolean/index.js.map +1 -1
  35. package/lib/commonjs/components/form/input/color/index.js.map +1 -1
  36. package/lib/commonjs/components/form/input/common/InputClearButton.js.map +1 -1
  37. package/lib/commonjs/components/form/input/date/index.js.map +1 -1
  38. package/lib/commonjs/components/form/input/datetime/index.js.map +1 -1
  39. package/lib/commonjs/components/form/input/file/index.js.map +1 -1
  40. package/lib/commonjs/components/form/input/hooks/index.js.map +1 -1
  41. package/lib/commonjs/components/form/input/hooks/useInputColor.js.map +1 -1
  42. package/lib/commonjs/components/form/input/hooks/useInputImperativeHandle.js.map +1 -1
  43. package/lib/commonjs/components/form/input/hooks/useInputStyles.js.map +1 -1
  44. package/lib/commonjs/components/form/input/index.js.map +1 -1
  45. package/lib/commonjs/components/form/input/input.js.map +1 -1
  46. package/lib/commonjs/components/form/input/multipleSelect/index.js.map +1 -1
  47. package/lib/commonjs/components/form/input/number/index.js.map +1 -1
  48. package/lib/commonjs/components/form/input/select/index.js.map +1 -1
  49. package/lib/commonjs/components/form/input/socialMedia/index.js.map +1 -1
  50. package/lib/commonjs/components/form/input/text/AutoResizeTextarea.js.map +1 -1
  51. package/lib/commonjs/components/form/input/text/index.js.map +1 -1
  52. package/lib/commonjs/components/form/input/text/textarea.js.map +1 -1
  53. package/lib/commonjs/components/form/input/text/useWebAutoResize.js.map +1 -1
  54. package/lib/commonjs/components/form/input/time/index.js.map +1 -1
  55. package/lib/commonjs/components/form/types.js.map +1 -1
  56. package/lib/commonjs/components/form/view/file.js.map +1 -1
  57. package/lib/commonjs/components/form/view/index.js.map +1 -1
  58. package/lib/commonjs/components/form/view/multipleSelect.js.map +1 -1
  59. package/lib/commonjs/components/form/view/select.js.map +1 -1
  60. package/lib/commonjs/components/form/view/styles.js.map +1 -1
  61. package/lib/commonjs/components/icons/index.js.map +1 -1
  62. package/lib/commonjs/components/image/ImageViewModal.js.map +1 -1
  63. package/lib/commonjs/components/image/index.js.map +1 -1
  64. package/lib/commonjs/components/index.js.map +1 -1
  65. package/lib/commonjs/components/layout/CollapseHorizontal.js.map +1 -1
  66. package/lib/commonjs/components/loading/CircularProgress.js.map +1 -1
  67. package/lib/commonjs/components/loading/Loading.js.map +1 -1
  68. package/lib/commonjs/components/loading/LoadingImage.js.map +1 -1
  69. package/lib/commonjs/components/loading/LoadingOverlay.js.map +1 -1
  70. package/lib/commonjs/components/loading/LoadingSwitch.js.map +1 -1
  71. package/lib/commonjs/components/loading/ProgressBar.js.map +1 -1
  72. package/lib/commonjs/components/loading/index.js.map +1 -1
  73. package/lib/commonjs/components/text/AnimatedText.js.map +1 -1
  74. package/lib/commonjs/components/text/Txt.js.map +1 -1
  75. package/lib/commonjs/components/text/index.js.map +1 -1
  76. package/lib/commonjs/components/theme/colorMode/DarkModeToggle.js.map +1 -1
  77. package/lib/commonjs/components/theme/colorMode/index.js.map +1 -1
  78. package/lib/commonjs/components/theme/index.js.map +1 -1
  79. package/lib/commonjs/constants/index.js.map +1 -1
  80. package/lib/commonjs/constants/toast.js.map +1 -1
  81. package/lib/commonjs/contexts/fonts.js.map +1 -1
  82. package/lib/commonjs/contexts/index.js.map +1 -1
  83. package/lib/commonjs/contexts/root.js.map +1 -1
  84. package/lib/commonjs/hooks/index.js.map +1 -1
  85. package/lib/commonjs/hooks/useFadeIn.js.map +1 -1
  86. package/lib/commonjs/hooks/useFont.js.map +1 -1
  87. package/lib/commonjs/hooks/useRefreshFontScale.js.map +1 -1
  88. package/lib/commonjs/hooks/useThemeState.js.map +1 -1
  89. package/lib/commonjs/index.js.map +1 -1
  90. package/lib/commonjs/store/index.js.map +1 -1
  91. package/lib/commonjs/store/useFontScale.js.map +1 -1
  92. package/lib/commonjs/store/useScreen.js.map +1 -1
  93. package/lib/commonjs/styles/fill.js.map +1 -1
  94. package/lib/commonjs/types/forms.js.map +1 -1
  95. package/lib/commonjs/types/index.js.map +1 -1
  96. package/lib/commonjs/utils/downloadFile.js.map +1 -1
  97. package/lib/commonjs/utils/downloadFileLegacy.js.map +1 -1
  98. package/lib/module/components/box/Center.js.map +1 -1
  99. package/lib/module/components/box/CollapseHorizontal.js.map +1 -1
  100. package/lib/module/components/box/ContentBox.js.map +1 -1
  101. package/lib/module/components/box/DropShadow.js.map +1 -1
  102. package/lib/module/components/box/ExpandOnMount.js.map +1 -1
  103. package/lib/module/components/box/Expandable.js.map +1 -1
  104. package/lib/module/components/box/FullSizeContainer.js.map +1 -1
  105. package/lib/module/components/box/index.js.map +1 -1
  106. package/lib/module/components/button/ActionButton.js.map +1 -1
  107. package/lib/module/components/button/ButtonText.js.map +1 -1
  108. package/lib/module/components/button/DeleteButton.js.map +1 -1
  109. package/lib/module/components/button/LoadingButton.js.map +1 -1
  110. package/lib/module/components/button/Toggle.js.map +1 -1
  111. package/lib/module/components/button/hooks.js.map +1 -1
  112. package/lib/module/components/button/index.js.map +1 -1
  113. package/lib/module/components/feed/FeedContentPane.js.map +1 -1
  114. package/lib/module/components/feed/MediaFeed.js.map +1 -1
  115. package/lib/module/components/feed/MediaFeedBackground.js.map +1 -1
  116. package/lib/module/components/feed/MediaFeedRefresh.js.map +1 -1
  117. package/lib/module/components/feed/constants.js.map +1 -1
  118. package/lib/module/components/feed/context.js.map +1 -1
  119. package/lib/module/components/feed/hooks.js.map +1 -1
  120. package/lib/module/components/feed/index.js.map +1 -1
  121. package/lib/module/components/form/Condition.js.map +1 -1
  122. package/lib/module/components/form/Field.js.map +1 -1
  123. package/lib/module/components/form/Form.js.map +1 -1
  124. package/lib/module/components/form/FormFooter.js.map +1 -1
  125. package/lib/module/components/form/UploadProgress/index.js.map +1 -1
  126. package/lib/module/components/form/index.js.map +1 -1
  127. package/lib/module/components/form/input/Editable.js.map +1 -1
  128. package/lib/module/components/form/input/InputSlider.js.map +1 -1
  129. package/lib/module/components/form/input/OptionalTag.js.map +1 -1
  130. package/lib/module/components/form/input/StandaloneInput.js.map +1 -1
  131. package/lib/module/components/form/input/boolean/index.js.map +1 -1
  132. package/lib/module/components/form/input/color/index.js.map +1 -1
  133. package/lib/module/components/form/input/common/InputClearButton.js.map +1 -1
  134. package/lib/module/components/form/input/date/index.js.map +1 -1
  135. package/lib/module/components/form/input/datetime/index.js.map +1 -1
  136. package/lib/module/components/form/input/file/index.js.map +1 -1
  137. package/lib/module/components/form/input/hooks/index.js.map +1 -1
  138. package/lib/module/components/form/input/hooks/useInputColor.js.map +1 -1
  139. package/lib/module/components/form/input/hooks/useInputImperativeHandle.js.map +1 -1
  140. package/lib/module/components/form/input/hooks/useInputStyles.js.map +1 -1
  141. package/lib/module/components/form/input/index.js.map +1 -1
  142. package/lib/module/components/form/input/input.js.map +1 -1
  143. package/lib/module/components/form/input/multipleSelect/index.js.map +1 -1
  144. package/lib/module/components/form/input/number/index.js.map +1 -1
  145. package/lib/module/components/form/input/select/index.js.map +1 -1
  146. package/lib/module/components/form/input/socialMedia/index.js.map +1 -1
  147. package/lib/module/components/form/input/text/AutoResizeTextarea.js.map +1 -1
  148. package/lib/module/components/form/input/text/index.js.map +1 -1
  149. package/lib/module/components/form/input/text/textarea.js.map +1 -1
  150. package/lib/module/components/form/input/text/useWebAutoResize.js.map +1 -1
  151. package/lib/module/components/form/input/time/index.js.map +1 -1
  152. package/lib/module/components/form/types.js.map +1 -1
  153. package/lib/module/components/form/view/file.js.map +1 -1
  154. package/lib/module/components/form/view/index.js.map +1 -1
  155. package/lib/module/components/form/view/multipleSelect.js.map +1 -1
  156. package/lib/module/components/form/view/select.js.map +1 -1
  157. package/lib/module/components/form/view/styles.js.map +1 -1
  158. package/lib/module/components/icons/index.js.map +1 -1
  159. package/lib/module/components/image/ImageViewModal.js.map +1 -1
  160. package/lib/module/components/image/index.js.map +1 -1
  161. package/lib/module/components/index.js.map +1 -1
  162. package/lib/module/components/layout/CollapseHorizontal.js.map +1 -1
  163. package/lib/module/components/loading/CircularProgress.js.map +1 -1
  164. package/lib/module/components/loading/Loading.js.map +1 -1
  165. package/lib/module/components/loading/LoadingImage.js.map +1 -1
  166. package/lib/module/components/loading/LoadingOverlay.js.map +1 -1
  167. package/lib/module/components/loading/LoadingSwitch.js.map +1 -1
  168. package/lib/module/components/loading/ProgressBar.js.map +1 -1
  169. package/lib/module/components/loading/index.js.map +1 -1
  170. package/lib/module/components/text/AnimatedText.js.map +1 -1
  171. package/lib/module/components/text/Txt.js.map +1 -1
  172. package/lib/module/components/text/index.js.map +1 -1
  173. package/lib/module/components/theme/colorMode/DarkModeToggle.js.map +1 -1
  174. package/lib/module/components/theme/colorMode/index.js.map +1 -1
  175. package/lib/module/components/theme/index.js.map +1 -1
  176. package/lib/module/constants/index.js.map +1 -1
  177. package/lib/module/constants/toast.js.map +1 -1
  178. package/lib/module/contexts/fonts.js.map +1 -1
  179. package/lib/module/contexts/index.js.map +1 -1
  180. package/lib/module/contexts/root.js.map +1 -1
  181. package/lib/module/hooks/index.js.map +1 -1
  182. package/lib/module/hooks/useFadeIn.js.map +1 -1
  183. package/lib/module/hooks/useFont.js.map +1 -1
  184. package/lib/module/hooks/useRefreshFontScale.js.map +1 -1
  185. package/lib/module/hooks/useThemeState.js.map +1 -1
  186. package/lib/module/index.js.map +1 -1
  187. package/lib/module/store/index.js.map +1 -1
  188. package/lib/module/store/useFontScale.js.map +1 -1
  189. package/lib/module/store/useScreen.js.map +1 -1
  190. package/lib/module/styles/fill.js.map +1 -1
  191. package/lib/module/types/forms.js.map +1 -1
  192. package/lib/module/types/index.js.map +1 -1
  193. package/lib/module/utils/downloadFile.js.map +1 -1
  194. package/lib/module/utils/downloadFileLegacy.js.map +1 -1
  195. package/package.json +5 -20
  196. package/src/components/box/Center.tsx +0 -19
  197. package/src/components/box/CollapseHorizontal.tsx +0 -44
  198. package/src/components/box/ContentBox.tsx +0 -24
  199. package/src/components/box/DropShadow.tsx +0 -28
  200. package/src/components/box/ExpandOnMount.tsx +0 -74
  201. package/src/components/box/Expandable.tsx +0 -143
  202. package/src/components/box/FullSizeContainer.tsx +0 -64
  203. package/src/components/box/index.ts +0 -7
  204. package/src/components/button/ActionButton.tsx +0 -196
  205. package/src/components/button/ButtonText.tsx +0 -60
  206. package/src/components/button/DeleteButton.tsx +0 -288
  207. package/src/components/button/LoadingButton.tsx +0 -41
  208. package/src/components/button/Toggle.tsx +0 -109
  209. package/src/components/button/hooks.ts +0 -66
  210. package/src/components/button/index.ts +0 -5
  211. package/src/components/feed/FeedContentPane.tsx +0 -97
  212. package/src/components/feed/MediaFeed.tsx +0 -199
  213. package/src/components/feed/MediaFeedBackground.tsx +0 -136
  214. package/src/components/feed/MediaFeedRefresh.tsx +0 -113
  215. package/src/components/feed/constants.ts +0 -2
  216. package/src/components/feed/context.tsx +0 -19
  217. package/src/components/feed/hooks.ts +0 -279
  218. package/src/components/feed/index.ts +0 -2
  219. package/src/components/form/Condition.tsx +0 -27
  220. package/src/components/form/Field.tsx +0 -44
  221. package/src/components/form/Form.tsx +0 -452
  222. package/src/components/form/FormFooter.tsx +0 -164
  223. package/src/components/form/UploadProgress/index.tsx +0 -50
  224. package/src/components/form/index.ts +0 -3
  225. package/src/components/form/input/Editable.tsx +0 -206
  226. package/src/components/form/input/InputSlider.tsx +0 -71
  227. package/src/components/form/input/OptionalTag.tsx +0 -43
  228. package/src/components/form/input/StandaloneInput.tsx +0 -49
  229. package/src/components/form/input/boolean/index.tsx +0 -53
  230. package/src/components/form/input/color/index.tsx +0 -145
  231. package/src/components/form/input/common/InputClearButton.tsx +0 -57
  232. package/src/components/form/input/date/index.tsx +0 -125
  233. package/src/components/form/input/datetime/index.tsx +0 -176
  234. package/src/components/form/input/file/index.tsx +0 -310
  235. package/src/components/form/input/hooks/index.ts +0 -2
  236. package/src/components/form/input/hooks/useInputColor.ts +0 -7
  237. package/src/components/form/input/hooks/useInputImperativeHandle.ts +0 -22
  238. package/src/components/form/input/hooks/useInputStyles.ts +0 -114
  239. package/src/components/form/input/index.ts +0 -4
  240. package/src/components/form/input/input.tsx +0 -218
  241. package/src/components/form/input/multipleSelect/index.tsx +0 -221
  242. package/src/components/form/input/number/index.tsx +0 -108
  243. package/src/components/form/input/select/index.tsx +0 -152
  244. package/src/components/form/input/socialMedia/index.tsx +0 -235
  245. package/src/components/form/input/text/AutoResizeTextarea.tsx +0 -41
  246. package/src/components/form/input/text/index.tsx +0 -99
  247. package/src/components/form/input/text/textarea.tsx +0 -32
  248. package/src/components/form/input/text/useWebAutoResize.tsx +0 -73
  249. package/src/components/form/input/time/index.tsx +0 -125
  250. package/src/components/form/types.ts +0 -8
  251. package/src/components/form/view/file.tsx +0 -80
  252. package/src/components/form/view/index.tsx +0 -125
  253. package/src/components/form/view/multipleSelect.tsx +0 -85
  254. package/src/components/form/view/select.tsx +0 -83
  255. package/src/components/form/view/styles.ts +0 -12
  256. package/src/components/icons/index.tsx +0 -28
  257. package/src/components/image/ImageViewModal.tsx +0 -319
  258. package/src/components/image/index.ts +0 -1
  259. package/src/components/index.ts +0 -8
  260. package/src/components/layout/CollapseHorizontal.tsx +0 -92
  261. package/src/components/loading/CircularProgress.tsx +0 -56
  262. package/src/components/loading/Loading.tsx +0 -146
  263. package/src/components/loading/LoadingImage.tsx +0 -163
  264. package/src/components/loading/LoadingOverlay.tsx +0 -74
  265. package/src/components/loading/LoadingSwitch.tsx +0 -110
  266. package/src/components/loading/ProgressBar.tsx +0 -75
  267. package/src/components/loading/index.ts +0 -6
  268. package/src/components/text/AnimatedText.tsx +0 -68
  269. package/src/components/text/Txt.tsx +0 -12
  270. package/src/components/text/index.ts +0 -1
  271. package/src/components/theme/colorMode/DarkModeToggle.tsx +0 -47
  272. package/src/components/theme/colorMode/index.ts +0 -1
  273. package/src/components/theme/index.ts +0 -1
  274. package/src/constants/index.ts +0 -1
  275. package/src/constants/toast.ts +0 -24
  276. package/src/contexts/fonts.tsx +0 -23
  277. package/src/contexts/index.ts +0 -1
  278. package/src/contexts/root.tsx +0 -190
  279. package/src/hooks/index.ts +0 -3
  280. package/src/hooks/useFadeIn.ts +0 -48
  281. package/src/hooks/useFont.ts +0 -25
  282. package/src/hooks/useRefreshFontScale.ts +0 -39
  283. package/src/hooks/useThemeState.ts +0 -43
  284. package/src/index.ts +0 -6
  285. package/src/store/index.ts +0 -2
  286. package/src/store/useFontScale.ts +0 -8
  287. package/src/store/useScreen.ts +0 -25
  288. package/src/styles/fill.ts +0 -19
  289. package/src/types/forms.ts +0 -14
  290. package/src/types/index.ts +0 -1
  291. package/src/utils/downloadFile.ts +0 -61
  292. package/src/utils/downloadFileLegacy.ts +0 -66
@@ -1,206 +0,0 @@
1
- import { InputRef } from '@chem-po/core'
2
- import {
3
- CustomEditableViewProps,
4
- EditableProps,
5
- Field,
6
- useColorModeValue,
7
- useEditable,
8
- useIconColor,
9
- useThemeValue,
10
- } from '@chem-po/react'
11
- import { Ionicons } from '@expo/vector-icons'
12
- import React, { ForwardedRef, useCallback, useEffect } from 'react'
13
- import { StyleSheet, TextStyle, View, ViewStyle } from 'react-native'
14
- import { Pressable } from 'react-native-gesture-handler'
15
- import { useFontScale } from '../../../store/useFontScale'
16
- import { CustomInputProps } from '../../../types/forms'
17
- import { LoadingOverlay } from '../../loading/LoadingOverlay'
18
- import { UploadProgress } from '../UploadProgress'
19
- import { FieldView } from '../view'
20
- import { StandaloneInput } from './StandaloneInput'
21
-
22
- export const Editable = <T extends Field>({
23
- value: initValue,
24
- field,
25
- onSubmit,
26
- storagePath,
27
- style,
28
- onEditClose,
29
- onEditOpen,
30
- containerStyle,
31
- size,
32
- CustomInput,
33
- ref,
34
- CustomView,
35
- inputStyle,
36
- }: EditableProps<ViewStyle, TextStyle, T>) => {
37
- const {
38
- inputRef,
39
- onChange,
40
- isLoading,
41
- uploads,
42
- editHovered,
43
- handleEditOpen,
44
- isEditing,
45
- shouldSubmitOnChange,
46
- handleEditClose,
47
- submit,
48
- value,
49
- setEditHovered,
50
- } = useEditable({
51
- value: initValue,
52
- field,
53
- onSubmit,
54
- storagePath,
55
- onEditOpen,
56
- onEditClose,
57
- ref,
58
- })
59
- const fontScale = useFontScale(s => s.fontScale)
60
-
61
- useEffect(() => {
62
- if (isEditing) {
63
- inputRef.current?.focus()
64
- }
65
- }, [isEditing, inputRef])
66
-
67
- const iconColor = useIconColor()
68
- const submitBackgroundColor = useThemeValue('colors.accent.600')
69
- const editingBorderColor = useColorModeValue('#00000055', '#ffffff55')
70
-
71
- const RenderInput = useCallback(
72
- (props: CustomInputProps<T['defaultValue']>, ref?: ForwardedRef<InputRef | null>) => {
73
- if (CustomInput) {
74
- return <CustomInput {...props} ref={ref} />
75
- }
76
- if (!field) throw new Error('Editable component must have a field OR a CustomInput')
77
- return <StandaloneInput ref={ref} field={field} inputStyle={inputStyle} {...props} />
78
- },
79
- [CustomInput, field, inputStyle],
80
- )
81
-
82
- const RenderView = useCallback(
83
- (props: CustomEditableViewProps<T['defaultValue']>) => {
84
- if (CustomView) {
85
- return <CustomView {...props} />
86
- }
87
- if (!field) throw new Error('Editable component must have a field OR a CustomView')
88
- return <FieldView textStyle={inputStyle} field={field} {...props} />
89
- },
90
- [CustomView, field, inputStyle],
91
- )
92
-
93
- return (
94
- <View style={[styles.container, containerStyle]}>
95
- <View style={styles.contentContainer}>
96
- <View
97
- style={[
98
- styles.inputContainer,
99
- {
100
- opacity: isLoading ? 0 : 1,
101
- borderColor: isEditing || editHovered ? editingBorderColor : 'transparent',
102
- },
103
- ]}>
104
- {isEditing || shouldSubmitOnChange ? (
105
- <RenderInput
106
- onChange={onChange}
107
- ref={inputRef}
108
- value={value}
109
- inEditable
110
- style={style}
111
- size={size}
112
- />
113
- ) : (
114
- <RenderView inEditable noLabel size={size} value={value} />
115
- )}
116
- </View>
117
- {!shouldSubmitOnChange ? (
118
- <View style={styles.buttonsContainer}>
119
- {isEditing ? (
120
- <>
121
- <Pressable
122
- onPress={() => {
123
- handleEditClose()
124
- }}
125
- style={[
126
- styles.submitButton,
127
- {
128
- borderColor: iconColor,
129
- borderWidth: 1,
130
- width: 28 * fontScale,
131
- height: 28 * fontScale,
132
- },
133
- ]}
134
- onPressIn={() => setEditHovered(true)}
135
- onPressOut={() => setEditHovered(false)}>
136
- <Ionicons name="close-outline" size={20 * fontScale} color={iconColor} />
137
- </Pressable>
138
- <Pressable
139
- onPress={() => {
140
- submit()
141
- }}
142
- style={[
143
- styles.submitButton,
144
- {
145
- backgroundColor: submitBackgroundColor,
146
- width: 28 * fontScale,
147
- height: 28 * fontScale,
148
- },
149
- ]}
150
- onPressIn={() => setEditHovered(true)}
151
- onPressOut={() => setEditHovered(false)}>
152
- <Ionicons color="white" name="checkmark-outline" size={20 * fontScale} />
153
- </Pressable>
154
- </>
155
- ) : (
156
- <Pressable
157
- onPress={() => {
158
- handleEditOpen()
159
- }}
160
- style={[styles.submitButton, { width: 28 * fontScale, height: 28 * fontScale }]}
161
- onPressIn={() => setEditHovered(true)}
162
- onPressOut={() => setEditHovered(false)}>
163
- <Ionicons name="create-outline" size={20 * fontScale} color={iconColor} />
164
- </Pressable>
165
- )}
166
- </View>
167
- ) : null}
168
- <LoadingOverlay loading={isLoading} />
169
- </View>
170
- <UploadProgress uploads={uploads} />
171
- </View>
172
- )
173
- }
174
-
175
- const styles = StyleSheet.create({
176
- container: {
177
- borderRadius: 4,
178
- width: '100%',
179
- },
180
- buttonsContainer: {
181
- flexDirection: 'row',
182
- justifyContent: 'center',
183
- paddingTop: 6,
184
- paddingHorizontal: 4,
185
- gap: 10,
186
- },
187
- contentContainer: {
188
- flexDirection: 'row',
189
- gap: 10,
190
- position: 'relative',
191
- width: '100%',
192
- },
193
- inputContainer: {
194
- flex: 1,
195
- minWidth: 0,
196
- borderWidth: 1,
197
- borderStyle: 'dashed',
198
- },
199
- submitButton: {
200
- width: 28,
201
- height: 28,
202
- borderRadius: 4,
203
- alignItems: 'center',
204
- justifyContent: 'center',
205
- },
206
- })
@@ -1,71 +0,0 @@
1
- import { Gradient } from '@chem-po/core'
2
- import Slider from '@react-native-community/slider'
3
- import React from 'react'
4
- import { StyleSheet, Text, View } from 'react-native'
5
-
6
- type SliderProps = React.ComponentProps<typeof Slider>
7
-
8
- export const InputSlider = ({
9
- // label,
10
- gradient,
11
- value,
12
- minimumValue,
13
- maximumValue,
14
- ...props
15
- }: {
16
- label: string
17
- gradient?: Gradient
18
- } & SliderProps) => {
19
- return (
20
- <View style={[styles.container, { opacity: value !== undefined ? 1 : 0.5 }]}>
21
- <View style={styles.sliderContainer}>
22
- {minimumValue !== undefined ? (
23
- <Text style={[styles.label, gradient ? styles.gradientText : null]}>
24
- {typeof minimumValue === 'number'
25
- ? minimumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)
26
- : ''}
27
- </Text>
28
- ) : null}
29
-
30
- <Slider
31
- style={styles.slider}
32
- minimumValue={minimumValue}
33
- maximumValue={maximumValue}
34
- step={1}
35
- {...props}
36
- />
37
-
38
- {maximumValue !== undefined ? (
39
- <Text style={[styles.label, gradient ? styles.gradientText : null]}>
40
- {typeof maximumValue === 'number'
41
- ? maximumValue.toFixed((props?.step ?? 1) < 1 ? 2 : 0)
42
- : ''}
43
- </Text>
44
- ) : null}
45
- </View>
46
- </View>
47
- )
48
- }
49
-
50
- const styles = StyleSheet.create({
51
- container: {
52
- width: '100%',
53
- paddingVertical: 8,
54
- },
55
- sliderContainer: {
56
- flexDirection: 'row',
57
- alignItems: 'center',
58
- width: '100%',
59
- },
60
- slider: {
61
- flex: 1,
62
- height: 40,
63
- },
64
- label: {
65
- fontSize: 14,
66
- marginHorizontal: 8,
67
- },
68
- gradientText: {
69
- color: '#007AFF', // iOS blue color, you can customize this
70
- },
71
- })
@@ -1,43 +0,0 @@
1
- import { Field } from '@chem-po/react'
2
- import React, { useMemo } from 'react'
3
- import { StyleSheet, Text, View } from 'react-native'
4
-
5
- export const OptionalTag = <T extends Field>({
6
- value,
7
- field,
8
- }: {
9
- field: T
10
- value: T['defaultValue'] | undefined | null
11
- }) => {
12
- const top = useMemo(() => {
13
- if (value === '' || value === undefined || value === null) return 1
14
- switch (field._type) {
15
- case 'text':
16
- case 'number':
17
- case 'select':
18
- case 'date':
19
- case 'time':
20
- case 'datetime':
21
- return -1
22
- default:
23
- return 1
24
- }
25
- }, [value, field])
26
-
27
- return (
28
- <View style={[styles.container, { top }]}>
29
- <Text style={styles.text}>OPTIONAL</Text>
30
- </View>
31
- )
32
- }
33
-
34
- const styles = StyleSheet.create({
35
- container: {
36
- position: 'absolute',
37
- right: 12,
38
- },
39
- text: {
40
- fontSize: 12,
41
- opacity: 0.6,
42
- },
43
- })
@@ -1,49 +0,0 @@
1
- import { InputRef } from '@chem-po/core'
2
- import { BaseCustomInputProps, Field, useStandaloneInput } from '@chem-po/react'
3
- import React, { ForwardedRef, forwardRef } from 'react'
4
- import { TextStyle, ViewStyle } from 'react-native'
5
- import { Input } from './input'
6
-
7
- interface StandaloneInputProps<
8
- T extends Field,
9
- ContainerStyle extends ViewStyle = ViewStyle,
10
- InputStyle extends TextStyle = TextStyle,
11
- > extends BaseCustomInputProps<T['defaultValue'], ContainerStyle, InputStyle> {
12
- field: T
13
- }
14
-
15
- const StandaloneInputBase = <
16
- T extends Field,
17
- ContainerStyle extends ViewStyle = ViewStyle,
18
- InputStyle extends TextStyle = TextStyle,
19
- >(
20
- {
21
- onChange,
22
- value,
23
- field,
24
- onBlur,
25
- inEditable,
26
- onFocus,
27
- style,
28
- size,
29
- inputStyle,
30
- }: StandaloneInputProps<T, ContainerStyle, InputStyle>,
31
- ref: ForwardedRef<InputRef>,
32
- ) => {
33
- const { inputProps, meta } = useStandaloneInput(field, value, onChange, onFocus, onBlur)
34
-
35
- return (
36
- <Input
37
- ref={ref}
38
- field={field}
39
- inEditable={inEditable}
40
- style={style}
41
- input={inputProps}
42
- inputStyle={inputStyle}
43
- formSize={size}
44
- meta={meta}
45
- />
46
- )
47
- }
48
-
49
- export const StandaloneInput = forwardRef(StandaloneInputBase)
@@ -1,53 +0,0 @@
1
- import { InputRef } from '@chem-po/core'
2
- import { BooleanField, useBooleanFieldText } from '@chem-po/react'
3
- import React, { ForwardedRef, forwardRef, useImperativeHandle } from 'react'
4
- import { Switch, View } from 'react-native'
5
- import { Txt } from '../../../text/Txt'
6
- import { FieldProps } from '../../types'
7
-
8
- const BaseCheckboxComponent = (
9
- { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,
10
- ref: ForwardedRef<InputRef>,
11
- ) => {
12
- useImperativeHandle(ref, () => ({
13
- focus: () => {},
14
- blur: () => {},
15
- }))
16
- const text = useBooleanFieldText(field, value)
17
- return (
18
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
19
- <Switch value={value} onValueChange={onChange} {...input} />
20
- <Txt style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>{text}</Txt>
21
- </View>
22
- )
23
- }
24
-
25
- const CheckboxBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(
26
- BaseCheckboxComponent,
27
- )
28
-
29
- const BaseSwitchComponent = (
30
- { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,
31
- ref: ForwardedRef<InputRef>,
32
- ) => {
33
- useImperativeHandle(ref, () => ({
34
- focus: () => {},
35
- blur: () => {},
36
- }))
37
- const text = useBooleanFieldText(field, value)
38
- return (
39
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
40
- <Switch value={value} onValueChange={onChange} {...input} />
41
- <Txt style={{ marginLeft: 8, fontWeight: '600', opacity: value ? 0.9 : 0.6 }}>{text}</Txt>
42
- </View>
43
- )
44
- }
45
-
46
- const SwitchBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseSwitchComponent)
47
-
48
- const BaseBooleanComponent = (props: FieldProps<BooleanField>, ref: ForwardedRef<InputRef>) => {
49
- if (props.field.type === 'switch') return <SwitchBooleanComponent ref={ref} {...props} />
50
- return <CheckboxBooleanComponent ref={ref} {...props} />
51
- }
52
-
53
- export const BooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseBooleanComponent)
@@ -1,145 +0,0 @@
1
- import { colorValueToHex, Gradient, gradients, InputRef } from '@chem-po/core'
2
- import { ColorField } from '@chem-po/react'
3
- import React, { forwardRef, useCallback, useMemo } from 'react'
4
- import { StyleSheet, Text, View } from 'react-native'
5
- import { FieldProps } from '../../types'
6
- import { InputSlider } from '../InputSlider'
7
- import { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'
8
-
9
- const ColorComponentSlider = ({
10
- label,
11
- gradient,
12
- value,
13
- ...props
14
- }: {
15
- label: string
16
- gradient: Gradient
17
- } & React.ComponentProps<typeof InputSlider>) => (
18
- <InputSlider
19
- label={label}
20
- value={value}
21
- minimumValue={0}
22
- maximumValue={255}
23
- step={1}
24
- gradient={gradient}
25
- {...props}
26
- />
27
- )
28
-
29
- export const ColorComponent = forwardRef<InputRef, FieldProps<ColorField>>(
30
- ({ input: { onChange, value }, field, meta }, ref) => {
31
- const { withAlpha, defaultValue } = field
32
- const { active } = meta || {}
33
-
34
- useInputImperativeHandle(ref)
35
-
36
- const handleChange = useCallback(
37
- (key: 'r' | 'g' | 'b' | 'a', val: number) => {
38
- if (withAlpha) {
39
- onChange({
40
- r: 0,
41
- g: 0,
42
- b: 0,
43
- a: 1,
44
- ...value,
45
- [key]: val,
46
- })
47
- } else {
48
- onChange({
49
- r: 0,
50
- g: 0,
51
- b: 0,
52
- ...value,
53
- [key]: val,
54
- })
55
- }
56
- },
57
- [value, onChange, withAlpha],
58
- )
59
-
60
- const withDefault = useMemo(() => ({ ...defaultValue, ...value }), [defaultValue, value])
61
- const asHex = useMemo(() => colorValueToHex(!!withAlpha, withDefault), [withDefault, withAlpha])
62
-
63
- return (
64
- <View style={styles.container}>
65
- <View style={[styles.colorPreview, { backgroundColor: asHex }]}>
66
- <Text style={styles.hexText}>{asHex}</Text>
67
- </View>
68
- <View style={[styles.slidersContainer, active && styles.activeContainer]}>
69
- <ColorComponentSlider
70
- label="R"
71
- gradient={gradients.red}
72
- value={value?.r}
73
- onValueChange={updatedRed => handleChange('r', updatedRed)}
74
- />
75
- <ColorComponentSlider
76
- label="G"
77
- gradient={gradients.green}
78
- value={value?.g}
79
- onValueChange={updatedGreen => handleChange('g', updatedGreen)}
80
- />
81
- <ColorComponentSlider
82
- label="B"
83
- gradient={gradients.blue}
84
- value={value?.b}
85
- onValueChange={updatedBlue => handleChange('b', updatedBlue)}
86
- />
87
- {withAlpha ? (
88
- <ColorComponentSlider
89
- label="A"
90
- gradient={gradients.midnight}
91
- value={value?.a}
92
- onValueChange={updatedAlpha => handleChange('a', updatedAlpha)}
93
- />
94
- ) : null}
95
- </View>
96
- </View>
97
- )
98
- },
99
- )
100
-
101
- const styles = StyleSheet.create({
102
- container: {
103
- width: '100%',
104
- flexDirection: 'row',
105
- alignItems: 'center',
106
- gap: 8,
107
- },
108
- colorPreview: {
109
- width: 80,
110
- height: 80,
111
- borderRadius: 40,
112
- justifyContent: 'center',
113
- alignItems: 'center',
114
- shadowColor: '#000',
115
- shadowOffset: {
116
- width: 0,
117
- height: 2,
118
- },
119
- shadowOpacity: 0.25,
120
- shadowRadius: 3.84,
121
- elevation: 5,
122
- },
123
- hexText: {
124
- fontSize: 16,
125
- color: '#fff',
126
- textShadowColor: 'rgba(0, 0, 0, 0.75)',
127
- textShadowOffset: { width: 0, height: 1 },
128
- textShadowRadius: 2,
129
- },
130
- slidersContainer: {
131
- flex: 1,
132
- padding: 8,
133
- borderRadius: 6,
134
- },
135
- activeContainer: {
136
- shadowColor: '#fff',
137
- shadowOffset: {
138
- width: 0,
139
- height: 0,
140
- },
141
- shadowOpacity: 0.5,
142
- shadowRadius: 5,
143
- elevation: 5,
144
- },
145
- })
@@ -1,57 +0,0 @@
1
- import { useBackgroundColor, useBorderColor, useIconColor } from '@chem-po/react'
2
- import { Ionicons } from '@expo/vector-icons'
3
- import React from 'react'
4
- import { StyleSheet } from 'react-native'
5
- import { Pressable } from 'react-native-gesture-handler'
6
-
7
- export const InputClearButton = ({
8
- onPress,
9
- isActive,
10
- marginRight,
11
- size,
12
- }: {
13
- onPress: () => void
14
- isActive: boolean
15
- marginRight?: number
16
- size: number
17
- }) => {
18
- const iconColor = useIconColor()
19
- const borderColor = useBorderColor()
20
- const backgroundColor = useBackgroundColor(100)
21
- return (
22
- <Pressable
23
- onPress={onPress}
24
- style={[
25
- styles.closeButton,
26
- { opacity: isActive ? 1 : 0, marginRight, borderColor, backgroundColor },
27
- ]}
28
- hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}
29
- disabled={!isActive}>
30
- <Ionicons name="close" size={size} color={iconColor} style={{ alignSelf: 'center' }} />
31
- </Pressable>
32
- )
33
- }
34
-
35
- export const DateInputClearButton = ({
36
- onPress,
37
- isActive,
38
- size,
39
- }: {
40
- onPress: () => void
41
- isActive: boolean
42
- size: number
43
- }) => {
44
- return <InputClearButton marginRight={0} onPress={onPress} isActive={isActive} size={size} />
45
- }
46
-
47
- const styles = StyleSheet.create({
48
- closeButton: {
49
- padding: 3,
50
- borderRadius: 100,
51
- display: 'flex',
52
- alignItems: 'center',
53
- justifyContent: 'center',
54
- // backgroundColor: '#e2e8f0',
55
- borderWidth: 1,
56
- },
57
- })