@umituz/react-native-design-system 2.3.27 → 2.3.29
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/package.json +3 -2
- package/src/atoms/picker/components/PickerChips.tsx +2 -2
- package/src/atoms/picker/components/PickerModal.tsx +1 -1
- package/src/molecules/SearchBar/SearchBar.tsx +1 -1
- package/src/molecules/animation/presentation/hooks/useIconAnimations.ts +1 -0
- package/src/molecules/bottom-sheet/components/filter/FilterSheet.tsx +2 -2
- package/src/molecules/celebration/presentation/components/CelebrationModal.tsx +5 -2
- package/src/molecules/celebration/presentation/components/CelebrationModalContent.tsx +7 -4
- package/src/types/react-native.d.ts +21 -0
- package/src/utilities/sharing/infrastructure/services/SharingService.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-design-system",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.29",
|
|
4
4
|
"description": "Universal design system for React Native apps - Consolidated package with atoms, molecules, organisms, theme, typography, responsive and safe area utilities",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -116,6 +116,7 @@
|
|
|
116
116
|
"expo-clipboard": "~8.0.7",
|
|
117
117
|
"expo-crypto": "~14.0.0",
|
|
118
118
|
"expo-device": "~7.0.2",
|
|
119
|
+
"expo-file-system": "^19.0.21",
|
|
119
120
|
"expo-haptics": "~14.0.0",
|
|
120
121
|
"expo-localization": "~16.0.1",
|
|
121
122
|
"expo-sharing": "~14.0.8",
|
|
@@ -138,4 +139,4 @@
|
|
|
138
139
|
"README.md",
|
|
139
140
|
"LICENSE"
|
|
140
141
|
]
|
|
141
|
-
}
|
|
142
|
+
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import { View, TouchableOpacity } from 'react-native';
|
|
9
|
+
import { View, TouchableOpacity, GestureResponderEvent } from 'react-native';
|
|
10
10
|
import { useAppDesignTokens } from '../../../theme';
|
|
11
11
|
import { PickerOption } from '../types';
|
|
12
12
|
import { AtomicIcon } from '../../AtomicIcon';
|
|
@@ -41,7 +41,7 @@ export const PickerChips: React.FC<PickerChipsProps> = React.memo(({
|
|
|
41
41
|
<View key={opt.value} style={chipStyles}>
|
|
42
42
|
<AtomicText style={chipTextStyles}>{opt.label}</AtomicText>
|
|
43
43
|
<TouchableOpacity
|
|
44
|
-
onPress={(e) => {
|
|
44
|
+
onPress={(e: GestureResponderEvent) => {
|
|
45
45
|
e.stopPropagation();
|
|
46
46
|
onRemoveChip(opt.value);
|
|
47
47
|
}}
|
|
@@ -191,7 +191,7 @@ export const PickerModal: React.FC<PickerModalProps> = React.memo(({
|
|
|
191
191
|
{filteredOptions.length > 0 ? (
|
|
192
192
|
<FlatList
|
|
193
193
|
data={filteredOptions}
|
|
194
|
-
keyExtractor={(item) => item.value}
|
|
194
|
+
keyExtractor={(item: PickerOption) => item.value}
|
|
195
195
|
renderItem={renderOption}
|
|
196
196
|
showsVerticalScrollIndicator
|
|
197
197
|
testID={`${testID}-list`}
|
|
@@ -10,7 +10,7 @@ import { useAppDesignTokens } from '../../theme';
|
|
|
10
10
|
import { AtomicIcon } from '../../atoms/AtomicIcon';
|
|
11
11
|
import type { SearchBarProps } from './types';
|
|
12
12
|
|
|
13
|
-
export const SearchBar = forwardRef<TextInput
|
|
13
|
+
export const SearchBar = forwardRef<React.ComponentRef<typeof TextInput>, SearchBarProps>(({
|
|
14
14
|
value,
|
|
15
15
|
onChangeText,
|
|
16
16
|
onSubmit,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback } from "react";
|
|
2
|
-
import { View, StyleSheet, ScrollView, Modal, Pressable } from "react-native";
|
|
2
|
+
import { View, StyleSheet, ScrollView, Modal, Pressable, GestureResponderEvent } from "react-native";
|
|
3
3
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
4
4
|
import { AtomicButton } from '../../../../atoms';
|
|
5
5
|
import { useAppDesignTokens } from '../../../../theme';
|
|
@@ -46,7 +46,7 @@ export const FilterSheet: React.FC<FilterSheetProps> = ({
|
|
|
46
46
|
<Pressable style={styles.backdrop} onPress={onClose}>
|
|
47
47
|
<Pressable
|
|
48
48
|
style={[styles.sheet, { backgroundColor: tokens.colors.surface, paddingBottom: insets.bottom }]}
|
|
49
|
-
onPress={(e) => e.stopPropagation()}
|
|
49
|
+
onPress={(e: GestureResponderEvent) => e.stopPropagation()}
|
|
50
50
|
>
|
|
51
51
|
<View style={[styles.handle, { backgroundColor: tokens.colors.border }]} />
|
|
52
52
|
|
|
@@ -35,6 +35,9 @@ export interface CelebrationModalProps {
|
|
|
35
35
|
}) => React.ReactNode;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
// Access View through Animated namespace with type assertion for reanimated v3 compatibility
|
|
39
|
+
const AnimatedView = (Animated as unknown as { View: React.ComponentType<{ style?: unknown; children?: React.ReactNode }> }).View;
|
|
40
|
+
|
|
38
41
|
export const CelebrationModal: React.FC<CelebrationModalProps> = ({
|
|
39
42
|
visible,
|
|
40
43
|
config,
|
|
@@ -59,7 +62,7 @@ export const CelebrationModal: React.FC<CelebrationModalProps> = ({
|
|
|
59
62
|
dismissOnBackdrop={true}
|
|
60
63
|
testID="celebration-modal"
|
|
61
64
|
>
|
|
62
|
-
<
|
|
65
|
+
<AnimatedView style={modalStyle}>
|
|
63
66
|
{renderContent ? (
|
|
64
67
|
renderContent({ config, onClose, iconStyle, modalStyle })
|
|
65
68
|
) : themeColors ? (
|
|
@@ -71,7 +74,7 @@ export const CelebrationModal: React.FC<CelebrationModalProps> = ({
|
|
|
71
74
|
modalStyle={modalStyle}
|
|
72
75
|
/>
|
|
73
76
|
) : null}
|
|
74
|
-
</
|
|
77
|
+
</AnimatedView>
|
|
75
78
|
</BaseModal>
|
|
76
79
|
</>
|
|
77
80
|
);
|
|
@@ -8,6 +8,9 @@ import type { ThemeColors } from "../../domain/entities/FireworksConfig";
|
|
|
8
8
|
import type { useCelebrationModalAnimation } from "../hooks/useCelebrationModalAnimation";
|
|
9
9
|
import { createCelebrationModalStyles } from "../styles/CelebrationModalStyles";
|
|
10
10
|
|
|
11
|
+
// Access View through Animated namespace with type assertion for reanimated v3 compatibility
|
|
12
|
+
const AnimatedView = (Animated as unknown as { View: React.ComponentType<{ style?: unknown; children?: React.ReactNode }> }).View;
|
|
13
|
+
|
|
11
14
|
export interface CelebrationModalContentProps {
|
|
12
15
|
config: CelebrationConfig;
|
|
13
16
|
onClose: () => void;
|
|
@@ -30,7 +33,7 @@ export const CelebrationModalContent: React.FC<CelebrationModalContentProps> = (
|
|
|
30
33
|
const primaryColor = themeColors?.primary || tokens.colors.primary;
|
|
31
34
|
|
|
32
35
|
return (
|
|
33
|
-
<
|
|
36
|
+
<AnimatedView
|
|
34
37
|
style={[
|
|
35
38
|
styles.modal,
|
|
36
39
|
modalStyle,
|
|
@@ -45,11 +48,11 @@ export const CelebrationModalContent: React.FC<CelebrationModalContentProps> = (
|
|
|
45
48
|
},
|
|
46
49
|
]}
|
|
47
50
|
>
|
|
48
|
-
<
|
|
51
|
+
<AnimatedView style={[styles.iconContainer, iconStyle]}>
|
|
49
52
|
<View style={[styles.iconCircle, { backgroundColor: successColor }]}>
|
|
50
53
|
<AtomicIcon name="checkmark" size="xl" color="onPrimary" />
|
|
51
54
|
</View>
|
|
52
|
-
</
|
|
55
|
+
</AnimatedView>
|
|
53
56
|
|
|
54
57
|
<AtomicText type="headlineSmall" style={[styles.title, { color: tokens.colors.onSurface }]}>
|
|
55
58
|
{config.title}
|
|
@@ -85,6 +88,6 @@ export const CelebrationModalContent: React.FC<CelebrationModalContentProps> = (
|
|
|
85
88
|
/>
|
|
86
89
|
)}
|
|
87
90
|
</View>
|
|
88
|
-
</
|
|
91
|
+
</AnimatedView>
|
|
89
92
|
);
|
|
90
93
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import 'react-native';
|
|
2
|
+
|
|
3
|
+
declare module 'react-native' {
|
|
4
|
+
import { FC } from 'react';
|
|
5
|
+
import { ViewProps as RNViewProps, TextProps as RNTextProps } from 'react-native';
|
|
6
|
+
|
|
7
|
+
export const View: FC<RNViewProps>;
|
|
8
|
+
export const Text: FC<RNTextProps>;
|
|
9
|
+
export const ScrollView: FC<any>;
|
|
10
|
+
export const FlatList: FC<any>;
|
|
11
|
+
export const TouchableOpacity: FC<any>;
|
|
12
|
+
export const TouchableHighlight: FC<any>;
|
|
13
|
+
export const Pressable: FC<any>;
|
|
14
|
+
export const TextInput: FC<any>;
|
|
15
|
+
export const Image: FC<any>;
|
|
16
|
+
export const ActivityIndicator: FC<any>;
|
|
17
|
+
export const Modal: FC<any>;
|
|
18
|
+
export const Switch: FC<any>;
|
|
19
|
+
export const KeyboardAvoidingView: FC<any>;
|
|
20
|
+
export const RefreshControl: FC<any>;
|
|
21
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import * as Sharing from 'expo-sharing';
|
|
12
|
-
import * as FileSystem from 'expo-file-system/legacy';
|
|
12
|
+
import * as FileSystem from 'expo-file-system/build/legacy';
|
|
13
13
|
import type { ShareOptions, ShareResult } from '../../domain/entities/Share';
|
|
14
14
|
import { SharingUtils } from '../../domain/entities/Share';
|
|
15
15
|
|