@tecsinapse/react-native-kit 1.16.0 → 1.17.0

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 (161) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/components/atoms/Avatar/Avatar.js +1 -3
  3. package/dist/components/atoms/Avatar/Avatar.js.map +1 -1
  4. package/dist/components/atoms/Avatar/index.js +4 -9
  5. package/dist/components/atoms/Avatar/index.js.map +1 -1
  6. package/dist/components/atoms/Badge/Badge.js +1 -3
  7. package/dist/components/atoms/Badge/Badge.js.map +1 -1
  8. package/dist/components/atoms/Badge/index.js +5 -15
  9. package/dist/components/atoms/Badge/index.js.map +1 -1
  10. package/dist/components/atoms/BottomNavigator/BottomNavigator.js +3 -5
  11. package/dist/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
  12. package/dist/components/atoms/BottomNavigator/Item.js +1 -3
  13. package/dist/components/atoms/BottomNavigator/Item.js.map +1 -1
  14. package/dist/components/atoms/BottomNavigator/index.js +7 -21
  15. package/dist/components/atoms/BottomNavigator/index.js.map +1 -1
  16. package/dist/components/atoms/BottomNavigator/styled.js +1 -3
  17. package/dist/components/atoms/BottomNavigator/styled.js.map +1 -1
  18. package/dist/components/atoms/Button/Button.js +2 -4
  19. package/dist/components/atoms/Button/Button.js.map +1 -1
  20. package/dist/components/atoms/Button/States/Error.js +1 -3
  21. package/dist/components/atoms/Button/States/Error.js.map +1 -1
  22. package/dist/components/atoms/Button/States/Loading.js +1 -3
  23. package/dist/components/atoms/Button/States/Loading.js.map +1 -1
  24. package/dist/components/atoms/Button/States/Success.js +1 -3
  25. package/dist/components/atoms/Button/States/Success.js.map +1 -1
  26. package/dist/components/atoms/Button/States/index.js +8 -21
  27. package/dist/components/atoms/Button/States/index.js.map +1 -1
  28. package/dist/components/atoms/Button/index.js +9 -33
  29. package/dist/components/atoms/Button/index.js.map +1 -1
  30. package/dist/components/atoms/GroupButton/GroupButtonOption.js +1 -3
  31. package/dist/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
  32. package/dist/components/atoms/GroupButton/index.js +4 -9
  33. package/dist/components/atoms/GroupButton/index.js.map +1 -1
  34. package/dist/components/atoms/Header/Header.js +9 -11
  35. package/dist/components/atoms/Header/Header.js.map +1 -1
  36. package/dist/components/atoms/Header/index.js +5 -15
  37. package/dist/components/atoms/Header/index.js.map +1 -1
  38. package/dist/components/atoms/Header/styled.js +1 -3
  39. package/dist/components/atoms/Header/styled.js.map +1 -1
  40. package/dist/components/atoms/Input/Input.js +1 -3
  41. package/dist/components/atoms/Input/Input.js.map +1 -1
  42. package/dist/components/atoms/Input/index.js +5 -15
  43. package/dist/components/atoms/Input/index.js.map +1 -1
  44. package/dist/components/atoms/Input/styled.js +1 -3
  45. package/dist/components/atoms/Input/styled.js.map +1 -1
  46. package/dist/components/atoms/InputMask/InputMask.d.ts +8 -0
  47. package/dist/components/atoms/InputMask/InputMask.js +87 -0
  48. package/dist/components/atoms/InputMask/InputMask.js.map +1 -0
  49. package/dist/components/atoms/InputMask/index.d.ts +1 -0
  50. package/dist/components/atoms/InputMask/index.js +14 -0
  51. package/dist/components/atoms/InputMask/index.js.map +1 -0
  52. package/dist/components/atoms/InputMask/styled.d.ts +5 -0
  53. package/dist/components/atoms/InputMask/styled.js +27 -0
  54. package/dist/components/atoms/InputMask/styled.js.map +1 -0
  55. package/dist/components/atoms/Modal/ModalGroupManager.js +1 -3
  56. package/dist/components/atoms/Modal/ModalGroupManager.js.map +1 -1
  57. package/dist/components/atoms/Modal/ModalLifecycleHandler.d.ts +1 -0
  58. package/dist/components/atoms/Modal/ModalLifecycleHandler.js +30 -30
  59. package/dist/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
  60. package/dist/components/atoms/Modal/index.d.ts +1 -0
  61. package/dist/components/atoms/Modal/index.js +15 -39
  62. package/dist/components/atoms/Modal/index.js.map +1 -1
  63. package/dist/components/atoms/Modal/ui/BaseModalView.js +1 -3
  64. package/dist/components/atoms/Modal/ui/BaseModalView.js.map +1 -1
  65. package/dist/components/atoms/Modal/ui/styled.js +1 -3
  66. package/dist/components/atoms/Modal/ui/styled.js.map +1 -1
  67. package/dist/components/atoms/Modal/ui/types.js +1 -3
  68. package/dist/components/atoms/Modal/useLazyModalManager.d.ts +1 -1
  69. package/dist/components/atoms/Modal/useLazyModalManager.js +3 -5
  70. package/dist/components/atoms/Modal/useLazyModalManager.js.map +1 -1
  71. package/dist/components/atoms/Modal/useModalManager.d.ts +1 -1
  72. package/dist/components/atoms/Modal/useModalManager.js +3 -5
  73. package/dist/components/atoms/Modal/useModalManager.js.map +1 -1
  74. package/dist/components/atoms/Modal/useModalRemoteControl.d.ts +4 -0
  75. package/dist/components/atoms/Modal/useModalRemoteControl.js +24 -0
  76. package/dist/components/atoms/Modal/useModalRemoteControl.js.map +1 -0
  77. package/dist/components/atoms/Skeleton/Pulse.js +1 -3
  78. package/dist/components/atoms/Skeleton/Pulse.js.map +1 -1
  79. package/dist/components/atoms/Skeleton/Skeleton.js +3 -5
  80. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -1
  81. package/dist/components/atoms/Skeleton/Wave.js +1 -3
  82. package/dist/components/atoms/Skeleton/Wave.js.map +1 -1
  83. package/dist/components/atoms/Skeleton/animation.js +1 -3
  84. package/dist/components/atoms/Skeleton/animation.js.map +1 -1
  85. package/dist/components/atoms/Skeleton/index.js +5 -15
  86. package/dist/components/atoms/Skeleton/index.js.map +1 -1
  87. package/dist/components/atoms/Skeleton/styled.js +1 -3
  88. package/dist/components/atoms/Skeleton/styled.js.map +1 -1
  89. package/dist/components/atoms/Skeleton/types.js +1 -3
  90. package/dist/components/atoms/SnappingSlider/SnappingSlider.js +1 -3
  91. package/dist/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
  92. package/dist/components/atoms/SnappingSlider/index.js +5 -15
  93. package/dist/components/atoms/SnappingSlider/index.js.map +1 -1
  94. package/dist/components/atoms/Tag/Tag.js +1 -3
  95. package/dist/components/atoms/Tag/Tag.js.map +1 -1
  96. package/dist/components/atoms/Tag/index.js +5 -15
  97. package/dist/components/atoms/Tag/index.js.map +1 -1
  98. package/dist/components/atoms/Text/Text.js +1 -3
  99. package/dist/components/atoms/Text/Text.js.map +1 -1
  100. package/dist/components/atoms/Text/index.js +5 -15
  101. package/dist/components/atoms/Text/index.js.map +1 -1
  102. package/dist/components/atoms/Text/styled.js +4 -6
  103. package/dist/components/atoms/Text/styled.js.map +1 -1
  104. package/dist/components/atoms/TextArea/TextArea.js +1 -3
  105. package/dist/components/atoms/TextArea/TextArea.js.map +1 -1
  106. package/dist/components/atoms/TextArea/index.js +5 -15
  107. package/dist/components/atoms/TextArea/index.js.map +1 -1
  108. package/dist/components/atoms/TextArea/styled.js +1 -3
  109. package/dist/components/atoms/TextArea/styled.js.map +1 -1
  110. package/dist/components/molecules/Calendar/Calendar.js +1 -3
  111. package/dist/components/molecules/Calendar/Calendar.js.map +1 -1
  112. package/dist/components/molecules/Calendar/index.js +4 -9
  113. package/dist/components/molecules/Calendar/index.js.map +1 -1
  114. package/dist/components/molecules/DatePicker/DatePicker.js +2 -4
  115. package/dist/components/molecules/DatePicker/DatePicker.js.map +1 -1
  116. package/dist/components/molecules/DatePicker/index.js +5 -15
  117. package/dist/components/molecules/DatePicker/index.js.map +1 -1
  118. package/dist/components/molecules/DatePicker/styled.js +1 -3
  119. package/dist/components/molecules/DatePicker/styled.js.map +1 -1
  120. package/dist/components/molecules/DateTimePicker/DateTimePicker.js +1 -3
  121. package/dist/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  122. package/dist/components/molecules/DateTimePicker/index.js +5 -15
  123. package/dist/components/molecules/DateTimePicker/index.js.map +1 -1
  124. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js +1 -3
  125. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
  126. package/dist/components/molecules/DateTimeSelector/index.js +4 -9
  127. package/dist/components/molecules/DateTimeSelector/index.js.map +1 -1
  128. package/dist/components/molecules/InputPassword/InputPassword.js +1 -3
  129. package/dist/components/molecules/InputPassword/InputPassword.js.map +1 -1
  130. package/dist/components/molecules/InputPassword/index.js +5 -15
  131. package/dist/components/molecules/InputPassword/index.js.map +1 -1
  132. package/dist/components/molecules/Select/Modal.js +3 -5
  133. package/dist/components/molecules/Select/Modal.js.map +1 -1
  134. package/dist/components/molecules/Select/Select.js +3 -5
  135. package/dist/components/molecules/Select/Select.js.map +1 -1
  136. package/dist/components/molecules/Select/index.js +5 -15
  137. package/dist/components/molecules/Select/index.js.map +1 -1
  138. package/dist/components/molecules/Select/styled.js +2 -4
  139. package/dist/components/molecules/Select/styled.js.map +1 -1
  140. package/dist/components/molecules/Snackbar/Snackbar.js +1 -3
  141. package/dist/components/molecules/Snackbar/Snackbar.js.map +1 -1
  142. package/dist/components/molecules/Snackbar/index.js +5 -15
  143. package/dist/components/molecules/Snackbar/index.js.map +1 -1
  144. package/dist/components/molecules/Snackbar/styled.js +1 -3
  145. package/dist/components/molecules/Snackbar/styled.js.map +1 -1
  146. package/dist/index.d.ts +2 -1
  147. package/dist/index.js +75 -267
  148. package/dist/index.js.map +1 -1
  149. package/dist/utils/date.js +1 -3
  150. package/dist/utils/date.js.map +1 -1
  151. package/package.json +6 -6
  152. package/src/components/atoms/InputMask/InputMask.tsx +96 -0
  153. package/src/components/atoms/InputMask/index.ts +1 -0
  154. package/src/components/atoms/InputMask/styled.ts +25 -0
  155. package/src/components/atoms/Modal/ModalLifecycleHandler.ts +15 -4
  156. package/src/components/atoms/Modal/index.ts +2 -1
  157. package/src/components/atoms/Modal/useLazyModalManager.ts +2 -2
  158. package/src/components/atoms/Modal/useModalManager.ts +2 -2
  159. package/src/components/atoms/Modal/useModalRemoteControl.ts +26 -0
  160. package/src/components/atoms/Skeleton/Skeleton.tsx +6 -0
  161. package/src/index.ts +2 -0
