diff --git a/app.json b/app.json index c3502d6..0b3c658 100644 --- a/app.json +++ b/app.json @@ -15,15 +15,13 @@ "updates": { "fallbackToCacheTimeout": 0 }, - "assetBundlePatterns": [ - "**/*" - ], + "assetBundlePatterns": ["**/*"], "ios": { "supportsTablet": true }, "android": { "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", + "foregroundImage": "./assets/icon.png", "backgroundColor": "#FFFFFF" }, "package": "com.oo_mayr.whatsappdirect" diff --git a/assets/icon.png b/assets/icon.png index a0b1526..7c9229f 100644 Binary files a/assets/icon.png and b/assets/icon.png differ diff --git a/assets/splash.png b/assets/splash.png index 0e89705..0cc8135 100644 Binary files a/assets/splash.png and b/assets/splash.png differ diff --git a/src/components/IconButton.tsx b/src/components/IconButton.tsx index 6d3ab91..c7fd31a 100644 --- a/src/components/IconButton.tsx +++ b/src/components/IconButton.tsx @@ -1,14 +1,19 @@ import { StyleSheet, Pressable } from 'react-native'; import React from 'react'; -import { FontAwesome, MaterialCommunityIcons } from '@expo/vector-icons'; +import { + FontAwesome, + MaterialCommunityIcons, + MaterialIcons, +} from '@expo/vector-icons'; import * as Haptics from 'expo-haptics'; interface IconButtonProps { iconName: | React.ComponentProps['name'] - | React.ComponentProps['name']; - iconLibrary: 'FontAwesome' | 'MaterialCommunityIcons'; + | React.ComponentProps['name'] + | React.ComponentProps['name']; + iconLibrary: 'FontAwesome' | 'MaterialCommunityIcons' | 'MaterialIcons'; onPress: () => void; } @@ -22,6 +27,9 @@ const IconButton = ({ iconLibrary, iconName, onPress }: IconButtonProps) => { case 'MaterialCommunityIcons': DynamicIcon = MaterialCommunityIcons; break; + case 'MaterialIcons': + DynamicIcon = MaterialIcons; + break; } const onPressHandler = () => { diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index 7c12d8a..2f2eaad 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -9,7 +9,12 @@ import SaveNumber from '../screens/SaveNumber'; type RootStackParamList = { Home: undefined; SavedNumbers: undefined; - SaveNumber: { number: string }; + SaveNumber: { + id?: string; + number: string; + name?: string; + screen?: string; + }; }; type HomeScreenProps = NativeStackScreenProps; diff --git a/src/redux/savedNumbersReducer.ts b/src/redux/savedNumbersReducer.ts index b286f2b..e8af64b 100644 --- a/src/redux/savedNumbersReducer.ts +++ b/src/redux/savedNumbersReducer.ts @@ -27,12 +27,21 @@ const savedNumbersSlice = createSlice({ (number) => number.id !== action.payload ); }, + editNumber(state, action) { + const { id, name } = action.payload; + const numberToEdit = state.savedNumbers.find( + (number) => number.id === id + ); + if (numberToEdit) { + numberToEdit.name = name; + } + }, clearAllNumbers(state) { state.savedNumbers = []; }, }, }); -export const { addNumber, removeNumber, clearAllNumbers } = +export const { addNumber, removeNumber, editNumber, clearAllNumbers } = savedNumbersSlice.actions; export default savedNumbersSlice.reducer; diff --git a/src/screens/HomeScreen.tsx b/src/screens/HomeScreen.tsx index 6dd0ca3..137de16 100644 --- a/src/screens/HomeScreen.tsx +++ b/src/screens/HomeScreen.tsx @@ -19,7 +19,6 @@ export default function HomeScreen({ navigation, route }: HomeScreenProps) { Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light); if (number.length > 0) { Linking.openURL(`https://wa.me/${number}`); - setNumber(''); } else { alert('Please enter a valid number'); } @@ -29,7 +28,6 @@ export default function HomeScreen({ navigation, route }: HomeScreenProps) { Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light); if (number.length > 0) { navigation.navigate('SaveNumber', { number }); - setNumber(''); } else { alert('Please enter a valid number'); } @@ -44,15 +42,15 @@ export default function HomeScreen({ navigation, route }: HomeScreenProps) { setNumber(text)} /> + Example: 923321234567