mirror of
https://github.com/urosran/cally.git
synced 2025-07-10 07:07:16 +00:00
Various updates....
This commit is contained in:
5
app.json
5
app.json
@ -16,7 +16,7 @@
|
|||||||
"supportsTablet": true,
|
"supportsTablet": true,
|
||||||
"bundleIdentifier": "com.cally.app",
|
"bundleIdentifier": "com.cally.app",
|
||||||
"googleServicesFile": "./ios/GoogleService-Info.plist",
|
"googleServicesFile": "./ios/GoogleService-Info.plist",
|
||||||
"buildNumber": "23",
|
"buildNumber": "30",
|
||||||
"usesAppleSignIn": true
|
"usesAppleSignIn": true
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
@ -74,7 +74,8 @@
|
|||||||
"expo-apple-authentication"
|
"expo-apple-authentication"
|
||||||
],
|
],
|
||||||
"expo-font",
|
"expo-font",
|
||||||
"expo-localization"
|
"expo-localization",
|
||||||
|
"./plugins/withPodfile"
|
||||||
],
|
],
|
||||||
"experiments": {
|
"experiments": {
|
||||||
"typedRoutes": true
|
"typedRoutes": true
|
||||||
|
@ -52,11 +52,19 @@ import "react-native-reanimated";
|
|||||||
import {AuthContextProvider} from "@/contexts/AuthContext";
|
import {AuthContextProvider} from "@/contexts/AuthContext";
|
||||||
import {QueryClient, QueryClientProvider} from "react-query";
|
import {QueryClient, QueryClientProvider} from "react-query";
|
||||||
import {TextProps, ThemeManager, Toast, Typography,} from "react-native-ui-lib";
|
import {TextProps, ThemeManager, Toast, Typography,} from "react-native-ui-lib";
|
||||||
|
import {Platform} from 'react-native';
|
||||||
|
import KeyboardManager from 'react-native-keyboard-manager';
|
||||||
|
|
||||||
SplashScreen.preventAutoHideAsync();
|
SplashScreen.preventAutoHideAsync();
|
||||||
|
|
||||||
const queryClient = new QueryClient();
|
const queryClient = new QueryClient();
|
||||||
|
|
||||||
|
|
||||||
|
if (Platform.OS === 'ios') {
|
||||||
|
KeyboardManager.setEnable(true);
|
||||||
|
KeyboardManager.setToolbarPreviousNextButtonEnable(true);
|
||||||
|
}
|
||||||
|
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
// functions().useEmulator("localhost", 5001);
|
// functions().useEmulator("localhost", 5001);
|
||||||
// firestore().useEmulator("localhost", 5471);
|
// firestore().useEmulator("localhost", 5471);
|
||||||
|
@ -5,6 +5,7 @@ import {
|
|||||||
Colors,
|
Colors,
|
||||||
Dialog,
|
Dialog,
|
||||||
FloatingButton,
|
FloatingButton,
|
||||||
|
KeyboardAwareScrollView,
|
||||||
PanningProvider,
|
PanningProvider,
|
||||||
Picker,
|
Picker,
|
||||||
Text,
|
Text,
|
||||||
@ -27,6 +28,7 @@ import CircledXIcon from "@/assets/svgs/CircledXIcon";
|
|||||||
import ProfileIcon from "@/assets/svgs/ProfileIcon";
|
import ProfileIcon from "@/assets/svgs/ProfileIcon";
|
||||||
import NavToDosIcon from "@/assets/svgs/NavToDosIcon";
|
import NavToDosIcon from "@/assets/svgs/NavToDosIcon";
|
||||||
import Ionicons from "@expo/vector-icons/Ionicons";
|
import Ionicons from "@expo/vector-icons/Ionicons";
|
||||||
|
import {PreviousNextView} from "react-native-keyboard-manager";
|
||||||
|
|
||||||
const MyGroup = () => {
|
const MyGroup = () => {
|
||||||
const [showAddUserDialog, setShowAddUserDialog] = useState(false);
|
const [showAddUserDialog, setShowAddUserDialog] = useState(false);
|
||||||
@ -299,136 +301,151 @@ const MyGroup = () => {
|
|||||||
visible={showNewUserInfoDialog}
|
visible={showNewUserInfoDialog}
|
||||||
onDismiss={() => setShowNewUserInfoDialog(false)}
|
onDismiss={() => setShowNewUserInfoDialog(false)}
|
||||||
>
|
>
|
||||||
<Card padding-25 style={styles.dialogCard}>
|
<PreviousNextView>
|
||||||
<View row spread>
|
<KeyboardAwareScrollView>
|
||||||
<Text style={{fontFamily: "Manrope_500Medium", fontSize: 16}}>
|
<Card padding-25 style={styles.dialogCard}>
|
||||||
New User Information
|
<View row spread>
|
||||||
</Text>
|
<Text style={{fontFamily: "Manrope_500Medium", fontSize: 16}}>
|
||||||
<TouchableOpacity onPress={() => {
|
New User Information
|
||||||
setShowNewUserInfoDialog(false)
|
</Text>
|
||||||
}}>
|
<TouchableOpacity onPress={() => {
|
||||||
<CircledXIcon/>
|
setShowNewUserInfoDialog(false)
|
||||||
</TouchableOpacity>
|
}}>
|
||||||
</View>
|
<CircledXIcon/>
|
||||||
<View style={styles.divider} spread/>
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
<View style={styles.divider} spread/>
|
||||||
|
|
||||||
<View row centerV gap-20 marginV-20>
|
<View row centerV gap-20 marginV-20>
|
||||||
<View
|
<View
|
||||||
height={65.54}
|
height={65.54}
|
||||||
width={65.54}
|
width={65.54}
|
||||||
children={
|
children={
|
||||||
<ProfileIcon color={"#d6d6d6"} width={37} height={37}/>
|
<ProfileIcon color={"#d6d6d6"} width={37} height={37}/>
|
||||||
}
|
}
|
||||||
backgroundColor={Colors.grey60}
|
backgroundColor={Colors.grey60}
|
||||||
style={{borderRadius: 25}}
|
style={{borderRadius: 25}}
|
||||||
center
|
center
|
||||||
/>
|
/>
|
||||||
<TouchableOpacity onPress={() => {
|
<TouchableOpacity onPress={() => {
|
||||||
}}>
|
}}>
|
||||||
<Text color="#50be0c" style={styles.jakarta13} marginL-15>
|
<Text color="#50be0c" style={styles.jakarta13} marginL-15>
|
||||||
Upload User Profile Photo
|
Upload User Profile Photo
|
||||||
|
</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<Text style={styles.jakarta12}>Member Status</Text>
|
||||||
|
<View style={styles.viewPicker}>
|
||||||
|
<Picker
|
||||||
|
editable={!isLoading}
|
||||||
|
value={selectedStatus}
|
||||||
|
onChange={(item) => setSelectedStatus(item)}
|
||||||
|
showSearch
|
||||||
|
floatingPlaceholder
|
||||||
|
style={styles.inViewPicker}
|
||||||
|
trailingAccessory={
|
||||||
|
<View style={{
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
height: "100%",
|
||||||
|
marginTop: -38,
|
||||||
|
paddingRight: 15
|
||||||
|
}}>
|
||||||
|
<Ionicons name={"chevron-down"} style={{alignSelf: "center"}} size={20}
|
||||||
|
color={"#000000"}/>
|
||||||
|
</View>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Picker.Item label="Child" value={ProfileType.CHILD}/>
|
||||||
|
<Picker.Item label="Parent" value={ProfileType.PARENT}/>
|
||||||
|
<Picker.Item label="Caregiver" value={ProfileType.CAREGIVER}/>
|
||||||
|
<Picker.Item
|
||||||
|
label="Family Device"
|
||||||
|
value={ProfileType.FAMILY_DEVICE}
|
||||||
|
/>
|
||||||
|
</Picker>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<Text style={styles.jakarta12}>
|
||||||
|
{selectedStatus === ProfileType.FAMILY_DEVICE
|
||||||
|
? "Device Name"
|
||||||
|
: "First Name"}
|
||||||
</Text>
|
</Text>
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<Text style={styles.jakarta12}>Member Status</Text>
|
|
||||||
<View style={styles.viewPicker}>
|
|
||||||
<Picker
|
|
||||||
editable={!isLoading}
|
|
||||||
value={selectedStatus}
|
|
||||||
onChange={(item) => setSelectedStatus(item)}
|
|
||||||
showSearch
|
|
||||||
floatingPlaceholder
|
|
||||||
style={styles.inViewPicker}
|
|
||||||
trailingAccessory={
|
|
||||||
<View style={{ justifyContent: "center", alignItems: "center", height:"100%", marginTop: -38, paddingRight: 15}}>
|
|
||||||
<Ionicons name={"chevron-down"} style={{ alignSelf: "center" }} size={20} color={"#000000"} />
|
|
||||||
</View>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Picker.Item label="Child" value={ProfileType.CHILD}/>
|
|
||||||
<Picker.Item label="Parent" value={ProfileType.PARENT}/>
|
|
||||||
<Picker.Item label="Caregiver" value={ProfileType.CAREGIVER}/>
|
|
||||||
<Picker.Item
|
|
||||||
label="Family Device"
|
|
||||||
value={ProfileType.FAMILY_DEVICE}
|
|
||||||
/>
|
|
||||||
</Picker>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<Text style={styles.jakarta12}>
|
|
||||||
{selectedStatus === ProfileType.FAMILY_DEVICE
|
|
||||||
? "Device Name"
|
|
||||||
: "First Name"}
|
|
||||||
</Text>
|
|
||||||
<TextField
|
|
||||||
editable={!isLoading}
|
|
||||||
placeholder={
|
|
||||||
selectedStatus === ProfileType.FAMILY_DEVICE
|
|
||||||
? "Device name"
|
|
||||||
: "First name"
|
|
||||||
}
|
|
||||||
value={firstName}
|
|
||||||
onChangeText={setFirstName}
|
|
||||||
style={styles.inputField}
|
|
||||||
onSubmitEditing={() => {
|
|
||||||
lNameRef.current?.focus()
|
|
||||||
}}
|
|
||||||
blurOnSubmit={false}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{selectedStatus !== ProfileType.FAMILY_DEVICE && (
|
|
||||||
<>
|
|
||||||
<Text style={styles.jakarta12}>Last Name</Text>
|
|
||||||
<TextField
|
<TextField
|
||||||
ref={lNameRef}
|
|
||||||
editable={!isLoading}
|
editable={!isLoading}
|
||||||
placeholder="Last name"
|
placeholder={
|
||||||
value={lastName}
|
selectedStatus === ProfileType.FAMILY_DEVICE
|
||||||
onChangeText={setLastName}
|
? "Device name"
|
||||||
|
: "First name"
|
||||||
|
}
|
||||||
|
value={firstName}
|
||||||
|
onChangeText={setFirstName}
|
||||||
style={styles.inputField}
|
style={styles.inputField}
|
||||||
onSubmitEditing={() => {
|
onSubmitEditing={() => {
|
||||||
emailRef.current?.focus()
|
lNameRef.current?.focus()
|
||||||
}}
|
}}
|
||||||
blurOnSubmit={false}
|
blurOnSubmit={false}
|
||||||
|
returnKeyType="next"
|
||||||
/>
|
/>
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{selectedStatus !== ProfileType.FAMILY_DEVICE && (
|
{selectedStatus !== ProfileType.FAMILY_DEVICE && (
|
||||||
<>
|
<>
|
||||||
<Text style={styles.jakarta12}>Email Address (Optional)</Text>
|
<Text style={styles.jakarta12}>Last Name</Text>
|
||||||
<TextField
|
<TextField
|
||||||
ref={emailRef}
|
ref={lNameRef}
|
||||||
editable={!isLoading}
|
editable={!isLoading}
|
||||||
placeholder="Email address"
|
placeholder="Last name"
|
||||||
value={email}
|
value={lastName}
|
||||||
onChangeText={setEmail}
|
onChangeText={setLastName}
|
||||||
keyboardType="email-address"
|
style={styles.inputField}
|
||||||
autoCapitalize="none"
|
onSubmitEditing={() => {
|
||||||
style={styles.inputField}
|
emailRef.current?.focus()
|
||||||
|
}}
|
||||||
|
blurOnSubmit={false}
|
||||||
|
returnKeyType="next"
|
||||||
|
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{selectedStatus !== ProfileType.FAMILY_DEVICE && (
|
||||||
|
<>
|
||||||
|
<Text style={styles.jakarta12}>Email Address (Optional)</Text>
|
||||||
|
<TextField
|
||||||
|
ref={emailRef}
|
||||||
|
editable={!isLoading}
|
||||||
|
placeholder="Email address"
|
||||||
|
value={email}
|
||||||
|
onChangeText={setEmail}
|
||||||
|
keyboardType="email-address"
|
||||||
|
autoCapitalize="none"
|
||||||
|
style={styles.inputField}
|
||||||
|
returnKeyType="done"
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<Button
|
||||||
|
disabled={
|
||||||
|
!firstName ||
|
||||||
|
(selectedStatus !== ProfileType.FAMILY_DEVICE && !lastName) ||
|
||||||
|
isLoading
|
||||||
|
}
|
||||||
|
label={isLoading ? "Adding..." : "Add group member"}
|
||||||
|
backgroundColor="#fd1775"
|
||||||
|
labelStyle={{
|
||||||
|
fontFamily: "PlusJakartaSans_500Medium",
|
||||||
|
fontSize: 15,
|
||||||
|
marginLeft: 7,
|
||||||
|
}}
|
||||||
|
style={{marginTop: 20, backgroundColor: "#fd1775"}}
|
||||||
|
iconSource={() => <NavToDosIcon width={22} color={"white"}/>}
|
||||||
|
onPress={handleCreateSubUser}
|
||||||
/>
|
/>
|
||||||
</>
|
</Card>
|
||||||
)}
|
</KeyboardAwareScrollView>
|
||||||
|
</PreviousNextView>
|
||||||
<Button
|
|
||||||
disabled={
|
|
||||||
!firstName ||
|
|
||||||
(selectedStatus !== ProfileType.FAMILY_DEVICE && !lastName) ||
|
|
||||||
isLoading
|
|
||||||
}
|
|
||||||
label={isLoading ? "Adding..." : "Add group member"}
|
|
||||||
backgroundColor="#fd1775"
|
|
||||||
labelStyle={{
|
|
||||||
fontFamily: "PlusJakartaSans_500Medium",
|
|
||||||
fontSize: 15,
|
|
||||||
marginLeft: 7,
|
|
||||||
}}
|
|
||||||
style={{marginTop: 20, backgroundColor: "#fd1775"}}
|
|
||||||
iconSource={() => <NavToDosIcon width={22} color={"white"}/>}
|
|
||||||
onPress={handleCreateSubUser}
|
|
||||||
/>
|
|
||||||
</Card>
|
|
||||||
</Dialog>
|
</Dialog>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
@ -12,37 +12,57 @@ export const useGetEvents = () => {
|
|||||||
return useQuery({
|
return useQuery({
|
||||||
queryKey: ["events", user?.uid, isFamilyView],
|
queryKey: ["events", user?.uid, isFamilyView],
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
const eventsQuery = firestore()
|
const db = firestore();
|
||||||
.collection("Events")
|
|
||||||
.where("creatorId", "==", user?.uid)
|
const userId = user?.uid; // Assuming user is defined
|
||||||
.where("attendees", "array-contains", user?.uid);
|
const familyId = profileData?.familyId; // Assuming profileData is defined
|
||||||
|
let allEvents = [];
|
||||||
|
|
||||||
if (isFamilyView) {
|
if (isFamilyView) {
|
||||||
eventsQuery.where("familyID", "==", profileData?.familyId);
|
const familyQuery = db.collection("Events").where("familyID", "==", familyId);
|
||||||
|
const familySnapshot = await familyQuery.get();
|
||||||
|
const familyEvents = familySnapshot.docs.map(doc => doc.data());
|
||||||
|
|
||||||
|
allEvents = [...familyEvents];
|
||||||
|
} else {
|
||||||
|
const creatorQuery = db.collection("Events").where("creatorId", "==", userId);
|
||||||
|
const attendeeQuery = db.collection("Events").where("attendees", "array-contains", userId);
|
||||||
|
|
||||||
|
const [creatorSnapshot, attendeeSnapshot] = await Promise.all([
|
||||||
|
creatorQuery.get(),
|
||||||
|
attendeeQuery.get(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
const creatorEvents = creatorSnapshot.docs.map(doc => doc.data());
|
||||||
|
const attendeeEvents = attendeeSnapshot.docs.map(doc => doc.data());
|
||||||
|
|
||||||
|
allEvents = [...creatorEvents, ...attendeeEvents];
|
||||||
}
|
}
|
||||||
|
|
||||||
const snapshot = await eventsQuery.get();
|
allEvents = allEvents.filter((event, index, self) =>
|
||||||
|
index === self.findIndex(e => e.id === event.id)
|
||||||
|
);
|
||||||
|
|
||||||
return await Promise.all(snapshot.docs.map(async (doc) => {
|
return await Promise.all(
|
||||||
const data = doc.data();
|
allEvents.map(async (event) => {
|
||||||
|
const profileSnapshot = await db
|
||||||
|
.collection("Profiles")
|
||||||
|
.doc(event.creatorId)
|
||||||
|
.get();
|
||||||
|
|
||||||
const profileSnapshot = await firestore()
|
const profileData = profileSnapshot.data();
|
||||||
.collection("Profiles")
|
const eventColor = profileData?.eventColor || colorMap.pink; // Default color if not found
|
||||||
.doc(data.creatorId)
|
|
||||||
.get();
|
|
||||||
|
|
||||||
const profileData = profileSnapshot.data();
|
return {
|
||||||
const eventColor: string = profileData?.eventColor || colorMap.pink // Default color if not found
|
id: event.id,
|
||||||
|
title: event.title,
|
||||||
return {
|
start: new Date(event.startDate.seconds * 1000),
|
||||||
id: doc.id,
|
end: new Date(event.endDate.seconds * 1000),
|
||||||
title: data.title,
|
hideHours: event.allDay,
|
||||||
start: new Date(data.startDate.seconds * 1000),
|
eventColor: eventColor,
|
||||||
end: new Date(data.endDate.seconds * 1000),
|
};
|
||||||
hideHours: data.allDay,
|
})
|
||||||
eventColor: eventColor,
|
);
|
||||||
};
|
|
||||||
}));
|
|
||||||
},
|
},
|
||||||
staleTime: Infinity,
|
staleTime: Infinity,
|
||||||
cacheTime: Infinity
|
cacheTime: Infinity
|
||||||
|
@ -14,6 +14,7 @@ install! 'cocoapods',
|
|||||||
prepare_react_native_project!
|
prepare_react_native_project!
|
||||||
|
|
||||||
target 'cally' do
|
target 'cally' do
|
||||||
|
pod 'IQKeyboardManagerSwift', :git => 'https://github.com/douglasjunior/IQKeyboardManager.git', :branch => 'react-native-keyboard-manager'
|
||||||
use_expo_modules!
|
use_expo_modules!
|
||||||
config = use_native_modules!
|
config = use_native_modules!
|
||||||
|
|
||||||
|
@ -1495,6 +1495,7 @@ PODS:
|
|||||||
- hermes-engine (0.74.3):
|
- hermes-engine (0.74.3):
|
||||||
- hermes-engine/Pre-built (= 0.74.3)
|
- hermes-engine/Pre-built (= 0.74.3)
|
||||||
- hermes-engine/Pre-built (0.74.3)
|
- hermes-engine/Pre-built (0.74.3)
|
||||||
|
- IQKeyboardManagerSwift (6.5.16)
|
||||||
- leveldb-library (1.22.5)
|
- leveldb-library (1.22.5)
|
||||||
- nanopb (2.30909.1):
|
- nanopb (2.30909.1):
|
||||||
- nanopb/decode (= 2.30909.1)
|
- nanopb/decode (= 2.30909.1)
|
||||||
@ -2688,6 +2689,10 @@ PODS:
|
|||||||
- React-logger (= 0.74.3)
|
- React-logger (= 0.74.3)
|
||||||
- React-perflogger (= 0.74.3)
|
- React-perflogger (= 0.74.3)
|
||||||
- React-utils (= 0.74.3)
|
- React-utils (= 0.74.3)
|
||||||
|
- ReactNativeKeyboardManager (6.5.16-0):
|
||||||
|
- IQKeyboardManagerSwift (= 6.5.16)
|
||||||
|
- React-Core
|
||||||
|
- React-RCTText
|
||||||
- ReactNativeUiLib (4.2.0):
|
- ReactNativeUiLib (4.2.0):
|
||||||
- React
|
- React
|
||||||
- RecaptchaInterop (100.0.0)
|
- RecaptchaInterop (100.0.0)
|
||||||
@ -2831,6 +2836,7 @@ DEPENDENCIES:
|
|||||||
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
|
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
|
||||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||||
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
|
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
|
||||||
|
- IQKeyboardManagerSwift (from `https://github.com/douglasjunior/IQKeyboardManager.git`, branch `react-native-keyboard-manager`)
|
||||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||||
- RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
- RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||||
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
|
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
|
||||||
@ -2883,6 +2889,7 @@ DEPENDENCIES:
|
|||||||
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
|
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
|
||||||
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
|
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
|
||||||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
||||||
|
- ReactNativeKeyboardManager (from `../node_modules/react-native-keyboard-manager`)
|
||||||
- ReactNativeUiLib (from `../node_modules/react-native-ui-lib`)
|
- ReactNativeUiLib (from `../node_modules/react-native-ui-lib`)
|
||||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||||
- "RNFBApp (from `../node_modules/@react-native-firebase/app`)"
|
- "RNFBApp (from `../node_modules/@react-native-firebase/app`)"
|
||||||
@ -3012,6 +3019,9 @@ EXTERNAL SOURCES:
|
|||||||
hermes-engine:
|
hermes-engine:
|
||||||
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
|
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
|
||||||
:tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85
|
:tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85
|
||||||
|
IQKeyboardManagerSwift:
|
||||||
|
:branch: react-native-keyboard-manager
|
||||||
|
:git: https://github.com/douglasjunior/IQKeyboardManager.git
|
||||||
RCT-Folly:
|
RCT-Folly:
|
||||||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||||
RCTDeprecation:
|
RCTDeprecation:
|
||||||
@ -3112,6 +3122,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: "../node_modules/react-native/ReactCommon/react/utils"
|
:path: "../node_modules/react-native/ReactCommon/react/utils"
|
||||||
ReactCommon:
|
ReactCommon:
|
||||||
:path: "../node_modules/react-native/ReactCommon"
|
:path: "../node_modules/react-native/ReactCommon"
|
||||||
|
ReactNativeKeyboardManager:
|
||||||
|
:path: "../node_modules/react-native-keyboard-manager"
|
||||||
ReactNativeUiLib:
|
ReactNativeUiLib:
|
||||||
:path: "../node_modules/react-native-ui-lib"
|
:path: "../node_modules/react-native-ui-lib"
|
||||||
RNDateTimePicker:
|
RNDateTimePicker:
|
||||||
@ -3137,6 +3149,11 @@ EXTERNAL SOURCES:
|
|||||||
Yoga:
|
Yoga:
|
||||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||||
|
|
||||||
|
CHECKOUT OPTIONS:
|
||||||
|
IQKeyboardManagerSwift:
|
||||||
|
:commit: 718cbed77cdd5ecd8b779afe543ba5b2df45b40a
|
||||||
|
:git: https://github.com/douglasjunior/IQKeyboardManager.git
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
abseil: d121da9ef7e2ff4cab7666e76c5a3e0915ae08c3
|
abseil: d121da9ef7e2ff4cab7666e76c5a3e0915ae08c3
|
||||||
AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
|
AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
|
||||||
@ -3201,6 +3218,7 @@ SPEC CHECKSUMS:
|
|||||||
gRPC-Core: eee4be35df218649fe66d721a05a7f27a28f069b
|
gRPC-Core: eee4be35df218649fe66d721a05a7f27a28f069b
|
||||||
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||||
hermes-engine: 1f547997900dd0752dc0cc0ae6dd16173c49e09b
|
hermes-engine: 1f547997900dd0752dc0cc0ae6dd16173c49e09b
|
||||||
|
IQKeyboardManagerSwift: 90ba81812fbbd6694924a95a271fa3affdf04a14
|
||||||
leveldb-library: e8eadf9008a61f9e1dde3978c086d2b6d9b9dc28
|
leveldb-library: e8eadf9008a61f9e1dde3978c086d2b6d9b9dc28
|
||||||
nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
|
nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
|
||||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
@ -3256,6 +3274,7 @@ SPEC CHECKSUMS:
|
|||||||
React-runtimescheduler: e4ad653e1d2f5ff40ba047446cacde009694f0ed
|
React-runtimescheduler: e4ad653e1d2f5ff40ba047446cacde009694f0ed
|
||||||
React-utils: 6f7ac39d9a0de447d4334bb25d144a28c0c5d8c9
|
React-utils: 6f7ac39d9a0de447d4334bb25d144a28c0c5d8c9
|
||||||
ReactCommon: 4a09c7d8a06e93c1e2e988a3b9f3db3d2449f2fc
|
ReactCommon: 4a09c7d8a06e93c1e2e988a3b9f3db3d2449f2fc
|
||||||
|
ReactNativeKeyboardManager: 704d89bde3cb1e0f432bc273a44eec96eab9d90f
|
||||||
ReactNativeUiLib: deb877cd9b36cf5cad3c72b226bb330060681351
|
ReactNativeUiLib: deb877cd9b36cf5cad3c72b226bb330060681351
|
||||||
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
|
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
|
||||||
RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14
|
RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14
|
||||||
@ -3273,6 +3292,6 @@ SPEC CHECKSUMS:
|
|||||||
Yoga: bd92064a0d558be92786820514d74fc4dddd1233
|
Yoga: bd92064a0d558be92786820514d74fc4dddd1233
|
||||||
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5
|
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5
|
||||||
|
|
||||||
PODFILE CHECKSUM: 50f618790da7cbbfd5c5e988b7f9370bd45d34a6
|
PODFILE CHECKSUM: ae388457578eb44dbbdba1451a584b59f3bc21dd
|
||||||
|
|
||||||
COCOAPODS: 1.15.2
|
COCOAPODS: 1.15.2
|
||||||
|
7
ios/ReactNativeKeyboardManager.swift
Normal file
7
ios/ReactNativeKeyboardManager.swift
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
//
|
||||||
|
// ReactNativeKeyboardManager.swift
|
||||||
|
// cally
|
||||||
|
//
|
||||||
|
// Created by Milan Paunovic on 20.10.24..
|
||||||
|
//
|
||||||
|
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
103D20271F044483964A389F /* cally-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "cally-Bridging-Header.h"; path = "cally/cally-Bridging-Header.h"; sourceTree = "<group>"; };
|
103D20271F044483964A389F /* cally-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "cally-Bridging-Header.h"; path = "cally/cally-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
13B07F961A680F5B00A75B9A /* cally.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = cally.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
13B07F961A680F5B00A75B9A /* Cally.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cally.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = cally/AppDelegate.h; sourceTree = "<group>"; };
|
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = cally/AppDelegate.h; sourceTree = "<group>"; };
|
||||||
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = cally/AppDelegate.mm; sourceTree = "<group>"; };
|
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = cally/AppDelegate.mm; sourceTree = "<group>"; };
|
||||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = cally/Images.xcassets; sourceTree = "<group>"; };
|
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = cally/Images.xcassets; sourceTree = "<group>"; };
|
||||||
@ -35,6 +35,7 @@
|
|||||||
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
|
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
|
||||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||||
F20F68FCCB33056D70B2396B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = cally/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
F20F68FCCB33056D70B2396B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = cally/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
||||||
|
F3A90F152CC474F700DDA353 /* ReactNativeKeyboardManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactNativeKeyboardManager.swift; sourceTree = "<group>"; };
|
||||||
F56C9EADA6FA4AEAA71245EB /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "cally/GoogleService-Info.plist"; sourceTree = "<group>"; };
|
F56C9EADA6FA4AEAA71245EB /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "cally/GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-cally/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-cally/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
@ -88,6 +89,7 @@
|
|||||||
83CBB9F61A601CBA00E9B192 = {
|
83CBB9F61A601CBA00E9B192 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F3A90F152CC474F700DDA353 /* ReactNativeKeyboardManager.swift */,
|
||||||
13B07FAE1A68108700A75B9A /* cally */,
|
13B07FAE1A68108700A75B9A /* cally */,
|
||||||
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
||||||
83CBBA001A601CBA00E9B192 /* Products */,
|
83CBBA001A601CBA00E9B192 /* Products */,
|
||||||
@ -103,7 +105,7 @@
|
|||||||
83CBBA001A601CBA00E9B192 /* Products */ = {
|
83CBBA001A601CBA00E9B192 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
13B07F961A680F5B00A75B9A /* cally.app */,
|
13B07F961A680F5B00A75B9A /* Cally.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -166,7 +168,7 @@
|
|||||||
);
|
);
|
||||||
name = cally;
|
name = cally;
|
||||||
productName = cally;
|
productName = cally;
|
||||||
productReference = 13B07F961A680F5B00A75B9A /* cally.app */;
|
productReference = 13B07F961A680F5B00A75B9A /* Cally.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
@ -317,6 +319,7 @@
|
|||||||
"${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_Privacy.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_Privacy.bundle",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle",
|
||||||
|
"${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.bundle",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift/Promises_Privacy.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift/Promises_Privacy.bundle",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/ReachabilitySwift.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/ReachabilitySwift.bundle",
|
||||||
@ -353,6 +356,7 @@
|
|||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GTMSessionFetcher_Core_Privacy.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GTMSessionFetcher_Core_Privacy.bundle",
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleDataTransport_Privacy.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleDataTransport_Privacy.bundle",
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/IQKeyboardManagerSwift.bundle",
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle",
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Promises_Privacy.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Promises_Privacy.bundle",
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReachabilitySwift.bundle",
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReachabilitySwift.bundle",
|
||||||
@ -448,7 +452,7 @@
|
|||||||
);
|
);
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
||||||
PRODUCT_NAME = "Cally";
|
PRODUCT_NAME = Cally;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -482,7 +486,7 @@
|
|||||||
);
|
);
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
||||||
PRODUCT_NAME = "Cally";
|
PRODUCT_NAME = Cally;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||||
BuildableName = "cally.app"
|
BuildableName = "Cally.app"
|
||||||
BlueprintName = "cally"
|
BlueprintName = "cally"
|
||||||
ReferencedContainer = "container:cally.xcodeproj">
|
ReferencedContainer = "container:cally.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||||
BuildableName = "cally.app"
|
BuildableName = "Cally.app"
|
||||||
BlueprintName = "cally"
|
BlueprintName = "cally"
|
||||||
ReferencedContainer = "container:cally.xcodeproj">
|
ReferencedContainer = "container:cally.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -72,7 +72,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||||
BuildableName = "cally.app"
|
BuildableName = "Cally.app"
|
||||||
BlueprintName = "cally"
|
BlueprintName = "cally"
|
||||||
ReferencedContainer = "container:cally.xcodeproj">
|
ReferencedContainer = "container:cally.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
@ -109,6 +109,7 @@
|
|||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>SplashScreen</string>
|
<string>SplashScreen</string>
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
"react-native-calendars": "^1.1306.0",
|
"react-native-calendars": "^1.1306.0",
|
||||||
"react-native-gesture-handler": "~2.16.1",
|
"react-native-gesture-handler": "~2.16.1",
|
||||||
"react-native-gifted-charts": "^1.4.41",
|
"react-native-gifted-charts": "^1.4.41",
|
||||||
|
"react-native-keyboard-manager": "^6.5.16-0",
|
||||||
"react-native-linear-gradient": "^2.8.3",
|
"react-native-linear-gradient": "^2.8.3",
|
||||||
"react-native-onboarding-swiper": "^1.3.0",
|
"react-native-onboarding-swiper": "^1.3.0",
|
||||||
"react-native-qrcode-svg": "^6.3.2",
|
"react-native-qrcode-svg": "^6.3.2",
|
||||||
|
42
plugins/withPodfile.js
Normal file
42
plugins/withPodfile.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
const { withDangerousMod, withPlugins } = require('@expo/config-plugins');
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
async function readFile(path) {
|
||||||
|
return fs.promises.readFile(path, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
async function saveFile(path, content) {
|
||||||
|
return fs.promises.writeFile(path, content, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = (config) =>
|
||||||
|
withPlugins(config, [
|
||||||
|
(config) => {
|
||||||
|
return withDangerousMod(config, [
|
||||||
|
'iOS',
|
||||||
|
async (config) => {
|
||||||
|
const file = path.join(config.modRequest.platformProjectRoot, 'Podfile');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You need to remove the line before adding it.
|
||||||
|
* If you don't do this and you run `expo prebuild` in a dirt project
|
||||||
|
* your file will have the same line added twice
|
||||||
|
*/
|
||||||
|
const contents = (await readFile(file)).replace(
|
||||||
|
/pod 'IQKeyboardManagerSwift', :git => 'https:\/\/github.com\/douglasjunior\/IQKeyboardManager.git', :branch => 'react-native-keyboard-manager'\n\n/g,
|
||||||
|
'',
|
||||||
|
);
|
||||||
|
/*
|
||||||
|
* Now re-adds the content
|
||||||
|
*/
|
||||||
|
await saveFile(
|
||||||
|
file,
|
||||||
|
`pod 'IQKeyboardManagerSwift', :git => 'https://github.com/douglasjunior/IQKeyboardManager.git', :branch => 'react-native-keyboard-manager'\n\n${contents}`,
|
||||||
|
);
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
},
|
||||||
|
]);
|
@ -8872,6 +8872,11 @@ react-native-helmet-async@2.0.4:
|
|||||||
react-fast-compare "^3.2.2"
|
react-fast-compare "^3.2.2"
|
||||||
shallowequal "^1.1.0"
|
shallowequal "^1.1.0"
|
||||||
|
|
||||||
|
react-native-keyboard-manager@^6.5.16-0:
|
||||||
|
version "6.5.16-0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-keyboard-manager/-/react-native-keyboard-manager-6.5.16-0.tgz#ead536f01ade296f483cbf3ecaf3026cff702c9c"
|
||||||
|
integrity sha512-vdNp7PZ0hfxeJXqi7RaHTriQgZqIFKaG3Kx8e4Bdtkne8y9wQ1gGsiAfee+dmmo2kWZaDSbBB7CCKJwRIy5zGg==
|
||||||
|
|
||||||
react-native-linear-gradient@^2.8.3:
|
react-native-linear-gradient@^2.8.3:
|
||||||
version "2.8.3"
|
version "2.8.3"
|
||||||
resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.8.3.tgz"
|
resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.8.3.tgz"
|
||||||
|
Reference in New Issue
Block a user