@@ -0,0 +1,96 @@
1
+ import {
2
+ FontStackType,
3
+ FontWeightType,
4
+ Hint,
5
+ InputContainerProps,
6
+ InputMaskElementProps,
7
+ useInputFocus,
8
+ } from '@tecsinapse/react-core';
9
+ import React, { FC } from 'react';
10
+ import { View } from 'react-native';
11
+ import { StyledInputContainer, StyledNativeInputMask } from './styled';
12
+ import { Text } from '../Text';
13
+
14
+ export interface InputMaskNativeProps
15
+ extends Omit<InputMaskElementProps, 'style'>,
16
+ InputContainerProps {
17
+ inputFontStack?: FontStackType;
18
+ inputFontWeight?: FontWeightType;
19
+ }
20
+
21
+ const InputMask: FC<InputMaskNativeProps> = React.forwardRef(
22
+ (
23
+ {
24
+ label,
25
+ labelColor,
26
+ labelColorVariant,
27
+ labelColorTone,
28
+ labelTypography,
29
+ labelStack,
30
+ labelWeight,
31
+ leftComponent,
32
+ rightComponent,
33
+ disabled,
34
+ style,
35
+ borderColor,
36
+ borderColorGradation,
37
+ inputFontStack = 'default',
38
+ inputFontWeight = 'bold',
39
+ inputContainerStyle,
40
+ variant = 'default',
41
+ hintComponent,
42
+ hint,
43
+ onFocus,
44
+ onBlur,
45
+ ...rest
46
+ },
47
+ ref
48
+ ) => {
49
+ const _hint = hintComponent || (
50
+ <Hint TextComponent={Text} text={hint} variant={variant} />
51
+ );
52
+ const { focused, handleBlur, handleFocus } = useInputFocus(
53
+ onFocus,
54
+ onBlur,
55
+ !disabled
56
+ );
57
+
58
+ return (
59
+ <View style={style}>
60
+ <StyledInputContainer
61
+ label={label}
62
+ labelColor={labelColor}
63
+ labelColorVariant={labelColorVariant}
64
+ labelColorTone={labelColorTone}
65
+ labelTypography={labelTypography}
66
+ labelStack={labelStack}
67
+ labelWeight={labelWeight}
68
+ LabelComponent={Text}
69
+ leftComponent={leftComponent}
70
+ rightComponent={rightComponent}
71
+ borderColor={borderColor}
72
+ borderColorGradation={borderColorGradation}
73
+ inputContainerStyle={inputContainerStyle}
74
+ focused={focused}
75
+ disabled={disabled}
76
+ variant={variant}
77
+ >
78
+ <StyledNativeInputMask
79
+ {...rest}
80
+ ref={ref}
81
+ fontStack={inputFontStack}
82
+ fontWeight={inputFontWeight}
83
+ disabled={disabled}
84
+ onFocus={handleFocus}
85
+ onBlur={handleBlur}
86
+ />
87
+ </StyledInputContainer>
88
+ {hint && _hint}
89
+ </View>
90
+ );
91
+ }
92
+ );
93
+
94
+ InputMask.displayName = 'InputMask';
95
+
96
+ export default InputMask;
@@ -0,0 +1 @@
1
+ export { default as InputMask, InputMaskNativeProps } from './InputMask';
@@ -0,0 +1,25 @@
1
+ import styled from '@emotion/native';
2
+ import {
3
+ InputContainer,
4
+ InputMaskElement,
5
+ RFValueStr,
6
+ StyleProps,
7
+ } from '@tecsinapse/react-core';
8
+ import { Font, fontStyles } from '../Text/styled';
9
+ import { InputMaskNativeProps } from './InputMask';
10
+
11
+ export const StyledInputContainer = styled(InputContainer)<Partial<StyleProps>>`
12
+ min-height: ${RFValueStr('50px')};
13
+ `;
14
+
15
+ const StyledNativeInputMaskBase = styled(InputMaskElement)<
16
+ Partial<InputMaskNativeProps> & Partial<StyleProps>
17
+ >`
18
+ height: ${({ theme }) => theme.typography.h5.lineHeight};
19
+ width: 100%;
20
+ padding: 0;
21
+ `;
22
+
23
+ export const StyledNativeInputMask = styled(StyledNativeInputMaskBase)<
24
+ Font & Partial<InputMaskNativeProps> & Partial<StyleProps>
25
+ >(fontStyles);
@@ -81,7 +81,7 @@ export class ModalLifecycleHandler {
81
81
  */
82
82
  public sync = (id: string, modal: () => ReactElement<IBaseModal>) => {
83
83
  if (this.nodeGroup.has(id)) {
84
- const savedNode = this.nodeGroup.get(id)
84
+ const savedNode = this.findNode(id)
85
85
  savedNode && this.nodeGroup.set(id, { ...savedNode, modal })
86
86
  return
87
87
  }
@@ -105,18 +105,29 @@ export class ModalLifecycleHandler {
105
105
  * @param id
106
106
  */
107
107
  private remove = (id: string) => {
108
- const savedNode = this.nodeGroup.get(id)
108
+ const savedNode = this.findNode(id)
109
109
  savedNode && this.nodeGroup.set(id, { ...savedNode, lastVisualization: undefined })
110
110
  this.update()
111
111
  }
112
112
 
113
+ /**
114
+ * Find a modal node by id.
115
+ *
116
+ * @param id
117
+ */
118
+ private findNode = (id: string) => {
119
+ const node = this.nodeGroup.get(id)
120
+ !node && console.warn(`No modal was found with the id "${id}"`)
121
+ return node
122
+ }
123
+
113
124
  /**
114
125
  * Makes a modal appears.
115
126
  *
116
127
  * @param id
117
128
  */
118
129
  public show = (id: string) => {
119
- const savedNode = this.nodeGroup.get(id)
130
+ const savedNode = this.findNode(id)
120
131
  savedNode && this.nodeGroup.set(id, { ...savedNode, visible: true, lastVisualization: new Date() })
121
132
  this.update()
122
133
  }
@@ -127,7 +138,7 @@ export class ModalLifecycleHandler {
127
138
  * @param id
128
139
  */
129
140
  public close = (id: string) => {
130
- const savedNode = this.nodeGroup.get(id)
141
+ const savedNode = this.findNode(id)
131
142
  savedNode && this.nodeGroup.set(id, { ...savedNode, visible: false })
132
143
  this.update()
133
144
  }
@@ -3,4 +3,5 @@ export * from './ModalLifecycleHandler'
3
3
  export * from './ui/BaseModalView'
4
4
  export * from './ui/types'
5
5
  export * from './useModalManager'
6
- export * from './useLazyModalManager'
6
+ export * from './useLazyModalManager'
7
+ export * from './useModalRemoteControl'
@@ -11,9 +11,9 @@ import { IBaseModal } from "./ui/types"
11
11
  * @param modal
12
12
  * @returns
13
13
  */
14
- export const useLazyModalManager = () => {
14
+ export const useLazyModalManager = (modalId?: string) => {
15
15
 
16
- const [id] = useState(uuidv4())
16
+ const [id] = useState(modalId ?? uuidv4())
17
17
 
18
18
  const requestUpdate = useCallback(() => modalLifecycle.update(), [])
19
19
 
@@ -11,9 +11,9 @@ import { IBaseModal } from "./ui/types"
11
11
  * @param modal
12
12
  * @returns
13
13
  */
14
- export const useModalManager = (modal: () => ReactElement<IBaseModal>) => {
14
+ export const useModalManager = (modal: () => ReactElement<IBaseModal>, modalId?: string) => {
15
15
 
16
- const [id] = useState(uuidv4())
16
+ const [id] = useState(modalId ?? uuidv4())
17
17
  modalLifecycle.sync(id, modal)
18
18
 
19
19
  const show = useCallback(() => {
@@ -0,0 +1,26 @@
1
+ import { useCallback } from "react"
2
+ import { modalLifecycle } from "./ModalGroupManager"
3
+
4
+ /**
5
+ * Use it to control a specific modal wherever it's.
6
+ * Just provide an id of a specific instance.
7
+ *
8
+ * @param modalId
9
+ * @returns
10
+ */
11
+ export const useModalRemoteControl = (modalId: string) => {
12
+
13
+ const show = useCallback(() => {
14
+ modalLifecycle.show(modalId)
15
+ }, [modalId])
16
+
17
+ const close = useCallback(() => {
18
+ modalLifecycle.close(modalId)
19
+ }, [modalId])
20
+
21
+ return {
22
+ show,
23
+ close
24
+ }
25
+
26
+ }
@@ -50,12 +50,18 @@ const Skeleton: React.FC<SkeletonProps> = ({
50
50
  childrenLayout={childrenLayout}
51
51
  />
52
52
  ) : (
53
+ <></>
54
+ )}
55
+
56
+ {active && animation === 'pulse' ? (
53
57
  <Pulse
54
58
  active={active}
55
59
  width={width}
56
60
  height={height}
57
61
  childrenLayout={childrenLayout}
58
62
  />
63
+ ) : (
64
+ <></>
59
65
  )}
60
66
  <View
61
67
  onLayout={event => getChildrenLayout(event)}
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ export * from '@tecsinapse/react-core';
2
2
  export { Header, HeaderProps } from './components/atoms/Header';
3
3
  export { Select, SelectNativeProps } from './components/molecules/Select';
4
4
  export { Input, InputNativeProps } from './components/atoms/Input';
5
+ export { InputMask, InputMaskNativeProps } from './components/atoms/InputMask';
5
6
  export { TextArea, TextAreaProps } from './components/atoms/TextArea';
6
7
  export { Text, TextNativeProps } from './components/atoms/Text';
7
8
  export {
@@ -44,6 +45,7 @@ export {
44
45
  ModalLifecycleHandler,
45
46
  useLazyModalManager,
46
47
  useModalManager,
48
+ useModalRemoteControl,
47
49
  IBaseModal,
48
50
  } from './components/atoms/Modal';
49
51
  export { Skeleton, SkeletonProps } from './components/atoms/Skeleton';