mirror of
https://github.com/urosran/cally.git
synced 2025-07-09 22:57:16 +00:00
Various updates....
This commit is contained in:
5
app.json
5
app.json
@ -16,7 +16,7 @@
|
||||
"supportsTablet": true,
|
||||
"bundleIdentifier": "com.cally.app",
|
||||
"googleServicesFile": "./ios/GoogleService-Info.plist",
|
||||
"buildNumber": "23",
|
||||
"buildNumber": "30",
|
||||
"usesAppleSignIn": true
|
||||
},
|
||||
"android": {
|
||||
@ -74,7 +74,8 @@
|
||||
"expo-apple-authentication"
|
||||
],
|
||||
"expo-font",
|
||||
"expo-localization"
|
||||
"expo-localization",
|
||||
"./plugins/withPodfile"
|
||||
],
|
||||
"experiments": {
|
||||
"typedRoutes": true
|
||||
|
@ -52,11 +52,19 @@ import "react-native-reanimated";
|
||||
import {AuthContextProvider} from "@/contexts/AuthContext";
|
||||
import {QueryClient, QueryClientProvider} from "react-query";
|
||||
import {TextProps, ThemeManager, Toast, Typography,} from "react-native-ui-lib";
|
||||
import {Platform} from 'react-native';
|
||||
import KeyboardManager from 'react-native-keyboard-manager';
|
||||
|
||||
SplashScreen.preventAutoHideAsync();
|
||||
|
||||
const queryClient = new QueryClient();
|
||||
|
||||
|
||||
if (Platform.OS === 'ios') {
|
||||
KeyboardManager.setEnable(true);
|
||||
KeyboardManager.setToolbarPreviousNextButtonEnable(true);
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
// functions().useEmulator("localhost", 5001);
|
||||
// firestore().useEmulator("localhost", 5471);
|
||||
|
@ -5,6 +5,7 @@ import {
|
||||
Colors,
|
||||
Dialog,
|
||||
FloatingButton,
|
||||
KeyboardAwareScrollView,
|
||||
PanningProvider,
|
||||
Picker,
|
||||
Text,
|
||||
@ -27,6 +28,7 @@ import CircledXIcon from "@/assets/svgs/CircledXIcon";
|
||||
import ProfileIcon from "@/assets/svgs/ProfileIcon";
|
||||
import NavToDosIcon from "@/assets/svgs/NavToDosIcon";
|
||||
import Ionicons from "@expo/vector-icons/Ionicons";
|
||||
import {PreviousNextView} from "react-native-keyboard-manager";
|
||||
|
||||
const MyGroup = () => {
|
||||
const [showAddUserDialog, setShowAddUserDialog] = useState(false);
|
||||
@ -299,6 +301,8 @@ const MyGroup = () => {
|
||||
visible={showNewUserInfoDialog}
|
||||
onDismiss={() => setShowNewUserInfoDialog(false)}
|
||||
>
|
||||
<PreviousNextView>
|
||||
<KeyboardAwareScrollView>
|
||||
<Card padding-25 style={styles.dialogCard}>
|
||||
<View row spread>
|
||||
<Text style={{fontFamily: "Manrope_500Medium", fontSize: 16}}>
|
||||
@ -341,8 +345,15 @@ const MyGroup = () => {
|
||||
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 style={{
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
height: "100%",
|
||||
marginTop: -38,
|
||||
paddingRight: 15
|
||||
}}>
|
||||
<Ionicons name={"chevron-down"} style={{alignSelf: "center"}} size={20}
|
||||
color={"#000000"}/>
|
||||
</View>
|
||||
}
|
||||
>
|
||||
@ -375,6 +386,7 @@ const MyGroup = () => {
|
||||
lNameRef.current?.focus()
|
||||
}}
|
||||
blurOnSubmit={false}
|
||||
returnKeyType="next"
|
||||
/>
|
||||
|
||||
{selectedStatus !== ProfileType.FAMILY_DEVICE && (
|
||||
@ -391,6 +403,8 @@ const MyGroup = () => {
|
||||
emailRef.current?.focus()
|
||||
}}
|
||||
blurOnSubmit={false}
|
||||
returnKeyType="next"
|
||||
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
@ -407,6 +421,7 @@ const MyGroup = () => {
|
||||
keyboardType="email-address"
|
||||
autoCapitalize="none"
|
||||
style={styles.inputField}
|
||||
returnKeyType="done"
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
@ -429,6 +444,8 @@ const MyGroup = () => {
|
||||
onPress={handleCreateSubUser}
|
||||
/>
|
||||
</Card>
|
||||
</KeyboardAwareScrollView>
|
||||
</PreviousNextView>
|
||||
</Dialog>
|
||||
</View>
|
||||
);
|
||||
|
@ -12,37 +12,57 @@ export const useGetEvents = () => {
|
||||
return useQuery({
|
||||
queryKey: ["events", user?.uid, isFamilyView],
|
||||
queryFn: async () => {
|
||||
const eventsQuery = firestore()
|
||||
.collection("Events")
|
||||
.where("creatorId", "==", user?.uid)
|
||||
.where("attendees", "array-contains", user?.uid);
|
||||
const db = firestore();
|
||||
|
||||
const userId = user?.uid; // Assuming user is defined
|
||||
const familyId = profileData?.familyId; // Assuming profileData is defined
|
||||
let allEvents = [];
|
||||
|
||||
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) => {
|
||||
const data = doc.data();
|
||||
|
||||
const profileSnapshot = await firestore()
|
||||
return await Promise.all(
|
||||
allEvents.map(async (event) => {
|
||||
const profileSnapshot = await db
|
||||
.collection("Profiles")
|
||||
.doc(data.creatorId)
|
||||
.doc(event.creatorId)
|
||||
.get();
|
||||
|
||||
const profileData = profileSnapshot.data();
|
||||
const eventColor: string = profileData?.eventColor || colorMap.pink // Default color if not found
|
||||
const eventColor = profileData?.eventColor || colorMap.pink; // Default color if not found
|
||||
|
||||
return {
|
||||
id: doc.id,
|
||||
title: data.title,
|
||||
start: new Date(data.startDate.seconds * 1000),
|
||||
end: new Date(data.endDate.seconds * 1000),
|
||||
hideHours: data.allDay,
|
||||
id: event.id,
|
||||
title: event.title,
|
||||
start: new Date(event.startDate.seconds * 1000),
|
||||
end: new Date(event.endDate.seconds * 1000),
|
||||
hideHours: event.allDay,
|
||||
eventColor: eventColor,
|
||||
};
|
||||
}));
|
||||
})
|
||||
);
|
||||
},
|
||||
staleTime: Infinity,
|
||||
cacheTime: Infinity
|
||||
|
@ -14,6 +14,7 @@ install! 'cocoapods',
|
||||
prepare_react_native_project!
|
||||
|
||||
target 'cally' do
|
||||
pod 'IQKeyboardManagerSwift', :git => 'https://github.com/douglasjunior/IQKeyboardManager.git', :branch => 'react-native-keyboard-manager'
|
||||
use_expo_modules!
|
||||
config = use_native_modules!
|
||||
|
||||
|
@ -1495,6 +1495,7 @@ PODS:
|
||||
- hermes-engine (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)
|
||||
- nanopb (2.30909.1):
|
||||
- nanopb/decode (= 2.30909.1)
|
||||
@ -2688,6 +2689,10 @@ PODS:
|
||||
- React-logger (= 0.74.3)
|
||||
- React-perflogger (= 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):
|
||||
- React
|
||||
- RecaptchaInterop (100.0.0)
|
||||
@ -2831,6 +2836,7 @@ DEPENDENCIES:
|
||||
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.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`)
|
||||
- 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/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- 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-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
|
||||
- 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`)
|
||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||
- "RNFBApp (from `../node_modules/@react-native-firebase/app`)"
|
||||
@ -3012,6 +3019,9 @@ EXTERNAL SOURCES:
|
||||
hermes-engine:
|
||||
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
|
||||
:tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85
|
||||
IQKeyboardManagerSwift:
|
||||
:branch: react-native-keyboard-manager
|
||||
:git: https://github.com/douglasjunior/IQKeyboardManager.git
|
||||
RCT-Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
RCTDeprecation:
|
||||
@ -3112,6 +3122,8 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/utils"
|
||||
ReactCommon:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
ReactNativeKeyboardManager:
|
||||
:path: "../node_modules/react-native-keyboard-manager"
|
||||
ReactNativeUiLib:
|
||||
:path: "../node_modules/react-native-ui-lib"
|
||||
RNDateTimePicker:
|
||||
@ -3137,6 +3149,11 @@ EXTERNAL SOURCES:
|
||||
Yoga:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
CHECKOUT OPTIONS:
|
||||
IQKeyboardManagerSwift:
|
||||
:commit: 718cbed77cdd5ecd8b779afe543ba5b2df45b40a
|
||||
:git: https://github.com/douglasjunior/IQKeyboardManager.git
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
abseil: d121da9ef7e2ff4cab7666e76c5a3e0915ae08c3
|
||||
AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
|
||||
@ -3201,6 +3218,7 @@ SPEC CHECKSUMS:
|
||||
gRPC-Core: eee4be35df218649fe66d721a05a7f27a28f069b
|
||||
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||
hermes-engine: 1f547997900dd0752dc0cc0ae6dd16173c49e09b
|
||||
IQKeyboardManagerSwift: 90ba81812fbbd6694924a95a271fa3affdf04a14
|
||||
leveldb-library: e8eadf9008a61f9e1dde3978c086d2b6d9b9dc28
|
||||
nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
|
||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||
@ -3256,6 +3274,7 @@ SPEC CHECKSUMS:
|
||||
React-runtimescheduler: e4ad653e1d2f5ff40ba047446cacde009694f0ed
|
||||
React-utils: 6f7ac39d9a0de447d4334bb25d144a28c0c5d8c9
|
||||
ReactCommon: 4a09c7d8a06e93c1e2e988a3b9f3db3d2449f2fc
|
||||
ReactNativeKeyboardManager: 704d89bde3cb1e0f432bc273a44eec96eab9d90f
|
||||
ReactNativeUiLib: deb877cd9b36cf5cad3c72b226bb330060681351
|
||||
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
|
||||
RNDateTimePicker: 40ffda97d071a98a10fdca4fa97e3977102ccd14
|
||||
@ -3273,6 +3292,6 @@ SPEC CHECKSUMS:
|
||||
Yoga: bd92064a0d558be92786820514d74fc4dddd1233
|
||||
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5
|
||||
|
||||
PODFILE CHECKSUM: 50f618790da7cbbfd5c5e988b7f9370bd45d34a6
|
||||
PODFILE CHECKSUM: ae388457578eb44dbbdba1451a584b59f3bc21dd
|
||||
|
||||
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 */
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -35,6 +35,7 @@
|
||||
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; };
|
||||
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>"; };
|
||||
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 */
|
||||
@ -88,6 +89,7 @@
|
||||
83CBB9F61A601CBA00E9B192 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F3A90F152CC474F700DDA353 /* ReactNativeKeyboardManager.swift */,
|
||||
13B07FAE1A68108700A75B9A /* cally */,
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
@ -103,7 +105,7 @@
|
||||
83CBBA001A601CBA00E9B192 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
13B07F961A680F5B00A75B9A /* cally.app */,
|
||||
13B07F961A680F5B00A75B9A /* Cally.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@ -166,7 +168,7 @@
|
||||
);
|
||||
name = cally;
|
||||
productName = cally;
|
||||
productReference = 13B07F961A680F5B00A75B9A /* cally.app */;
|
||||
productReference = 13B07F961A680F5B00A75B9A /* Cally.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
@ -317,6 +319,7 @@
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_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}/PromisesSwift/Promises_Privacy.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}/GoogleDataTransport_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}/Promises_Privacy.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReachabilitySwift.bundle",
|
||||
@ -448,7 +452,7 @@
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
||||
PRODUCT_NAME = "Cally";
|
||||
PRODUCT_NAME = Cally;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@ -482,7 +486,7 @@
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.cally.app;
|
||||
PRODUCT_NAME = "Cally";
|
||||
PRODUCT_NAME = Cally;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "cally/cally-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
|
@ -15,7 +15,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "cally.app"
|
||||
BuildableName = "Cally.app"
|
||||
BlueprintName = "cally"
|
||||
ReferencedContainer = "container:cally.xcodeproj">
|
||||
</BuildableReference>
|
||||
@ -55,7 +55,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "cally.app"
|
||||
BuildableName = "Cally.app"
|
||||
BlueprintName = "cally"
|
||||
ReferencedContainer = "container:cally.xcodeproj">
|
||||
</BuildableReference>
|
||||
@ -72,7 +72,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "cally.app"
|
||||
BuildableName = "Cally.app"
|
||||
BlueprintName = "cally"
|
||||
ReferencedContainer = "container:cally.xcodeproj">
|
||||
</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>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>SplashScreen</string>
|
||||
|
@ -76,6 +76,7 @@
|
||||
"react-native-calendars": "^1.1306.0",
|
||||
"react-native-gesture-handler": "~2.16.1",
|
||||
"react-native-gifted-charts": "^1.4.41",
|
||||
"react-native-keyboard-manager": "^6.5.16-0",
|
||||
"react-native-linear-gradient": "^2.8.3",
|
||||
"react-native-onboarding-swiper": "^1.3.0",
|
||||
"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"
|
||||
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:
|
||||
version "2.8.3"
|
||||
resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.8.3.tgz"
|
||||
|
Reference in New Issue
Block a user