diff --git a/ios/arcFrontend.xcodeproj/project.pbxproj b/ios/arcFrontend.xcodeproj/project.pbxproj index 88a102a..2b85fed 100644 --- a/ios/arcFrontend.xcodeproj/project.pbxproj +++ b/ios/arcFrontend.xcodeproj/project.pbxproj @@ -5,7 +5,6 @@ }; objectVersion = 46; objects = { - /* Begin PBXBuildFile section */ 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; @@ -15,6 +14,7 @@ 00E356F31AD99517003FC87E /* arcFrontendTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* arcFrontendTests.m */; }; 08E77D117C0846999628E922 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E5540451ABEC405787FC05E9 /* SimpleLineIcons.ttf */; }; 09FC8400524745CEA794E04C /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 88156CE008614B0598EF9ABC /* Ionicons.ttf */; }; + 10FE87D95B0F44B490544256 /* OpenSans-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D82B5E67956A45D1B7B5EA8D /* OpenSans-SemiBold.otf */; }; 11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 12C1D701F83E4619B1C15E66 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D1228801AE2E4447B80E8BFF /* Feather.ttf */; }; 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; @@ -30,7 +30,6 @@ 1B5143242CBC4E3BA43EC626 /* SourceSansPro-LightIt.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3942D50C10D443398B88BA51 /* SourceSansPro-LightIt.otf */; }; 1DA82EB76495465E9A0D2737 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 75123BFF0C7B4844AB20987B /* FontAwesome.ttf */; }; 1E924AC0B4304BAE8ACFCE3F /* SourceSansPro-BlackIt.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8C85E2DB8D83426E9C44A89C /* SourceSansPro-BlackIt.otf */; }; - 23157E0E27C7474C8ACD630D /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 81E53C7433DD41D0832D02F8 /* libRNSVG.a */; }; 25F359AFAFFF40999052EA8B /* SourceSansPro-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 182BC8D8A72D4C96AFDCD6ED /* SourceSansPro-Semibold.otf */; }; 2C17DCE1D42C43859426C10E /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B88EC2631A1D4DACAA44D15B /* MaterialIcons.ttf */; }; 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; @@ -51,28 +50,24 @@ 43A4D2F1931640F890BAE54B /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B3ADAAAF82ED474E80B98002 /* FontAwesome5_Brands.ttf */; }; 4421960A330148D48CF87500 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B31C88754405452F8C9A690D /* FontAwesome5_Solid.ttf */; }; 4C3054DE4BEB42B2B9A15CF1 /* SourceSansPro-Black.otf in Resources */ = {isa = PBXBuildFile; fileRef = 24B825FE54F84CD9A581FECA /* SourceSansPro-Black.otf */; }; - 54A1D7F53D204197B24333EC /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4511B77507324F0FB3EAFA9F /* libRNVectorIcons.a */; }; - 5A19FE4811AE4DB3AEC7DE5B /* libAirMaps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E3D8AFCBECEB4B109B705603 /* libAirMaps.a */; }; + 4D23EB0EE2064C95854AF33A /* Avenir-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 38564DF22DC746FAA5E8ED42 /* Avenir-Medium.ttf */; }; 670D0D9FA12F4A9495615F3E /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B3B65AC8B2BD4F16A1FA9E7B /* MaterialCommunityIcons.ttf */; }; + 6E0413F4DA44489FA6F755A4 /* AvenirLTStd-Book.otf in Resources */ = {isa = PBXBuildFile; fileRef = 72EA133B6FC94075BBF831B9 /* AvenirLTStd-Book.otf */; }; 71B410A5204A4EA88FABD28E /* SourceSansPro-It.otf in Resources */ = {isa = PBXBuildFile; fileRef = 93FBC2C38E2F4668A5574A1A /* SourceSansPro-It.otf */; }; 738B3F865BAD401C956B12EB /* SourceSansPro-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 13DC4CBB25A1417C9DB7E9B3 /* SourceSansPro-Bold.otf */; }; 76982C35CDA64E6E898F2BA5 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1E2CBE700083448C83F58BB8 /* EvilIcons.ttf */; }; + 777E467AFE4F4DE9AE05D5BF /* AvenirLTStd-Roman.otf in Resources */ = {isa = PBXBuildFile; fileRef = 1017596B5B8F4334BB4B600E /* AvenirLTStd-Roman.otf */; }; 808CCD1A498047F292449C77 /* SourceSansPro-ExtraLightIt.otf in Resources */ = {isa = PBXBuildFile; fileRef = 873320B10F114FA69F7E3518 /* SourceSansPro-ExtraLightIt.otf */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; + 899ECC7CBC9045EEBDEFEAD3 /* OpenSans-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 16A0FFB9CCB8454D897E4962 /* OpenSans-Regular.otf */; }; 8E1975A9B9EC4212A016F17B /* SourceSansPro-SemiboldIt.otf in Resources */ = {isa = PBXBuildFile; fileRef = CF5C52BA451A4EA3AD763ACF /* SourceSansPro-SemiboldIt.otf */; }; 8FF3DFFE286547CD9F9DC149 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 12EF19AB89F945DFABA2AF11 /* Zocial.ttf */; }; 94C4B6B72B72492FA540B15F /* SourceSansPro-ExtraLight.otf in Resources */ = {isa = PBXBuildFile; fileRef = CC4CFB6A3F6F405595C7A7ED /* SourceSansPro-ExtraLight.otf */; }; 96C3C10D1C0F41E99A8B42E3 /* SourceSansPro-BoldIt.otf in Resources */ = {isa = PBXBuildFile; fileRef = E42C800445B84A5685F2E21C /* SourceSansPro-BoldIt.otf */; }; + A9F4A1E3B7A64816A1B40E15 /* Roboto-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34F8E402531942F0A305B8BA /* Roboto-Regular.ttf */; }; ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; - B3A8B4723CD646A2BD9355D9 /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 34BBAEE2743C4C93805FBC7D /* libRNSVG-tvOS.a */; }; - 899ECC7CBC9045EEBDEFEAD3 /* OpenSans-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 16A0FFB9CCB8454D897E4962 /* OpenSans-Regular.otf */; }; - 10FE87D95B0F44B490544256 /* OpenSans-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D82B5E67956A45D1B7B5EA8D /* OpenSans-SemiBold.otf */; }; E53782C452514BB7AEAFBBEC /* AEH.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6E303FC94B2A4B02A7E724FE /* AEH.ttf */; }; - 4D23EB0EE2064C95854AF33A /* Avenir-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 38564DF22DC746FAA5E8ED42 /* Avenir-Medium.ttf */; }; - 6E0413F4DA44489FA6F755A4 /* AvenirLTStd-Book.otf in Resources */ = {isa = PBXBuildFile; fileRef = 72EA133B6FC94075BBF831B9 /* AvenirLTStd-Book.otf */; }; F2D13E1B16AA4B3EB3ED40E9 /* AvenirLTStd-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = B4CDCF85AECF43BEAE869526 /* AvenirLTStd-Light.otf */; }; - 777E467AFE4F4DE9AE05D5BF /* AvenirLTStd-Roman.otf in Resources */ = {isa = PBXBuildFile; fileRef = 1017596B5B8F4334BB4B600E /* AvenirLTStd-Roman.otf */; }; - A9F4A1E3B7A64816A1B40E15 /* Roboto-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34F8E402531942F0A305B8BA /* Roboto-Regular.ttf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -389,6 +384,7 @@ 00E356EE1AD99517003FC87E /* arcFrontendTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = arcFrontendTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* arcFrontendTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = arcFrontendTests.m; sourceTree = ""; }; + 1017596B5B8F4334BB4B600E /* AvenirLTStd-Roman.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "AvenirLTStd-Roman.otf"; path = "../assets/fonts/AvenirLTStd-Roman.otf"; sourceTree = ""; }; 12EF19AB89F945DFABA2AF11 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; @@ -401,6 +397,7 @@ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = arcFrontend/main.m; sourceTree = ""; }; 13DC4CBB25A1417C9DB7E9B3 /* SourceSansPro-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-Bold.otf"; path = "../assets/fonts/SourceSansPro-Bold.otf"; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + 16A0FFB9CCB8454D897E4962 /* OpenSans-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Regular.otf"; path = "../assets/fonts/OpenSans-Regular.otf"; sourceTree = ""; }; 182BC8D8A72D4C96AFDCD6ED /* SourceSansPro-Semibold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-Semibold.otf"; path = "../assets/fonts/SourceSansPro-Semibold.otf"; sourceTree = ""; }; 1E2CBE700083448C83F58BB8 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; 24B825FE54F84CD9A581FECA /* SourceSansPro-Black.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-Black.otf"; path = "../assets/fonts/SourceSansPro-Black.otf"; sourceTree = ""; }; @@ -410,62 +407,37 @@ 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; 32EAB097E2D1409F9A16ED05 /* AirMaps.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = AirMaps.xcodeproj; path = "../node_modules/react-native-maps/lib/ios/AirMaps.xcodeproj"; sourceTree = ""; }; 33D1E2C866DF4EEFA1DB740C /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; }; - 34BBAEE2743C4C93805FBC7D /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNSVG-tvOS.a"; sourceTree = ""; }; + 34F8E402531942F0A305B8BA /* Roboto-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-Regular.ttf"; path = "../assets/fonts/Roboto-Regular.ttf"; sourceTree = ""; }; + 38564DF22DC746FAA5E8ED42 /* Avenir-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Avenir-Medium.ttf"; path = "../assets/fonts/Avenir-Medium.ttf"; sourceTree = ""; }; 3942D50C10D443398B88BA51 /* SourceSansPro-LightIt.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-LightIt.otf"; path = "../assets/fonts/SourceSansPro-LightIt.otf"; sourceTree = ""; }; 3ACDB91CAFA54561BD68D94D /* SourceSansPro-Light.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-Light.otf"; path = "../assets/fonts/SourceSansPro-Light.otf"; sourceTree = ""; }; - 4511B77507324F0FB3EAFA9F /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; 4B51A3C5F1F74677B2CD169D /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; + 6E303FC94B2A4B02A7E724FE /* AEH.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AEH.ttf; path = ../assets/fonts/AEH.ttf; sourceTree = ""; }; + 72EA133B6FC94075BBF831B9 /* AvenirLTStd-Book.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "AvenirLTStd-Book.otf"; path = "../assets/fonts/AvenirLTStd-Book.otf"; sourceTree = ""; }; 75123BFF0C7B4844AB20987B /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; - 81E53C7433DD41D0832D02F8 /* libRNSVG.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNSVG.a; sourceTree = ""; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 873320B10F114FA69F7E3518 /* SourceSansPro-ExtraLightIt.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-ExtraLightIt.otf"; path = "../assets/fonts/SourceSansPro-ExtraLightIt.otf"; sourceTree = ""; }; 88156CE008614B0598EF9ABC /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; 8C85E2DB8D83426E9C44A89C /* SourceSansPro-BlackIt.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-BlackIt.otf"; path = "../assets/fonts/SourceSansPro-BlackIt.otf"; sourceTree = ""; }; 93FBC2C38E2F4668A5574A1A /* SourceSansPro-It.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-It.otf"; path = "../assets/fonts/SourceSansPro-It.otf"; sourceTree = ""; }; ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; - 4B51A3C5F1F74677B2CD169D /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; name = "RNVectorIcons.xcodeproj"; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 4511B77507324F0FB3EAFA9F /* libRNVectorIcons.a */ = {isa = PBXFileReference; name = "libRNVectorIcons.a"; path = "libRNVectorIcons.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - CA83AB21012243D0B55B3F8B /* Entypo.ttf */ = {isa = PBXFileReference; name = "Entypo.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 1E2CBE700083448C83F58BB8 /* EvilIcons.ttf */ = {isa = PBXFileReference; name = "EvilIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - D1228801AE2E4447B80E8BFF /* Feather.ttf */ = {isa = PBXFileReference; name = "Feather.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 75123BFF0C7B4844AB20987B /* FontAwesome.ttf */ = {isa = PBXFileReference; name = "FontAwesome.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B3ADAAAF82ED474E80B98002 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Brands.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 33D1E2C866DF4EEFA1DB740C /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Regular.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B31C88754405452F8C9A690D /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Solid.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - E48641ADBEC64FF4ABA86D19 /* Foundation.ttf */ = {isa = PBXFileReference; name = "Foundation.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 88156CE008614B0598EF9ABC /* Ionicons.ttf */ = {isa = PBXFileReference; name = "Ionicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B3B65AC8B2BD4F16A1FA9E7B /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; name = "MaterialCommunityIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B88EC2631A1D4DACAA44D15B /* MaterialIcons.ttf */ = {isa = PBXFileReference; name = "MaterialIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - E30ACD1021F54E3B8B1536A4 /* Octicons.ttf */ = {isa = PBXFileReference; name = "Octicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - E5540451ABEC405787FC05E9 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; name = "SimpleLineIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 12EF19AB89F945DFABA2AF11 /* Zocial.ttf */ = {isa = PBXFileReference; name = "Zocial.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 32EAB097E2D1409F9A16ED05 /* AirMaps.xcodeproj */ = {isa = PBXFileReference; name = "AirMaps.xcodeproj"; path = "../node_modules/react-native-maps/lib/ios/AirMaps.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - E3D8AFCBECEB4B109B705603 /* libAirMaps.a */ = {isa = PBXFileReference; name = "libAirMaps.a"; path = "libAirMaps.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 24B825FE54F84CD9A581FECA /* SourceSansPro-Black.otf */ = {isa = PBXFileReference; name = "SourceSansPro-Black.otf"; path = "../assets/fonts/SourceSansPro-Black.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 8C85E2DB8D83426E9C44A89C /* SourceSansPro-BlackIt.otf */ = {isa = PBXFileReference; name = "SourceSansPro-BlackIt.otf"; path = "../assets/fonts/SourceSansPro-BlackIt.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 13DC4CBB25A1417C9DB7E9B3 /* SourceSansPro-Bold.otf */ = {isa = PBXFileReference; name = "SourceSansPro-Bold.otf"; path = "../assets/fonts/SourceSansPro-Bold.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - E42C800445B84A5685F2E21C /* SourceSansPro-BoldIt.otf */ = {isa = PBXFileReference; name = "SourceSansPro-BoldIt.otf"; path = "../assets/fonts/SourceSansPro-BoldIt.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - CC4CFB6A3F6F405595C7A7ED /* SourceSansPro-ExtraLight.otf */ = {isa = PBXFileReference; name = "SourceSansPro-ExtraLight.otf"; path = "../assets/fonts/SourceSansPro-ExtraLight.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 873320B10F114FA69F7E3518 /* SourceSansPro-ExtraLightIt.otf */ = {isa = PBXFileReference; name = "SourceSansPro-ExtraLightIt.otf"; path = "../assets/fonts/SourceSansPro-ExtraLightIt.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 93FBC2C38E2F4668A5574A1A /* SourceSansPro-It.otf */ = {isa = PBXFileReference; name = "SourceSansPro-It.otf"; path = "../assets/fonts/SourceSansPro-It.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 3ACDB91CAFA54561BD68D94D /* SourceSansPro-Light.otf */ = {isa = PBXFileReference; name = "SourceSansPro-Light.otf"; path = "../assets/fonts/SourceSansPro-Light.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 3942D50C10D443398B88BA51 /* SourceSansPro-LightIt.otf */ = {isa = PBXFileReference; name = "SourceSansPro-LightIt.otf"; path = "../assets/fonts/SourceSansPro-LightIt.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 28688F9F22FF497B8954A91C /* SourceSansPro-Regular.otf */ = {isa = PBXFileReference; name = "SourceSansPro-Regular.otf"; path = "../assets/fonts/SourceSansPro-Regular.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 182BC8D8A72D4C96AFDCD6ED /* SourceSansPro-Semibold.otf */ = {isa = PBXFileReference; name = "SourceSansPro-Semibold.otf"; path = "../assets/fonts/SourceSansPro-Semibold.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - CF5C52BA451A4EA3AD763ACF /* SourceSansPro-SemiboldIt.otf */ = {isa = PBXFileReference; name = "SourceSansPro-SemiboldIt.otf"; path = "../assets/fonts/SourceSansPro-SemiboldIt.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - DEC4ADDE6DAB427CA3CBF8CD /* RNSVG.xcodeproj */ = {isa = PBXFileReference; name = "RNSVG.xcodeproj"; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 81E53C7433DD41D0832D02F8 /* libRNSVG.a */ = {isa = PBXFileReference; name = "libRNSVG.a"; path = "libRNSVG.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 34BBAEE2743C4C93805FBC7D /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; name = "libRNSVG-tvOS.a"; path = "libRNSVG-tvOS.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 16A0FFB9CCB8454D897E4962 /* OpenSans-Regular.otf */ = {isa = PBXFileReference; name = "OpenSans-Regular.otf"; path = "../assets/fonts/OpenSans-Regular.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - D82B5E67956A45D1B7B5EA8D /* OpenSans-SemiBold.otf */ = {isa = PBXFileReference; name = "OpenSans-SemiBold.otf"; path = "../assets/fonts/OpenSans-SemiBold.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 6E303FC94B2A4B02A7E724FE /* AEH.ttf */ = {isa = PBXFileReference; name = "AEH.ttf"; path = "../assets/fonts/AEH.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 38564DF22DC746FAA5E8ED42 /* Avenir-Medium.ttf */ = {isa = PBXFileReference; name = "Avenir-Medium.ttf"; path = "../assets/fonts/Avenir-Medium.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 72EA133B6FC94075BBF831B9 /* AvenirLTStd-Book.otf */ = {isa = PBXFileReference; name = "AvenirLTStd-Book.otf"; path = "../assets/fonts/AvenirLTStd-Book.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B4CDCF85AECF43BEAE869526 /* AvenirLTStd-Light.otf */ = {isa = PBXFileReference; name = "AvenirLTStd-Light.otf"; path = "../assets/fonts/AvenirLTStd-Light.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 1017596B5B8F4334BB4B600E /* AvenirLTStd-Roman.otf */ = {isa = PBXFileReference; name = "AvenirLTStd-Roman.otf"; path = "../assets/fonts/AvenirLTStd-Roman.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 34F8E402531942F0A305B8BA /* Roboto-Regular.ttf */ = {isa = PBXFileReference; name = "Roboto-Regular.ttf"; path = "../assets/fonts/Roboto-Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + B31C88754405452F8C9A690D /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; }; + B3ADAAAF82ED474E80B98002 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; }; + B3B65AC8B2BD4F16A1FA9E7B /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; + B4CDCF85AECF43BEAE869526 /* AvenirLTStd-Light.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "AvenirLTStd-Light.otf"; path = "../assets/fonts/AvenirLTStd-Light.otf"; sourceTree = ""; }; + B88EC2631A1D4DACAA44D15B /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + CA83AB21012243D0B55B3F8B /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + CC4CFB6A3F6F405595C7A7ED /* SourceSansPro-ExtraLight.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-ExtraLight.otf"; path = "../assets/fonts/SourceSansPro-ExtraLight.otf"; sourceTree = ""; }; + CF5C52BA451A4EA3AD763ACF /* SourceSansPro-SemiboldIt.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-SemiboldIt.otf"; path = "../assets/fonts/SourceSansPro-SemiboldIt.otf"; sourceTree = ""; }; + D1228801AE2E4447B80E8BFF /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; }; + D82B5E67956A45D1B7B5EA8D /* OpenSans-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-SemiBold.otf"; path = "../assets/fonts/OpenSans-SemiBold.otf"; sourceTree = ""; }; + DEC4ADDE6DAB427CA3CBF8CD /* RNSVG.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNSVG.xcodeproj; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; }; + E30ACD1021F54E3B8B1536A4 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + E42C800445B84A5685F2E21C /* SourceSansPro-BoldIt.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SourceSansPro-BoldIt.otf"; path = "../assets/fonts/SourceSansPro-BoldIt.otf"; sourceTree = ""; }; + E48641ADBEC64FF4ABA86D19 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; + E5540451ABEC405787FC05E9 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -493,9 +465,6 @@ 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - 54A1D7F53D204197B24333EC /* libRNVectorIcons.a in Frameworks */, - 5A19FE4811AE4DB3AEC7DE5B /* libAirMaps.a in Frameworks */, - 23157E0E27C7474C8ACD630D /* libRNSVG.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -511,7 +480,6 @@ 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, - B3A8B4723CD646A2BD9355D9 /* libRNSVG-tvOS.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -645,10 +613,6 @@ 22592B8621605EA000CC57FA /* Recovered References */ = { isa = PBXGroup; children = ( - 4511B77507324F0FB3EAFA9F /* libRNVectorIcons.a */, - E3D8AFCBECEB4B109B705603 /* libAirMaps.a */, - 81E53C7433DD41D0832D02F8 /* libRNSVG.a */, - 34BBAEE2743C4C93805FBC7D /* libRNSVG-tvOS.a */, ); name = "Recovered References"; sourceTree = ""; @@ -900,9 +864,6 @@ CreatedOnToolsVersion = 6.2; TestTargetID = 13B07F861A680F5B00A75B9A; }; - 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = Y7H4A4GJ9K; - }; 2D02E47A1E0B4A5D006451C7 = { CreatedOnToolsVersion = 8.2.1; ProvisioningStyle = Automatic; @@ -1301,14 +1262,11 @@ files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - FF433FC06C3C4835AF15127D /* Entypo.ttf in Resources */, 76982C35CDA64E6E898F2BA5 /* EvilIcons.ttf in Resources */, 12C1D701F83E4619B1C15E66 /* Feather.ttf in Resources */, 1DA82EB76495465E9A0D2737 /* FontAwesome.ttf in Resources */, 43A4D2F1931640F890BAE54B /* FontAwesome5_Brands.ttf in Resources */, - EB0E3B0ED18C4976BFE54C07 /* FontAwesome5_Regular.ttf in Resources */, 4421960A330148D48CF87500 /* FontAwesome5_Solid.ttf in Resources */, - D26C5A47408D421EA5929B40 /* Foundation.ttf in Resources */, 09FC8400524745CEA794E04C /* Ionicons.ttf in Resources */, 670D0D9FA12F4A9495615F3E /* MaterialCommunityIcons.ttf in Resources */, 2C17DCE1D42C43859426C10E /* MaterialIcons.ttf in Resources */, @@ -1520,7 +1478,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; - DEVELOPMENT_TEAM = Y7H4A4GJ9K; + DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", @@ -1545,7 +1503,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = Y7H4A4GJ9K; + DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", @@ -1869,4 +1827,4 @@ /* End XCConfigurationList section */ }; rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} \ No newline at end of file +} diff --git a/ios/arcFrontend.xcodeproj/xcshareddata/xcschemes/arcFrontend-tvOS.xcscheme b/ios/arcFrontend.xcodeproj/xcshareddata/xcschemes/arcFrontend-tvOS.xcscheme index 4e95f4f..fff7859 100644 --- a/ios/arcFrontend.xcodeproj/xcshareddata/xcschemes/arcFrontend-tvOS.xcscheme +++ b/ios/arcFrontend.xcodeproj/xcshareddata/xcschemes/arcFrontend-tvOS.xcscheme @@ -1,6 +1,6 @@ #import - @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions diff --git a/ios/arcFrontend/Info.plist b/ios/arcFrontend/Info.plist index a0cea8c..974513c 100644 --- a/ios/arcFrontend/Info.plist +++ b/ios/arcFrontend/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - onearc + arcFrontend CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -38,7 +38,7 @@ NSLocationWhenInUseUsageDescription - + UIAppFonts Entypo.ttf diff --git a/src/actionCreators/app/index.js b/src/actionCreators/app/index.js index 24f8792..136a4c0 100644 --- a/src/actionCreators/app/index.js +++ b/src/actionCreators/app/index.js @@ -62,6 +62,7 @@ const manualLogin = (credentials) => }, body: JSON.stringify(credentials), }); + console.log(response); if (response.status === 200) { const token = JSON.parse(response._bodyText).token; const userId = JSON.parse(response._bodyText).id; @@ -90,6 +91,7 @@ const signupWithEmail = (user) => { }, body: JSON.stringify(user), }); + console.log(response) if (response.status === 201) { const token = JSON.parse(response._bodyText).token; const userId = JSON.parse(response._bodyText).id; @@ -108,7 +110,211 @@ const signupWithEmail = (user) => { } const logout = () => { + return async dispatch => { + await AsyncStorage.removeItem('token'); + dispatch({ type: types.LOGOUT }); + } +} + +//Medical +const createMedicalSettings = () => { + return async dispatch => { + try { + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/medical/`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + }, + body: JSON.stringify({ + blood_type: '', + allergies: '', + medication: '', + insurance: '', + emergency_name: '', + emergency_phone: '' + }) + }); + console.log(response); + } catch (error) { + console.log(error); + } + } +} + +const getMedicalSettings = () => { + return async dispatch => { + dispatch({ type: types.MEDICAL_SETTINGS_GET_START }) + try { + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/medical/${userId}`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + } + }); + const settings = JSON.parse(response._bodyText) + if (Object.keys(settings).length === 0 && settings.constructor === Object) { + dispatch({ type: types.MEDICAL_SETTINGS_GET_FAILED }) + console.log('Initiating default medical settings'); + dispatch(createMedicalSettings()); + } + const { data } = settings; + dispatch({ type: types.MEDICAL_SETTINGS_GET_SUCCESS, data }) + } catch (error) { + dispatch({ type: types.MEDICAL_SETTINGS_GET_FAILED }) + console.log(error); + } + } +} +const updateMedicalSettings = (payload) => { + return async dispatch => { + try { + dispatch({ type: types.MEDICAL_SETTINGS_PATCH_START }); + if (Object.keys(payload).length === 0 && payload.constructor === Object) { + dispatch({ type: types.MEDICAL_SETTINGS_PATCH_FAILED }); + return; + } + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/medical/${userId}/update`, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + }, + body: JSON.stringify(payload) + }); + const settings = JSON.parse(response._bodyText) + const { data } = settings; + console.log('response', response); + dispatch({ type: types.MEDICAL_SETTINGS_PATCH_SUCCESS, data: data[0] }) + } catch (error) { + dispatch({ type: types.MEDICAL_SETTINGS_PATCH_FAILED }) + console.log(error); + } + } } -export { getGeoLocation, signupWithEmail, autoLogin, manualLogin, showCommunityList, hideCommunityList, setLogin }; +// PERSONAL + +const createPersonalSettings = () => { + return async dispatch => { + try { + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/personal/`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + }, + body: JSON.stringify({ + birth_date: '1989-02-20T00:00:00.000Z', + city: '', + state: '', + phone: '', + gps: 'false', + }) + }); + console.log(response); + } catch (error) { + console.log(error); + } + } +} + +const getPersonalSettings = () => { + return async dispatch => { + dispatch({ type: types.PERSONAL_SETTINGS_GET_START }) + try { + console.log('[API] GET personal Settings') + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/personal/${userId}`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + } + }); + const settings = JSON.parse(response._bodyText) + if (Object.keys(settings).length === 0 && settings.constructor === Object) { + dispatch({ type: types.PERSONAL_SETTINGS_GET_FAILED }) + console.log('Initiating default medical settings'); + dispatch(createMedicalSettings()); + } + const { data: { birth_date, city, state, phone, gps } } = settings; + dispatch({ type: types.PERSONAL_SETTINGS_GET_SUCCESS, data: { birth_date, city, state, phone, gps } }) + } catch (error) { + dispatch({ type: types.PERSONAL_SETTINGS_GET_FAILED }) + console.log(error); + } + } +} + +const updatePersonalSettings = (payload) => { + return async dispatch => { + try { + dispatch({ type: types.PERSONAL_SETTINGS_PATCH_START }); + if (Object.keys(payload).length === 0 && payload.constructor === Object) { + dispatch({ type: types.PERSONAL_SETTINGS_PATCH_FAILED }); + return; + } + const token = await AsyncStorage.getItem('token'); + const userId = await AsyncStorage.getItem('userId'); + const response = await fetch(`${baseURL}profile/personal/${userId}/update`, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token + }, + body: JSON.stringify(payload) + }); + const settings = JSON.parse(response._bodyText) + const { data } = settings; + console.log('response', response); + dispatch({ type: types.PERSONAL_SETTINGS_PATCH_SUCCESS, data: data[0] }) + } catch (error) { + dispatch({ type: types.PERSONAL_SETTINGS_PATCH_FAILED }) + console.log(error); + } + } +} + + +const startEdit = () => { + return async dispatch => { + dispatch({ type: types.EDIT_START }); + } +} + +const endEdit = () => { + return async dispatch => { + dispatch({ type: types.EDIT_END }); + } +} + +export { + getGeoLocation, + signupWithEmail, + autoLogin, + manualLogin, + showCommunityList, + hideCommunityList, + setLogin, + logout, + createPersonalSettings, + getPersonalSettings, + updatePersonalSettings, + getMedicalSettings, + updateMedicalSettings, + startEdit, + endEdit +}; + diff --git a/src/actionTypes/app/index.js b/src/actionTypes/app/index.js index 72fef80..b7fef16 100644 --- a/src/actionTypes/app/index.js +++ b/src/actionTypes/app/index.js @@ -14,10 +14,28 @@ export const LOGIN_START = 'app/LOGIN_START'; export const LOGIN_SUCCESS = 'app/LOGIN_SUCCESS'; export const LOGIN_FAILED = 'app/LOGIN_FAILED'; -export const LOGOUT_START = 'app/LOGOUT_START'; -export const LOGOUT_SUCCESS = 'app/LOGOUT_SUCCESS'; -export const LOGOUT_FAILED = 'app/LOGOUT_FAILED'; +export const LOGOUT = 'app/LOGOUT'; /* Facebook, Google, Twitter will go here */ + +//User Settings +export const EDIT_START = 'app/EDIT_START'; +export const EDIT_END = 'app/EDIT_END'; + +export const MEDICAL_SETTINGS_GET_START = 'app/MEDICAL_SETTINGS_GET_START'; +export const MEDICAL_SETTINGS_GET_SUCCESS = 'app/MEDICAL_SETTINGS_GET_SUCCESS'; +export const MEDICAL_SETTINGS_GET_FAILED = 'app/MEDICAL_SETTINGS_GET_FAILED'; + +export const MEDICAL_SETTINGS_PATCH_START = 'app/MEDICAL_SETTINGS_PATCH_START'; +export const MEDICAL_SETTINGS_PATCH_SUCCESS = 'app/MEDICAL_SETTINGS_PATCH_SUCCESS'; +export const MEDICAL_SETTINGS_PATCH_FAILED = 'app/MEDICAL_SETTINGS_PATCH_FAILED'; + +export const PERSONAL_SETTINGS_GET_START = 'app/PERSONAL_SETTINGS_GET_START'; +export const PERSONAL_SETTINGS_GET_SUCCESS = 'app/PERSONAL_SETTINGS_GET_SUCCESS'; +export const PERSONAL_SETTINGS_GET_FAILED = 'app/PERSONAL_SETTINGS_GET_FAILED'; + +export const PERSONAL_SETTINGS_PATCH_START = 'app/PERSONAL_SETTINGS_PATCH_START'; +export const PERSONAL_SETTINGS_PATCH_SUCCESS = 'app/PERSONAL_SETTINGS_PATCH_SUCCESS'; +export const PERSONAL_SETTINGS_PATCH_FAILED = 'app/PERSONAL_SETTINGS_PATCH_FAILED'; diff --git a/src/consts.js b/src/consts.js index 7c9946c..ecd0b66 100644 --- a/src/consts.js +++ b/src/consts.js @@ -1,121 +1,121 @@ export const mapStyle = [ - { - "featureType": "administrative.land_parcel", - "elementType": "all", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "landscape.man_made", - "elementType": "all", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "poi", - "elementType": "labels", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "road", - "elementType": "labels", - "stylers": [ - { - "visibility": "simplified" - }, - { - "lightness": 20 - } - ] - }, - { - "featureType": "road.highway", - "elementType": "geometry", - "stylers": [ - { - "hue": "#f49935" - } - ] - }, - { - "featureType": "road.highway", - "elementType": "labels", - "stylers": [ - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "geometry", - "stylers": [ - { - "hue": "#fad959" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "labels", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "road.local", - "elementType": "geometry", - "stylers": [ - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "road.local", - "elementType": "labels", - "stylers": [ - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "transit", - "elementType": "all", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "water", - "elementType": "all", - "stylers": [ - { - "hue": "#a1cdfc" - }, - { - "saturation": 30 - }, - { - "lightness": 49 - } - ] - } + { + "featureType": "administrative.land_parcel", + "elementType": "all", + "stylers": [ + { + "visibility": "off" + } + ] + }, + { + "featureType": "landscape.man_made", + "elementType": "all", + "stylers": [ + { + "visibility": "off" + } + ] + }, + { + "featureType": "poi", + "elementType": "labels", + "stylers": [ + { + "visibility": "off" + } + ] + }, + { + "featureType": "road", + "elementType": "labels", + "stylers": [ + { + "visibility": "simplified" + }, + { + "lightness": 20 + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry", + "stylers": [ + { + "hue": "#f49935" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "labels", + "stylers": [ + { + "visibility": "simplified" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "geometry", + "stylers": [ + { + "hue": "#fad959" + } + ] + }, + { + "featureType": "road.arterial", + "elementType": "labels", + "stylers": [ + { + "visibility": "off" + } + ] + }, + { + "featureType": "road.local", + "elementType": "geometry", + "stylers": [ + { + "visibility": "simplified" + } + ] + }, + { + "featureType": "road.local", + "elementType": "labels", + "stylers": [ + { + "visibility": "simplified" + } + ] + }, + { + "featureType": "transit", + "elementType": "all", + "stylers": [ + { + "visibility": "off" + } + ] + }, + { + "featureType": "water", + "elementType": "all", + "stylers": [ + { + "hue": "#a1cdfc" + }, + { + "saturation": 30 + }, + { + "lightness": 49 + } + ] + } ] -export const baseURL = "https://onearc.herokuapp.com/"; \ No newline at end of file +export const baseURL = "https://onearcback.herokuapp.com/"; \ No newline at end of file diff --git a/src/containers/InformationBoard/components/Logout/index.js b/src/containers/InformationBoard/components/Logout/index.js new file mode 100644 index 0000000..ae171cb --- /dev/null +++ b/src/containers/InformationBoard/components/Logout/index.js @@ -0,0 +1,38 @@ +import React from 'react'; +import { Image, TouchableOpacity } from 'react-native'; +import { connect } from 'react-redux'; +import { logout } from '../../../../actionCreators/app'; +import styles from './styles' + +class Logout extends React.Component { + componentWillReceiveProps = nextProps => { + console.log('old logged in: ', this.props.loggedIn); + console.log('new logged in: ', nextProps.loggedIn); + if (this.props.loggedIn && !nextProps.loggedIn) { + this.props.navigation.navigate('Auth'); + } + }; + _logout = async () => { + await this.props.logout(); + } + render() { + return ( + + + + ) + } +} + +const mapStateToProps = state => ({ + loggedIn: state.app.loggedIn, +}); + +const mapDispatchToProps = dispatch => ({ + logout: () => dispatch(logout()), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(Logout) \ No newline at end of file diff --git a/src/containers/InformationBoard/components/Logout/styles.js b/src/containers/InformationBoard/components/Logout/styles.js new file mode 100644 index 0000000..4502fdc --- /dev/null +++ b/src/containers/InformationBoard/components/Logout/styles.js @@ -0,0 +1,5 @@ +import { StyleSheet } from 'react-native'; + +export default styles = StyleSheet.create({ + image: { height: 30, width: 30, marginRight: 16, borderRadius: 25 } +}) \ No newline at end of file diff --git a/src/containers/MedicalInfo/components/MedicalInfo/index.js b/src/containers/MedicalInfo/components/MedicalInfo/index.js index b1cc7d7..20238f8 100644 --- a/src/containers/MedicalInfo/components/MedicalInfo/index.js +++ b/src/containers/MedicalInfo/components/MedicalInfo/index.js @@ -1,6 +1,8 @@ import React from 'react'; -import { View } from 'react-native'; +import { View, ScrollView } from 'react-native'; +import { connect } from 'react-redux'; import SettingsCard from '../../../../globals/SettingsCard'; +import { getMedicalSettings, updateMedicalSettings } from '../../../../actionCreators/app'; import UserInfo from '../../../../globals/UserInfo'; import styles, { cardStyles } from './styles'; @@ -9,53 +11,134 @@ import styles, { cardStyles } from './styles'; export class MedicalInfo extends React.Component { - userProfileConfig = [ - { - title: 'Allergies & Reactions', - value: 'Peniciplin - hives, rash and itching' - }, - { - title: 'Blood Type', - value: 'AB -' - }, - { - title: 'Medication', - value: 'Metformin' - }, - { - title: 'Insurance', - value: 'Medicare - 1EG4-TE5-MK72' - }, - ] - - userContactConfig = [ - { - title: 'Emergency Contact', - value: 'Charles Adams' - }, - { - title: 'Phone', - value: '415-205-7858' - }, - ] + state = { + medical: [ + { + title: 'Allergies & Reactions', + value: this.props.settings.allergies + }, + { + title: 'Blood Type', + value: this.props.settings.blood_type + }, + { + title: 'Medication', + value: this.props.settings.medication + }, + { + title: 'Insurance', + value: this.props.settings.insurance + }, + ], + contact: [ + { + title: 'Emergency Contact', + value: this.props.settings.emergency_name + }, + { + title: 'Phone', + value: this.props.settings.emergency_phone + }, + ] + } + constructor(props) { + super(props) + } + + componentDidUpdate(prevProps) { + if (this.props.settings !== prevProps.settings) { + console.log('MedicalInfo got settings from redux'); + // console.log(this.state.medical) + console.log(this.props.settings.allergies); + // console.log(prevProps.settings); + console.log('Medical Info gonna set state') + this.setState((prevProps) => { + return { + medical: [ + { + title: 'Allergies & Reactions', + value: this.props.settings.allergies + }, + { + title: 'Blood Type', + value: this.props.settings.blood_type + }, + { + title: 'Medication', + value: this.props.settings.medication + }, + { + title: 'Insurance', + value: this.props.settings.insurance + }, + ], + contact: [ + { + title: 'Emergency Contact', + value: this.props.settings.emergency_name + }, + { + title: 'Phone', + value: this.props.settings.emergency_phone + }, + ] + } + }) + } + } + updateSettings = async (settings) => { + const { + ['Allergies & Reactions']: allergies, + ['Blood Type']: blood_type, + ['Medication']: medication, + ['Insurance']: insurance, + ['Emergency Contact']: emergency_name, + ['Phone']: emergency_phone + } = settings; + const unfilteredSettings = { + allergies, + blood_type, + medication, + insurance, + emergency_name, + emergency_phone + } + let payload = {} + for (let setting in unfilteredSettings) { + if (unfilteredSettings[setting] !== undefined) { + payload[setting] = unfilteredSettings[setting] + } + } + await this.props.updateMedicalSettings(payload) + } + + + render() { return ( - + - + - + - + ); } } +const mapStateToProps = state => ({ + settings: state.app.medicalSettings +}) +const mapDispatchToProps = dispatch => ({ + getMedicalSettings: () => dispatch(getMedicalSettings()), + updateMedicalSettings: (payload) => dispatch(updateMedicalSettings(payload)) +}) -export default MedicalInfo \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps)(MedicalInfo) \ No newline at end of file diff --git a/src/containers/MedicalInfo/components/MedicalInfo/styles.js b/src/containers/MedicalInfo/components/MedicalInfo/styles.js index 2c8070f..03b4a24 100644 --- a/src/containers/MedicalInfo/components/MedicalInfo/styles.js +++ b/src/containers/MedicalInfo/components/MedicalInfo/styles.js @@ -27,8 +27,6 @@ export const cardStyles = StyleSheet.create({ width: 360 }, setting: { - flexDirection: "column", - alignItems: "flex-start", justifyContent: 'space-between', marginLeft: 28, marginBottom: 8, @@ -42,6 +40,8 @@ export const cardStyles = StyleSheet.create({ text__value: { fontFamily: 'SourceSansPro-Regular', fontSize: 16, - color: '#1c1c1c' + color: '#1c1c1c', + paddingBottom: 0, + paddingTop: 0, } }) \ No newline at end of file diff --git a/src/containers/PersonalInfo/components/PersonalInfo/index.js b/src/containers/PersonalInfo/components/PersonalInfo/index.js index 74e6cbe..8844c23 100644 --- a/src/containers/PersonalInfo/components/PersonalInfo/index.js +++ b/src/containers/PersonalInfo/components/PersonalInfo/index.js @@ -1,36 +1,111 @@ import React from 'react'; -import { View, Text, TouchableOpacity } from 'react-native'; +import { View, Text, TouchableOpacity, ScrollView } from 'react-native'; +import { connect } from 'react-redux'; import Slider from 'react-native-slider'; +import { format } from 'date-fns' import SettingsCard from '../../../../globals/SettingsCard'; +import { getPersonalSettings, updatePersonalSettings } from '../../../../actionCreators/app'; import UserInfo from '../../../../globals/UserInfo'; import styles, { cardStyles } from './styles'; //TODO: Hook up to API +/* +{ + birth_date: '', + city: '', + state: '', + phone: '', + gps: '', + } +*/ -export default class PersonalInfo extends React.Component { + +export class PersonalInfo extends React.Component { state = { - sliderValue: 0 + sliderValue: (this.props.settings.gps === undefined ? 0 : 1), + personal: [ + { + title: 'Date of birth', + value: this.props.settings.birth_date + }, + { + title: 'Home City', + value: this.props.settings.city + }, + { + title: 'Phone', + value: this.props.settings.phone + }, + { + title: 'Email', + value: 'brianadamas@gmail.com' + } + ] }; - userPersonalConfig = [ - { - title: 'Date of birth', - value: 'Feb 20, 1989' - }, - { - title: 'Home City ', - value: 'San Francisco' - }, - { - title: 'Phone', - value: '415-204-7848' - }, - { - title: 'Email', - value: 'brianadamas@gmail.com' + + constructor(props) { + super(props) + } + + componentDidUpdate(prevProps) { + + console.log('Personal Info: Finished Updating. Running functions on update.'); + console.log(this.props.settings.birth_date); + + for (let setting in this.props.settings) { + if (this.props.settings[setting] !== prevProps.settings[setting]) { + console.log(`${setting} was not the same. New: ${this.props.settings[setting]} Old: ${prevProps.settings[setting]}`) + console.log('[Personal Info]: ', '*Update Function*: New props from redux arent the same. Setting State.') + this.setState((prevProps) => { + return { + personal: [ + { + title: 'Date of birth', + value: this.props.settings.birth_date + }, + { + title: 'Home City', + value: this.props.settings.city + }, + { + title: 'Phone', + value: this.props.settings.phone + }, + { + title: 'Email', + value: 'brianadamas@gmail.com' + } + ] + } + }) + break; + } + } + + } + + updateSettings = async (settings) => { + const { + ['Date of birth']: birth_date, + ['Home City']: city, + ['Phone']: phone, + } = settings; + const unfilteredSettings = { + birth_date: '1989-02-20T00:00:00.000Z', + city, + phone, + gps: !!this.state.sliderValue + } + let payload = {} + for (let setting in unfilteredSettings) { + if (unfilteredSettings[setting] !== undefined) { + payload[setting] = unfilteredSettings[setting] + } } - ] + await this.props.updatePersonalSettings(payload) + } setSliderValue = () => { this.setState((prevState) => ({ @@ -40,13 +115,14 @@ export default class PersonalInfo extends React.Component { render() { const { sliderValue } = this.state; + console.log('[Personal Info]: Rendering with this state: ', this.state) return ( - + - + Allow GPS @@ -54,17 +130,29 @@ export default class PersonalInfo extends React.Component { - + ); } } +const mapStateToProps = state => ({ + settings: { + ...state.app.personalSettings, + birth_date: format(state.app.personalSettings.birth_date, 'YYYY-MM-DD') + } +}) + +const mapDispatchToProps = dispatch => ({ + getPersonalSettings: () => dispatch(getPersonalSettings()), + updatePersonalSettings: (payload) => dispatch(updatePersonalSettings(payload)) +}) +export default connect(mapStateToProps, mapDispatchToProps)(PersonalInfo) \ No newline at end of file diff --git a/src/containers/PersonalInfo/components/PersonalInfo/styles.js b/src/containers/PersonalInfo/components/PersonalInfo/styles.js index 2f020db..fb34f75 100644 --- a/src/containers/PersonalInfo/components/PersonalInfo/styles.js +++ b/src/containers/PersonalInfo/components/PersonalInfo/styles.js @@ -54,8 +54,6 @@ export const cardStyles = StyleSheet.create({ width: 360 }, setting: { - flexDirection: "column", - alignItems: "flex-start", justifyContent: 'space-between', marginLeft: 28, marginBottom: 8, @@ -69,6 +67,8 @@ export const cardStyles = StyleSheet.create({ text__value: { fontFamily: 'SourceSansPro-Regular', fontSize: 16, - color: '#1c1c1c' + color: '#1c1c1c', + paddingBottom: 0, + paddingTop: 0, } }) \ No newline at end of file diff --git a/src/globals/EditButton/index.js b/src/globals/EditButton/index.js new file mode 100644 index 0000000..d350f9e --- /dev/null +++ b/src/globals/EditButton/index.js @@ -0,0 +1,35 @@ +import React from 'react'; +import { Text, TouchableOpacity } from 'react-native'; +import { connect } from 'react-redux'; +import { startEdit, endEdit } from '../../actionCreators/app'; +import styles from './styles' + +class Edit extends React.Component { + startEdit = () => { + !this.props.edit ? this.props.startEdit() : this.props.endEdit() + + } + componentWillUnmount() { + this.props.endEdit() + } + render() { + return ( + + Edit + + ) + } +} + + +const mapStateToProps = state => ({ + edit: state.app.edit +}) + +const mapDispatchToProps = dispatch => ({ + startEdit: () => dispatch(startEdit()), + endEdit: () => dispatch(endEdit()) +}) + +export default connect(mapStateToProps, mapDispatchToProps)(Edit) + diff --git a/src/globals/EditButton/styles.js b/src/globals/EditButton/styles.js new file mode 100644 index 0000000..4502fdc --- /dev/null +++ b/src/globals/EditButton/styles.js @@ -0,0 +1,5 @@ +import { StyleSheet } from 'react-native'; + +export default styles = StyleSheet.create({ + image: { height: 30, width: 30, marginRight: 16, borderRadius: 25 } +}) \ No newline at end of file diff --git a/src/globals/SettingsCard/index.js b/src/globals/SettingsCard/index.js index 6074a35..c055f40 100644 --- a/src/globals/SettingsCard/index.js +++ b/src/globals/SettingsCard/index.js @@ -1,5 +1,6 @@ import React from 'react'; -import { View, Text, Image, TouchableOpacity } from 'react-native'; +import { View, Text, TextInput, TouchableOpacity } from 'react-native'; +import { connect } from 'react-redux'; import styles from './styles'; /* @@ -12,7 +13,7 @@ import styles from './styles'; styles.text__value //settings array to generate cards settings - + //edit state //navigation prop to dynamically create edit setting page (use params to pass the data with rn-navigation) this.props.navigateToSetting @@ -22,22 +23,80 @@ import styles from './styles'; */ -export default class SettingsCard extends React.Component { +export class SettingsCard extends React.Component { constructor(props) { super(props) + this.state = { settings: {} } + this.props.settings.map(configObject => { + this.state.settings[configObject.title] = configObject.value + }) + console.log(this.props.name, 'Settings Card Constructed.') + } + + loadData = () => { + const settings = {}; + this.props.settings.map(configObject => { + settings[configObject.title] = configObject.value + }); + for (let setting in settings) { + if (settings[setting] !== this.state.settings[setting]) { + console.log(this.props.name, '*Update Function*: Data was not the same. Setting State') + this.setState(() => ({ settings })) + break; + } + } + } + + handleTextChange = (title, text) => { + this.setState((prevState) => { + if (prevState) { + return ({ + settings: { + ...prevState.settings, + [title]: text + } + }) + } + }) + } + refHolder = {} + + componentDidUpdate(prevProps, prevState) { + console.log(this.props.name, 'just finished rendering. Running Update functions: ') + if (this.props.settings !== prevProps.settings) { + this.loadData(); + // times when updates happen: + //parent fetches last data from server: + //this component actually renders new text + //parent posts and returns new data from server: + } else { + console.log(this.props.name, 'Did not recieve new props from parent.') + } + if (prevProps.edit === true && this.props.edit === false) { + this.props.update(this.state.settings); + } else { + console.log(this.props.name, 'Did not run update (from a finished edit).') + } } navigateToSetting = (setting) => { } render() { + console.log(this.props.name, 'Rendering with these settings: ', this.state.settings) return ( {this.props.settings.map((config, i) => { return (i === 0) ? ( - this.navigateToSetting(config.title)}> + { if (this.props.edit) { this.refHolder[config.title].focus() } }}> {config.title} - {config.value} + { this.refHolder[config.title] = input }} + style={this.props.styles.text__value} + underlineColorAndroid='transparent' + onChangeText={text => this.handleTextChange(config.title, text)} + editable={!!this.props.edit} + value={this.state.settings[config.title]} /> @@ -48,9 +107,15 @@ export default class SettingsCard extends React.Component { - this.navigateToSetting(config.title)}> + { if (this.props.edit) { this.refHolder[config.title].focus() } }}> {config.title} - {config.value} + { this.refHolder[config.title] = input }} + style={this.props.styles.text__value} + underlineColorAndroid='transparent' + onChangeText={text => this.handleTextChange(config.title, text)} + editable={!!this.props.edit} + value={this.state.settings[config.title]} /> ) @@ -59,4 +124,10 @@ export default class SettingsCard extends React.Component { ) } -} \ No newline at end of file +} + +const mapStateToProps = state => ({ + edit: state.app.edit, +}) + +export default connect(mapStateToProps)(SettingsCard) \ No newline at end of file diff --git a/src/reducers/app/index.js b/src/reducers/app/index.js index aa3c7b9..055606b 100644 --- a/src/reducers/app/index.js +++ b/src/reducers/app/index.js @@ -7,7 +7,23 @@ const initialState = { showList: true, loggedIn: false, token: null, - userId: null + userId: null, + edit: false, + medicalSettings: { + blood_type: '', + medication: '', + insurance: '', + allergies: '', + emergency_name: '', + emergency_phone: '' + }, + personalSettings: { + birth_date: '1989-02-20T00:00:00.000Z', + city: '', + state: '', + phone: '', + gps: 'false', + } }; export default function (state = initialState, action) { @@ -48,6 +64,8 @@ export default function (state = initialState, action) { isLoading: false, loggedIn: false }; + case types.LOGOUT: + return initialState; case types.SIGNUP_EMAIL_START: return { ...state, @@ -67,15 +85,94 @@ export default function (state = initialState, action) { isLoading: false, loggedIn: false }; + case types.MEDICAL_SETTINGS_GET_START: + return { + ...state, + isLoading: false + }; + case types.MEDICAL_SETTINGS_GET_SUCCESS: + return { + ...state, + isLoading: false, + medicalSettings: action.data + }; + case types.MEDICAL_SETTINGS_GET_FAILED: + return { + ...state, + }; + case types.MEDICAL_SETTINGS_PATCH_START: + return { + ...state, + isLoading: false + }; + case types.MEDICAL_SETTINGS_PATCH_SUCCESS: + return { + ...state, + isLoading: false, + medicalSettings: { + ...state.medicalSettings, + ...action.data + } + }; + case types.MEDICAL_SETTINGS_PATCH_FAILED: + return { + ...state, + }; + case types.PERSONAL_SETTINGS_GET_START: + return { + ...state, + isLoading: false + }; + case types.PERSONAL_SETTINGS_GET_SUCCESS: + return { + ...state, + isLoading: false, + personalSettings: { + ...state.personalSettings, + ...action.data + } + }; + case types.PERSONAL_SETTINGS_GET_FAILED: + return { + ...state, + }; + case types.PERSONAL_SETTINGS_PATCH_START: + return { + ...state, + isLoading: false + }; + case types.PERSONAL_SETTINGS_PATCH_SUCCESS: + return { + ...state, + isLoading: false, + personalSettings: { + ...state.personalSettings, + ...action.data + } + }; + case types.PERSONAL_SETTINGS_PATCH_FAILED: + return { + ...state, + }; case types.SHOW_COMMUNITY_LIST: return { - ...state, - showList: true, + ...state, + showList: true, } - case types.HIDE_COMMUNITY_LIST: + case types.HIDE_COMMUNITY_LIST: return { - ...state, - showList: false, + ...state, + showList: false, + } + case types.EDIT_START: + return { + ...state, + edit: true, + } + case types.EDIT_END: + return { + ...state, + edit: false, } default: return state diff --git a/src/screens/InformationScreen.js b/src/screens/InformationScreen.js index f2fc198..98ad529 100644 --- a/src/screens/InformationScreen.js +++ b/src/screens/InformationScreen.js @@ -1,28 +1,13 @@ import React from 'react'; -import { StyleSheet, Image, TouchableOpacity, AsyncStorage } from 'react-native'; import InformationBoard from '../containers/InformationBoard/components/InformationBoard'; - -const styles = StyleSheet.create({ - image: { height: 30, width: 30, marginRight: 16, borderRadius: 25 }, - title: { fontFamily: 'SourceSansPro-Regular' } -}) +import Logout from '../containers/InformationBoard/components/Logout'; export default class InformationScreen extends React.PureComponent { static navigationOptions = ({ navigation }) => { return { - headerRight: ( - { - AsyncStorage.removeItem('token'); - navigation.navigate('Auth'); - }}> - - - ), - headerStyle: styles.title + headerRight: (), + headerStyle: { fontFamily: 'SourceSansPro-Regular' } } } render() { @@ -30,6 +15,4 @@ export default class InformationScreen extends React.PureComponent { ); } -} - - +} \ No newline at end of file diff --git a/src/screens/MedicalScreen.js b/src/screens/MedicalScreen.js index 5c2963e..b55f41c 100644 --- a/src/screens/MedicalScreen.js +++ b/src/screens/MedicalScreen.js @@ -1,15 +1,21 @@ import React from 'react'; import { View, Text, TouchableOpacity } from 'react-native'; +import { connect } from 'react-redux'; +import { getMedicalSettings } from '../actionCreators/app'; import MedicalInfo from '../containers/MedicalInfo/components/MedicalInfo'; +import EditButton from '../globals/EditButton' -export default class MedicalScreen extends React.PureComponent { +export class MedicalScreen extends React.PureComponent { static navigationOptions = { headerTitle: 'Medical ID', - headerRight: ( - alert('This is a button!')}> - Edit - - ) + headerRight: () + } + componentDidMount() { + this.createSettingsArrays(); + } + + createSettingsArrays = async (settings) => { + await this.props.getMedicalSettings(); } render() { return ( @@ -17,3 +23,14 @@ export default class MedicalScreen extends React.PureComponent { ); } } + + +const mapStateToProps = state => ({ + settings: state.app.medicalSettings +}) + +const mapDispatchToProps = dispatch => ({ + getMedicalSettings: () => dispatch(getMedicalSettings()), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(MedicalScreen) \ No newline at end of file diff --git a/src/screens/PersonalScreen.js b/src/screens/PersonalScreen.js index c568344..004eb3c 100644 --- a/src/screens/PersonalScreen.js +++ b/src/screens/PersonalScreen.js @@ -1,15 +1,21 @@ import React from 'react'; import { View, Text, TouchableOpacity } from 'react-native'; +import { connect } from 'react-redux'; +import { getPersonalSettings } from '../actionCreators/app'; import PersonalInfo from '../containers/PersonalInfo/components/PersonalInfo'; +import EditButton from '../globals/EditButton' -export default class PersonalScreen extends React.PureComponent { +export class PersonalScreen extends React.PureComponent { static navigationOptions = { headerTitle: 'Personal Info', - headerRight: ( - alert('This is a button!')}> - Edit - - ) + headerRight: () + } + componentDidMount() { + this.createSettingsArrays(); + } + + createSettingsArrays = async (settings) => { + await this.props.getPersonalSettings(); } render() { return ( @@ -17,3 +23,13 @@ export default class PersonalScreen extends React.PureComponent { ); } } + +const mapStateToProps = state => ({ + settings: state.app.personalSettings +}) + +const mapDispatchToProps = dispatch => ({ + getPersonalSettings: () => dispatch(getPersonalSettings()), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(PersonalScreen) \ No newline at end of file