diff --git a/Sources/allin/.DS_Store b/Sources/allin/.DS_Store index 542f748..081a007 100644 Binary files a/Sources/allin/.DS_Store and b/Sources/allin/.DS_Store differ diff --git a/Sources/allin/allin.xcodeproj/project.pbxproj b/Sources/allin/allin.xcodeproj/project.pbxproj index 608d1ab..1cc168c 100644 --- a/Sources/allin/allin.xcodeproj/project.pbxproj +++ b/Sources/allin/allin.xcodeproj/project.pbxproj @@ -7,124 +7,139 @@ objects = { /* Begin PBXBuildFile section */ - D92EC57C2ABADA2800CCD30E /* CoinCounterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92EC57B2ABADA2800CCD30E /* CoinCounterView.swift */; }; - D98C4D642AB9D017007A6B4D /* AllInApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D632AB9D017007A6B4D /* AllInApp.swift */; }; - D98C4D662AB9D017007A6B4D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D652AB9D017007A6B4D /* ContentView.swift */; }; - D98C4D682AB9D018007A6B4D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D98C4D672AB9D018007A6B4D /* Assets.xcassets */; }; - D98C4D6B2AB9D018007A6B4D /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D98C4D6A2AB9D018007A6B4D /* Preview Assets.xcassets */; }; - D98C4D752AB9D019007A6B4D /* AllInTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D742AB9D019007A6B4D /* AllInTests.swift */; }; - D98C4D7F2AB9D019007A6B4D /* AllInUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D7E2AB9D019007A6B4D /* AllInUITests.swift */; }; - D98C4D812AB9D019007A6B4D /* AllInUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D802AB9D019007A6B4D /* AllInUITestsLaunchTests.swift */; }; - D98C4D8E2AB9D440007A6B4D /* TopBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D98C4D8D2AB9D440007A6B4D /* TopBarView.swift */; }; - EC000A7B2AC7450200A8BE26 /* CreationBetScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC000A7A2AC7450200A8BE26 /* CreationBetScreen.swift */; }; - EC2C1EEB2AC08BE80091D57C /* BetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2C1EEA2AC08BE80091D57C /* BetCard.swift */; }; - EC2C1EED2AC093820091D57C /* TextCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2C1EEC2AC093820091D57C /* TextCapsule.swift */; }; - EC2C1EEF2AC098D30091D57C /* UsersPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2C1EEE2AC098D30091D57C /* UsersPreview.swift */; }; - EC31955E2ACD3B8E00D0A4DC /* ConfidentialityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC31955D2ACD3B8E00D0A4DC /* ConfidentialityView.swift */; }; - EC3737E42AC2F5FB00E6BDB5 /* ChoiceCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3737E32AC2F5FB00E6BDB5 /* ChoiceCapsule.swift */; }; - EC3737E62AC41DB000E6BDB5 /* WinModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3737E52AC41DB000E6BDB5 /* WinModal.swift */; }; - EC3737E82AC5A53B00E6BDB5 /* AllcoinsCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3737E72AC5A53B00E6BDB5 /* AllcoinsCapsule.swift */; }; - EC3737EA2AC5A58B00E6BDB5 /* RecapBetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3737E92AC5A58B00E6BDB5 /* RecapBetCard.swift */; }; - EC4163512AE126B3001E620D /* DropDownMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC4163502AE126B3001E620D /* DropDownMenuView.swift */; }; - EC46D7DD2ABCCC270030AC04 /* MenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC46D7DC2ABCCC270030AC04 /* MenuView.swift */; }; - EC46D7DF2ABCE0A20030AC04 /* ParameterMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC46D7DE2ABCE0A20030AC04 /* ParameterMenuView.swift */; }; - EC508A9F2AED3C2A000FA2FB /* DependencyInjection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC508A9E2AED3C2A000FA2FB /* DependencyInjection.swift */; }; - EC508AA12AED3D89000FA2FB /* IAuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC508AA02AED3D89000FA2FB /* IAuthService.swift */; }; - EC50BF962ABF4D3300197685 /* SplashScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC50BF952ABF4D3300197685 /* SplashScreen.swift */; }; - EC50BF982ABF541B00197685 /* WelcomeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC50BF972ABF541B00197685 /* WelcomeScreen.swift */; }; - EC55565D2AD6E5B900E5CA3F /* AuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC55565C2AD6E5B900E5CA3F /* AuthService.swift */; }; - EC8601F52AC37919004262C8 /* HomeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC8601F42AC37919004262C8 /* HomeScreen.swift */; }; - EC87FCD62ABBA24000363986 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC87FCD52ABBA24000363986 /* Extensions.swift */; }; - EC87FCD92ABBA60900363986 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC87FCD82ABBA60900363986 /* Colors.swift */; }; - EC87FCDB2ABBA6AC00363986 /* TrendingBetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC87FCDA2ABBA6AC00363986 /* TrendingBetCard.swift */; }; - EC9A45B02ABDF4A800125D41 /* BetScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9A45AF2ABDF4A800125D41 /* BetScreen.swift */; }; - ECA701092AC3FE3300532444 /* RankingScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA701082AC3FE3300532444 /* RankingScreen.swift */; }; - ECA7010B2AC4003400532444 /* RankingRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA7010A2AC4003400532444 /* RankingRowView.swift */; }; - ECA7010D2AC4948600532444 /* FriendsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA7010C2AC4948600532444 /* FriendsScreen.swift */; }; - ECA7010F2AC4949D00532444 /* FriendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA7010E2AC4949D00532444 /* FriendView.swift */; }; - ECCD6DDB2AD7233F00F947C4 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCD6DDA2AD7233F00F947C4 /* User.swift */; }; - ECDF624A2AC1CAFD00BA8213 /* RegisterScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECDF62492AC1CAFD00BA8213 /* RegisterScreen.swift */; }; - ECFC54442AC0C39E00195760 /* LoginScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECFC54432AC0C39E00195760 /* LoginScreen.swift */; }; + EC0193782B25BF16005D81E6 /* AllcoinsCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0193772B25BF16005D81E6 /* AllcoinsCapsule.swift */; }; + EC01937A2B25C12B005D81E6 /* BetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0193792B25C12B005D81E6 /* BetCard.swift */; }; + EC01937C2B25C2A8005D81E6 /* AllcoinsCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC01937B2B25C2A8005D81E6 /* AllcoinsCounter.swift */; }; + EC01937E2B25C52E005D81E6 /* TopBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC01937D2B25C52E005D81E6 /* TopBar.swift */; }; + EC3077072B24CB840060E34D /* SplashView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3077062B24CB840060E34D /* SplashView.swift */; }; + EC3077092B24CF7F0060E34D /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3077082B24CF7F0060E34D /* Colors.swift */; }; + EC30770B2B24D9160060E34D /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC30770A2B24D9160060E34D /* WelcomeView.swift */; }; + EC30770D2B24DB7A0060E34D /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC30770C2B24DB7A0060E34D /* Extensions.swift */; }; + EC30770F2B24FCB00060E34D /* RegisterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC30770E2B24FCB00060E34D /* RegisterView.swift */; }; + EC650A422B25C817003AFCAD /* Friend.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A412B25C817003AFCAD /* Friend.swift */; }; + EC650A442B25CDF3003AFCAD /* ParameterMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A432B25CDF3003AFCAD /* ParameterMenu.swift */; }; + EC650A462B25D686003AFCAD /* RankingRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A452B25D686003AFCAD /* RankingRow.swift */; }; + EC650A482B25DCFF003AFCAD /* UsersPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A472B25DCFF003AFCAD /* UsersPreview.swift */; }; + EC650A4A2B25DD58003AFCAD /* FriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A492B25DD58003AFCAD /* FriendsView.swift */; }; + EC650A4C2B25E9C7003AFCAD /* RankingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A4B2B25E9C7003AFCAD /* RankingView.swift */; }; + EC650A4E2B278EDB003AFCAD /* TrendingBetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A4D2B278EDB003AFCAD /* TrendingBetCard.swift */; }; + EC650A502B2793D5003AFCAD /* TextCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A4F2B2793D5003AFCAD /* TextCapsule.swift */; }; + EC650A522B2794DD003AFCAD /* BetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A512B2794DD003AFCAD /* BetView.swift */; }; + EC650A542B279545003AFCAD /* ChoiceCapsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A532B279545003AFCAD /* ChoiceCapsule.swift */; }; + EC650A562B279D68003AFCAD /* WinModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A552B279D68003AFCAD /* WinModal.swift */; }; + EC650A582B279D9D003AFCAD /* RecapBetCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC650A572B279D9D003AFCAD /* RecapBetCard.swift */; }; + EC650A622B28CB72003AFCAD /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EC650A612B28CB72003AFCAD /* Launch Screen.storyboard */; }; + EC6B969C2B24B4CC00FC1C58 /* AllInApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B969B2B24B4CC00FC1C58 /* AllInApp.swift */; }; + EC6B969E2B24B4CC00FC1C58 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B969D2B24B4CC00FC1C58 /* ContentView.swift */; }; + EC6B96A02B24B4CC00FC1C58 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6B969F2B24B4CC00FC1C58 /* Assets.xcassets */; }; + EC6B96A32B24B4CC00FC1C58 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6B96A22B24B4CC00FC1C58 /* Preview Assets.xcassets */; }; + EC6B96AD2B24B4CC00FC1C58 /* AllInTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96AC2B24B4CC00FC1C58 /* AllInTests.swift */; }; + EC6B96B72B24B4CC00FC1C58 /* AllInUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96B62B24B4CC00FC1C58 /* AllInUITests.swift */; }; + EC6B96B92B24B4CC00FC1C58 /* AllInUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96B82B24B4CC00FC1C58 /* AllInUITestsLaunchTests.swift */; }; + EC6B96C72B24B5A100FC1C58 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96C62B24B5A100FC1C58 /* User.swift */; }; + EC6B96C92B24B69B00FC1C58 /* DependancyInjection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96C82B24B69B00FC1C58 /* DependancyInjection.swift */; }; + EC6B96CC2B24B7E500FC1C58 /* IAuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96CB2B24B7E500FC1C58 /* IAuthService.swift */; }; + EC6B96CF2B24B8D900FC1C58 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96CE2B24B8D900FC1C58 /* Config.swift */; }; + EC6B96D12B24BAE800FC1C58 /* AuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96D02B24BAE800FC1C58 /* AuthService.swift */; }; + EC6B96D52B24BE0E00FC1C58 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96D42B24BE0E00FC1C58 /* MainView.swift */; }; + EC6B96D82B24BF2100FC1C58 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6B96D72B24BF2100FC1C58 /* Menu.swift */; }; + EC7A882B2B28D1E0004F226A /* DropDownMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7A882A2B28D1E0004F226A /* DropDownMenu.swift */; }; + EC7A882D2B28D8A1004F226A /* CreationBetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7A882C2B28D8A1004F226A /* CreationBetView.swift */; }; + EC7A882F2B28E6BE004F226A /* ConfidentialityButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7A882E2B28E6BE004F226A /* ConfidentialityButton.swift */; }; + EC89F7BD2B250D66003821CE /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC89F7BC2B250D66003821CE /* LoginView.swift */; }; + ECA9D1C92B2D9ADA0076E0EC /* UserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9D1C82B2D9ADA0076E0EC /* UserInfo.swift */; }; + ECA9D1CB2B2DA2320076E0EC /* DropDownFriends.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9D1CA2B2DA2320076E0EC /* DropDownFriends.swift */; }; + ECB7BC682B2F1ADF002A6654 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB7BC672B2F1ADF002A6654 /* LoginViewModel.swift */; }; + ECB7BC6A2B2F410A002A6654 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB7BC692B2F410A002A6654 /* AppDelegate.swift */; }; + ECB7BC6C2B2F43EE002A6654 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB7BC6B2B2F43EE002A6654 /* AppState.swift */; }; + ECB7BC702B336E28002A6654 /* RegisterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB7BC6F2B336E28002A6654 /* RegisterViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - D98C4D712AB9D019007A6B4D /* PBXContainerItemProxy */ = { + EC6B96A92B24B4CC00FC1C58 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D98C4D582AB9D017007A6B4D /* Project object */; + containerPortal = EC6B96902B24B4CC00FC1C58 /* Project object */; proxyType = 1; - remoteGlobalIDString = D98C4D5F2AB9D017007A6B4D; + remoteGlobalIDString = EC6B96972B24B4CC00FC1C58; remoteInfo = AllIn; }; - D98C4D7B2AB9D019007A6B4D /* PBXContainerItemProxy */ = { + EC6B96B32B24B4CC00FC1C58 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D98C4D582AB9D017007A6B4D /* Project object */; + containerPortal = EC6B96902B24B4CC00FC1C58 /* Project object */; proxyType = 1; - remoteGlobalIDString = D98C4D5F2AB9D017007A6B4D; + remoteGlobalIDString = EC6B96972B24B4CC00FC1C58; remoteInfo = AllIn; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - D92EC57B2ABADA2800CCD30E /* CoinCounterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CoinCounterView.swift; path = allin/Views/CoinCounterView.swift; sourceTree = SOURCE_ROOT; }; - D98C4D602AB9D017007A6B4D /* AllIn.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AllIn.app; sourceTree = BUILT_PRODUCTS_DIR; }; - D98C4D632AB9D017007A6B4D /* AllInApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInApp.swift; sourceTree = ""; }; - D98C4D652AB9D017007A6B4D /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - D98C4D672AB9D018007A6B4D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - D98C4D6A2AB9D018007A6B4D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - D98C4D702AB9D019007A6B4D /* AllInTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllInTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D98C4D742AB9D019007A6B4D /* AllInTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInTests.swift; sourceTree = ""; }; - D98C4D7A2AB9D019007A6B4D /* AllInUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllInUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D98C4D7E2AB9D019007A6B4D /* AllInUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInUITests.swift; sourceTree = ""; }; - D98C4D802AB9D019007A6B4D /* AllInUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInUITestsLaunchTests.swift; sourceTree = ""; }; - D98C4D8D2AB9D440007A6B4D /* TopBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopBarView.swift; sourceTree = ""; }; - EC000A7A2AC7450200A8BE26 /* CreationBetScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CreationBetScreen.swift; path = allin/Screens/CreationBetScreen.swift; sourceTree = SOURCE_ROOT; }; - EC0EA7AF2ABDAAD1006BA4A0 /* PlusJakartaSans.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = PlusJakartaSans.ttf; sourceTree = ""; }; - EC2C1EEA2AC08BE80091D57C /* BetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BetCard.swift; path = allin/Views/BetCard.swift; sourceTree = SOURCE_ROOT; }; - EC2C1EEC2AC093820091D57C /* TextCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TextCapsule.swift; path = allin/Views/TextCapsule.swift; sourceTree = SOURCE_ROOT; }; - EC2C1EEE2AC098D30091D57C /* UsersPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UsersPreview.swift; path = allin/Views/UsersPreview.swift; sourceTree = SOURCE_ROOT; }; - EC31955D2ACD3B8E00D0A4DC /* ConfidentialityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ConfidentialityView.swift; path = allin/Views/ConfidentialityView.swift; sourceTree = SOURCE_ROOT; }; - EC3737E32AC2F5FB00E6BDB5 /* ChoiceCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ChoiceCapsule.swift; path = allin/Views/ChoiceCapsule.swift; sourceTree = SOURCE_ROOT; }; - EC3737E52AC41DB000E6BDB5 /* WinModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WinModal.swift; path = allin/Screens/WinModal.swift; sourceTree = SOURCE_ROOT; }; - EC3737E72AC5A53B00E6BDB5 /* AllcoinsCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AllcoinsCapsule.swift; path = allin/Views/AllcoinsCapsule.swift; sourceTree = SOURCE_ROOT; }; - EC3737E92AC5A58B00E6BDB5 /* RecapBetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RecapBetCard.swift; path = allin/Views/RecapBetCard.swift; sourceTree = SOURCE_ROOT; }; - EC4163502AE126B3001E620D /* DropDownMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DropDownMenuView.swift; path = allin/Views/DropDownMenuView.swift; sourceTree = SOURCE_ROOT; }; - EC46D7DC2ABCCC270030AC04 /* MenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MenuView.swift; path = allin/Views/MenuView.swift; sourceTree = SOURCE_ROOT; }; - EC46D7DE2ABCE0A20030AC04 /* ParameterMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ParameterMenuView.swift; path = allin/Views/ParameterMenuView.swift; sourceTree = SOURCE_ROOT; }; - EC508A9E2AED3C2A000FA2FB /* DependencyInjection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DependencyInjection.swift; path = allin/Models/DependencyInjection.swift; sourceTree = SOURCE_ROOT; }; - EC508AA02AED3D89000FA2FB /* IAuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = IAuthService.swift; path = allin/Services/IAuthService.swift; sourceTree = SOURCE_ROOT; }; - EC50BF952ABF4D3300197685 /* SplashScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SplashScreen.swift; path = allin/Screens/SplashScreen.swift; sourceTree = SOURCE_ROOT; }; - EC50BF972ABF541B00197685 /* WelcomeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WelcomeScreen.swift; path = allin/Screens/WelcomeScreen.swift; sourceTree = SOURCE_ROOT; }; - EC55565C2AD6E5B900E5CA3F /* AuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AuthService.swift; path = allin/Services/AuthService.swift; sourceTree = SOURCE_ROOT; }; - EC8601F42AC37919004262C8 /* HomeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HomeScreen.swift; path = allin/Screens/HomeScreen.swift; sourceTree = SOURCE_ROOT; }; - EC87FCD52ABBA24000363986 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = allin/Extensions/Extensions.swift; sourceTree = SOURCE_ROOT; }; - EC87FCD82ABBA60900363986 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Colors.swift; path = allin/Ressources/Colors.swift; sourceTree = SOURCE_ROOT; }; - EC87FCDA2ABBA6AC00363986 /* TrendingBetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TrendingBetCard.swift; path = allin/Views/TrendingBetCard.swift; sourceTree = SOURCE_ROOT; }; - EC9A45AF2ABDF4A800125D41 /* BetScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BetScreen.swift; path = allin/Screens/BetScreen.swift; sourceTree = SOURCE_ROOT; }; - ECA701082AC3FE3300532444 /* RankingScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RankingScreen.swift; path = allin/Screens/RankingScreen.swift; sourceTree = SOURCE_ROOT; }; - ECA7010A2AC4003400532444 /* RankingRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RankingRowView.swift; path = allin/Views/RankingRowView.swift; sourceTree = SOURCE_ROOT; }; - ECA7010C2AC4948600532444 /* FriendsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = FriendsScreen.swift; path = allin/Screens/FriendsScreen.swift; sourceTree = SOURCE_ROOT; }; - ECA7010E2AC4949D00532444 /* FriendView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = FriendView.swift; path = allin/Views/FriendView.swift; sourceTree = SOURCE_ROOT; }; - ECCD6DDA2AD7233F00F947C4 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = User.swift; path = allin/Models/User.swift; sourceTree = SOURCE_ROOT; }; - ECDF62492AC1CAFD00BA8213 /* RegisterScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RegisterScreen.swift; path = allin/Screens/RegisterScreen.swift; sourceTree = SOURCE_ROOT; }; - ECFC54432AC0C39E00195760 /* LoginScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LoginScreen.swift; path = allin/Screens/LoginScreen.swift; sourceTree = SOURCE_ROOT; }; + EC0193772B25BF16005D81E6 /* AllcoinsCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllcoinsCapsule.swift; sourceTree = ""; }; + EC0193792B25C12B005D81E6 /* BetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BetCard.swift; sourceTree = ""; }; + EC01937B2B25C2A8005D81E6 /* AllcoinsCounter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllcoinsCounter.swift; sourceTree = ""; }; + EC01937D2B25C52E005D81E6 /* TopBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopBar.swift; sourceTree = ""; }; + EC3077062B24CB840060E34D /* SplashView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashView.swift; sourceTree = ""; }; + EC3077082B24CF7F0060E34D /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; + EC30770A2B24D9160060E34D /* WelcomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeView.swift; sourceTree = ""; }; + EC30770C2B24DB7A0060E34D /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; + EC30770E2B24FCB00060E34D /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; + EC650A412B25C817003AFCAD /* Friend.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Friend.swift; sourceTree = ""; }; + EC650A432B25CDF3003AFCAD /* ParameterMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParameterMenu.swift; sourceTree = ""; }; + EC650A452B25D686003AFCAD /* RankingRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RankingRow.swift; sourceTree = ""; }; + EC650A472B25DCFF003AFCAD /* UsersPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsersPreview.swift; sourceTree = ""; }; + EC650A492B25DD58003AFCAD /* FriendsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendsView.swift; sourceTree = ""; }; + EC650A4B2B25E9C7003AFCAD /* RankingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RankingView.swift; sourceTree = ""; }; + EC650A4D2B278EDB003AFCAD /* TrendingBetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingBetCard.swift; sourceTree = ""; }; + EC650A4F2B2793D5003AFCAD /* TextCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextCapsule.swift; sourceTree = ""; }; + EC650A512B2794DD003AFCAD /* BetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BetView.swift; sourceTree = ""; }; + EC650A532B279545003AFCAD /* ChoiceCapsule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChoiceCapsule.swift; sourceTree = ""; }; + EC650A552B279D68003AFCAD /* WinModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WinModal.swift; sourceTree = ""; }; + EC650A572B279D9D003AFCAD /* RecapBetCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecapBetCard.swift; sourceTree = ""; }; + EC650A612B28CB72003AFCAD /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + EC6B96982B24B4CC00FC1C58 /* AllIn.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AllIn.app; sourceTree = BUILT_PRODUCTS_DIR; }; + EC6B969B2B24B4CC00FC1C58 /* AllInApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInApp.swift; sourceTree = ""; }; + EC6B969D2B24B4CC00FC1C58 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + EC6B969F2B24B4CC00FC1C58 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + EC6B96A22B24B4CC00FC1C58 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + EC6B96A82B24B4CC00FC1C58 /* AllInTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllInTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + EC6B96AC2B24B4CC00FC1C58 /* AllInTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInTests.swift; sourceTree = ""; }; + EC6B96B22B24B4CC00FC1C58 /* AllInUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllInUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + EC6B96B62B24B4CC00FC1C58 /* AllInUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInUITests.swift; sourceTree = ""; }; + EC6B96B82B24B4CC00FC1C58 /* AllInUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllInUITestsLaunchTests.swift; sourceTree = ""; }; + EC6B96C62B24B5A100FC1C58 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + EC6B96C82B24B69B00FC1C58 /* DependancyInjection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DependancyInjection.swift; sourceTree = ""; }; + EC6B96CB2B24B7E500FC1C58 /* IAuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IAuthService.swift; sourceTree = ""; }; + EC6B96CE2B24B8D900FC1C58 /* Config.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = ""; }; + EC6B96D02B24BAE800FC1C58 /* AuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthService.swift; sourceTree = ""; }; + EC6B96D42B24BE0E00FC1C58 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; + EC6B96D72B24BF2100FC1C58 /* Menu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Menu.swift; sourceTree = ""; }; + EC7A882A2B28D1E0004F226A /* DropDownMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropDownMenu.swift; sourceTree = ""; }; + EC7A882C2B28D8A1004F226A /* CreationBetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreationBetView.swift; sourceTree = ""; }; + EC7A882E2B28E6BE004F226A /* ConfidentialityButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfidentialityButton.swift; sourceTree = ""; }; + EC89F7BC2B250D66003821CE /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; + ECA9D1C82B2D9ADA0076E0EC /* UserInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfo.swift; sourceTree = ""; }; + ECA9D1CA2B2DA2320076E0EC /* DropDownFriends.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropDownFriends.swift; sourceTree = ""; }; + ECB7BC672B2F1ADF002A6654 /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = ""; }; + ECB7BC692B2F410A002A6654 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + ECB7BC6B2B2F43EE002A6654 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = ""; }; + ECB7BC6F2B336E28002A6654 /* RegisterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewModel.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - D98C4D5D2AB9D017007A6B4D /* Frameworks */ = { + EC6B96952B24B4CC00FC1C58 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D6D2AB9D019007A6B4D /* Frameworks */ = { + EC6B96A52B24B4CC00FC1C58 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D772AB9D019007A6B4D /* Frameworks */ = { + EC6B96AF2B24B4CC00FC1C58 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -134,231 +149,239 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - D92EC5782ABAC6B900CCD30E /* Views */ = { + EC6B968F2B24B4CC00FC1C58 = { isa = PBXGroup; children = ( - D98C4D8D2AB9D440007A6B4D /* TopBarView.swift */, - D92EC57B2ABADA2800CCD30E /* CoinCounterView.swift */, - EC87FCDA2ABBA6AC00363986 /* TrendingBetCard.swift */, - EC46D7DC2ABCCC270030AC04 /* MenuView.swift */, - EC46D7DE2ABCE0A20030AC04 /* ParameterMenuView.swift */, - EC2C1EEA2AC08BE80091D57C /* BetCard.swift */, - EC2C1EEC2AC093820091D57C /* TextCapsule.swift */, - EC2C1EEE2AC098D30091D57C /* UsersPreview.swift */, - EC3737E32AC2F5FB00E6BDB5 /* ChoiceCapsule.swift */, - ECA7010A2AC4003400532444 /* RankingRowView.swift */, - ECA7010E2AC4949D00532444 /* FriendView.swift */, - EC3737E72AC5A53B00E6BDB5 /* AllcoinsCapsule.swift */, - EC3737E92AC5A58B00E6BDB5 /* RecapBetCard.swift */, - EC31955D2ACD3B8E00D0A4DC /* ConfidentialityView.swift */, - EC4163502AE126B3001E620D /* DropDownMenuView.swift */, - ); - path = Views; - sourceTree = ""; - }; - D98C4D572AB9D017007A6B4D = { - isa = PBXGroup; - children = ( - D98C4D622AB9D017007A6B4D /* AllIn */, - D98C4D732AB9D019007A6B4D /* AllInTests */, - D98C4D7D2AB9D019007A6B4D /* AllInUITests */, - D98C4D612AB9D017007A6B4D /* Products */, + EC6B969A2B24B4CC00FC1C58 /* AllIn */, + EC6B96AB2B24B4CC00FC1C58 /* AllInTests */, + EC6B96B52B24B4CC00FC1C58 /* AllInUITests */, + EC6B96992B24B4CC00FC1C58 /* Products */, ); sourceTree = ""; }; - D98C4D612AB9D017007A6B4D /* Products */ = { + EC6B96992B24B4CC00FC1C58 /* Products */ = { isa = PBXGroup; children = ( - D98C4D602AB9D017007A6B4D /* AllIn.app */, - D98C4D702AB9D019007A6B4D /* AllInTests.xctest */, - D98C4D7A2AB9D019007A6B4D /* AllInUITests.xctest */, + EC6B96982B24B4CC00FC1C58 /* AllIn.app */, + EC6B96A82B24B4CC00FC1C58 /* AllInTests.xctest */, + EC6B96B22B24B4CC00FC1C58 /* AllInUITests.xctest */, ); name = Products; sourceTree = ""; }; - D98C4D622AB9D017007A6B4D /* AllIn */ = { + EC6B969A2B24B4CC00FC1C58 /* AllIn */ = { isa = PBXGroup; children = ( - ECCD6DD72AD7227500F947C4 /* Models */, - EC55565B2AD6E59C00E5CA3F /* Services */, - EC9A45AE2ABDF47A00125D41 /* Screens */, - EC0EA7AD2ABDAAAC006BA4A0 /* Fonts */, - EC87FCD72ABBA5F200363986 /* Ressources */, - ECF816C72ABB51E300DE30A4 /* Extensions */, - D92EC5782ABAC6B900CCD30E /* Views */, - D98C4D632AB9D017007A6B4D /* AllInApp.swift */, - D98C4D652AB9D017007A6B4D /* ContentView.swift */, - D98C4D672AB9D018007A6B4D /* Assets.xcassets */, - D98C4D692AB9D018007A6B4D /* Preview Content */, + ECB7BC662B2F1AAD002A6654 /* ViewModels */, + EC6B96D62B24BEBD00FC1C58 /* Components */, + EC6B96D32B24BC6700FC1C58 /* Views */, + EC6B96D22B24BC4F00FC1C58 /* Extensions */, + EC6B96CD2B24B8A300FC1C58 /* Ressources */, + EC6B96CA2B24B7B300FC1C58 /* Services */, + EC6B96C52B24B58700FC1C58 /* Models */, + EC6B969B2B24B4CC00FC1C58 /* AllInApp.swift */, + EC6B969D2B24B4CC00FC1C58 /* ContentView.swift */, + EC6B969F2B24B4CC00FC1C58 /* Assets.xcassets */, + EC6B96A12B24B4CC00FC1C58 /* Preview Content */, + EC650A612B28CB72003AFCAD /* Launch Screen.storyboard */, + ECB7BC692B2F410A002A6654 /* AppDelegate.swift */, + ECB7BC6B2B2F43EE002A6654 /* AppState.swift */, ); path = AllIn; sourceTree = ""; }; - D98C4D692AB9D018007A6B4D /* Preview Content */ = { + EC6B96A12B24B4CC00FC1C58 /* Preview Content */ = { isa = PBXGroup; children = ( - D98C4D6A2AB9D018007A6B4D /* Preview Assets.xcassets */, + EC6B96A22B24B4CC00FC1C58 /* Preview Assets.xcassets */, ); path = "Preview Content"; sourceTree = ""; }; - D98C4D732AB9D019007A6B4D /* AllInTests */ = { + EC6B96AB2B24B4CC00FC1C58 /* AllInTests */ = { isa = PBXGroup; children = ( - D98C4D742AB9D019007A6B4D /* AllInTests.swift */, + EC6B96AC2B24B4CC00FC1C58 /* AllInTests.swift */, ); path = AllInTests; sourceTree = ""; }; - D98C4D7D2AB9D019007A6B4D /* AllInUITests */ = { + EC6B96B52B24B4CC00FC1C58 /* AllInUITests */ = { isa = PBXGroup; children = ( - D98C4D7E2AB9D019007A6B4D /* AllInUITests.swift */, - D98C4D802AB9D019007A6B4D /* AllInUITestsLaunchTests.swift */, + EC6B96B62B24B4CC00FC1C58 /* AllInUITests.swift */, + EC6B96B82B24B4CC00FC1C58 /* AllInUITestsLaunchTests.swift */, ); path = AllInUITests; sourceTree = ""; }; - EC0EA7AD2ABDAAAC006BA4A0 /* Fonts */ = { + EC6B96C52B24B58700FC1C58 /* Models */ = { isa = PBXGroup; children = ( - EC0EA7AF2ABDAAD1006BA4A0 /* PlusJakartaSans.ttf */, + EC6B96C62B24B5A100FC1C58 /* User.swift */, + EC6B96C82B24B69B00FC1C58 /* DependancyInjection.swift */, ); - path = Fonts; + path = Models; sourceTree = ""; }; - EC55565B2AD6E59C00E5CA3F /* Services */ = { + EC6B96CA2B24B7B300FC1C58 /* Services */ = { isa = PBXGroup; children = ( - EC55565C2AD6E5B900E5CA3F /* AuthService.swift */, - EC508AA02AED3D89000FA2FB /* IAuthService.swift */, + EC6B96CB2B24B7E500FC1C58 /* IAuthService.swift */, + EC6B96D02B24BAE800FC1C58 /* AuthService.swift */, ); path = Services; sourceTree = ""; }; - EC87FCD72ABBA5F200363986 /* Ressources */ = { + EC6B96CD2B24B8A300FC1C58 /* Ressources */ = { isa = PBXGroup; children = ( - EC87FCD82ABBA60900363986 /* Colors.swift */, + EC6B96CE2B24B8D900FC1C58 /* Config.swift */, + EC3077082B24CF7F0060E34D /* Colors.swift */, ); path = Ressources; sourceTree = ""; }; - EC9A45AE2ABDF47A00125D41 /* Screens */ = { + EC6B96D22B24BC4F00FC1C58 /* Extensions */ = { isa = PBXGroup; children = ( - EC9A45AF2ABDF4A800125D41 /* BetScreen.swift */, - EC50BF952ABF4D3300197685 /* SplashScreen.swift */, - EC50BF972ABF541B00197685 /* WelcomeScreen.swift */, - ECFC54432AC0C39E00195760 /* LoginScreen.swift */, - ECDF62492AC1CAFD00BA8213 /* RegisterScreen.swift */, - EC8601F42AC37919004262C8 /* HomeScreen.swift */, - ECA701082AC3FE3300532444 /* RankingScreen.swift */, - ECA7010C2AC4948600532444 /* FriendsScreen.swift */, - EC3737E52AC41DB000E6BDB5 /* WinModal.swift */, - EC000A7A2AC7450200A8BE26 /* CreationBetScreen.swift */, - ); - path = Screens; + EC30770C2B24DB7A0060E34D /* Extensions.swift */, + ); + path = Extensions; sourceTree = ""; }; - ECCD6DD72AD7227500F947C4 /* Models */ = { + EC6B96D32B24BC6700FC1C58 /* Views */ = { isa = PBXGroup; children = ( - ECCD6DDA2AD7233F00F947C4 /* User.swift */, - EC508A9E2AED3C2A000FA2FB /* DependencyInjection.swift */, + EC6B96D42B24BE0E00FC1C58 /* MainView.swift */, + EC3077062B24CB840060E34D /* SplashView.swift */, + EC30770A2B24D9160060E34D /* WelcomeView.swift */, + EC30770E2B24FCB00060E34D /* RegisterView.swift */, + EC89F7BC2B250D66003821CE /* LoginView.swift */, + EC650A492B25DD58003AFCAD /* FriendsView.swift */, + EC650A4B2B25E9C7003AFCAD /* RankingView.swift */, + EC650A512B2794DD003AFCAD /* BetView.swift */, + EC7A882C2B28D8A1004F226A /* CreationBetView.swift */, ); - path = Models; + path = Views; sourceTree = ""; }; - ECF816C72ABB51E300DE30A4 /* Extensions */ = { + EC6B96D62B24BEBD00FC1C58 /* Components */ = { isa = PBXGroup; children = ( - EC87FCD52ABBA24000363986 /* Extensions.swift */, + EC6B96D72B24BF2100FC1C58 /* Menu.swift */, + EC0193772B25BF16005D81E6 /* AllcoinsCapsule.swift */, + EC0193792B25C12B005D81E6 /* BetCard.swift */, + EC01937B2B25C2A8005D81E6 /* AllcoinsCounter.swift */, + EC01937D2B25C52E005D81E6 /* TopBar.swift */, + EC650A412B25C817003AFCAD /* Friend.swift */, + EC650A432B25CDF3003AFCAD /* ParameterMenu.swift */, + EC650A452B25D686003AFCAD /* RankingRow.swift */, + EC650A472B25DCFF003AFCAD /* UsersPreview.swift */, + EC650A4D2B278EDB003AFCAD /* TrendingBetCard.swift */, + EC650A4F2B2793D5003AFCAD /* TextCapsule.swift */, + EC650A532B279545003AFCAD /* ChoiceCapsule.swift */, + EC650A552B279D68003AFCAD /* WinModal.swift */, + EC650A572B279D9D003AFCAD /* RecapBetCard.swift */, + EC7A882A2B28D1E0004F226A /* DropDownMenu.swift */, + EC7A882E2B28E6BE004F226A /* ConfidentialityButton.swift */, + ECA9D1C82B2D9ADA0076E0EC /* UserInfo.swift */, + ECA9D1CA2B2DA2320076E0EC /* DropDownFriends.swift */, + ); + path = Components; + sourceTree = ""; + }; + ECB7BC662B2F1AAD002A6654 /* ViewModels */ = { + isa = PBXGroup; + children = ( + ECB7BC672B2F1ADF002A6654 /* LoginViewModel.swift */, + ECB7BC6F2B336E28002A6654 /* RegisterViewModel.swift */, ); - path = Extensions; + path = ViewModels; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - D98C4D5F2AB9D017007A6B4D /* AllIn */ = { + EC6B96972B24B4CC00FC1C58 /* AllIn */ = { isa = PBXNativeTarget; - buildConfigurationList = D98C4D842AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllIn" */; + buildConfigurationList = EC6B96BC2B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllIn" */; buildPhases = ( - D98C4D5C2AB9D017007A6B4D /* Sources */, - D98C4D5D2AB9D017007A6B4D /* Frameworks */, - D98C4D5E2AB9D017007A6B4D /* Resources */, + EC6B96942B24B4CC00FC1C58 /* Sources */, + EC6B96952B24B4CC00FC1C58 /* Frameworks */, + EC6B96962B24B4CC00FC1C58 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = AllIn; + packageProductDependencies = ( + ); productName = AllIn; - productReference = D98C4D602AB9D017007A6B4D /* AllIn.app */; + productReference = EC6B96982B24B4CC00FC1C58 /* AllIn.app */; productType = "com.apple.product-type.application"; }; - D98C4D6F2AB9D019007A6B4D /* AllInTests */ = { + EC6B96A72B24B4CC00FC1C58 /* AllInTests */ = { isa = PBXNativeTarget; - buildConfigurationList = D98C4D872AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllInTests" */; + buildConfigurationList = EC6B96BF2B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllInTests" */; buildPhases = ( - D98C4D6C2AB9D019007A6B4D /* Sources */, - D98C4D6D2AB9D019007A6B4D /* Frameworks */, - D98C4D6E2AB9D019007A6B4D /* Resources */, + EC6B96A42B24B4CC00FC1C58 /* Sources */, + EC6B96A52B24B4CC00FC1C58 /* Frameworks */, + EC6B96A62B24B4CC00FC1C58 /* Resources */, ); buildRules = ( ); dependencies = ( - D98C4D722AB9D019007A6B4D /* PBXTargetDependency */, + EC6B96AA2B24B4CC00FC1C58 /* PBXTargetDependency */, ); name = AllInTests; productName = AllInTests; - productReference = D98C4D702AB9D019007A6B4D /* AllInTests.xctest */; + productReference = EC6B96A82B24B4CC00FC1C58 /* AllInTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - D98C4D792AB9D019007A6B4D /* AllInUITests */ = { + EC6B96B12B24B4CC00FC1C58 /* AllInUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = D98C4D8A2AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllInUITests" */; + buildConfigurationList = EC6B96C22B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllInUITests" */; buildPhases = ( - D98C4D762AB9D019007A6B4D /* Sources */, - D98C4D772AB9D019007A6B4D /* Frameworks */, - D98C4D782AB9D019007A6B4D /* Resources */, + EC6B96AE2B24B4CC00FC1C58 /* Sources */, + EC6B96AF2B24B4CC00FC1C58 /* Frameworks */, + EC6B96B02B24B4CC00FC1C58 /* Resources */, ); buildRules = ( ); dependencies = ( - D98C4D7C2AB9D019007A6B4D /* PBXTargetDependency */, + EC6B96B42B24B4CC00FC1C58 /* PBXTargetDependency */, ); name = AllInUITests; productName = AllInUITests; - productReference = D98C4D7A2AB9D019007A6B4D /* AllInUITests.xctest */; + productReference = EC6B96B22B24B4CC00FC1C58 /* AllInUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D98C4D582AB9D017007A6B4D /* Project object */ = { + EC6B96902B24B4CC00FC1C58 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1420; - LastUpgradeCheck = 1420; + LastSwiftUpdateCheck = 1430; + LastUpgradeCheck = 1430; TargetAttributes = { - D98C4D5F2AB9D017007A6B4D = { - CreatedOnToolsVersion = 14.2; + EC6B96972B24B4CC00FC1C58 = { + CreatedOnToolsVersion = 14.3.1; }; - D98C4D6F2AB9D019007A6B4D = { - CreatedOnToolsVersion = 14.2; - LastSwiftMigration = 1430; - TestTargetID = D98C4D5F2AB9D017007A6B4D; + EC6B96A72B24B4CC00FC1C58 = { + CreatedOnToolsVersion = 14.3.1; + TestTargetID = EC6B96972B24B4CC00FC1C58; }; - D98C4D792AB9D019007A6B4D = { - CreatedOnToolsVersion = 14.2; - TestTargetID = D98C4D5F2AB9D017007A6B4D; + EC6B96B12B24B4CC00FC1C58 = { + CreatedOnToolsVersion = 14.3.1; + TestTargetID = EC6B96972B24B4CC00FC1C58; }; }; }; - buildConfigurationList = D98C4D5B2AB9D017007A6B4D /* Build configuration list for PBXProject "allin" */; + buildConfigurationList = EC6B96932B24B4CC00FC1C58 /* Build configuration list for PBXProject "AllIn" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -366,36 +389,39 @@ en, Base, ); - mainGroup = D98C4D572AB9D017007A6B4D; - productRefGroup = D98C4D612AB9D017007A6B4D /* Products */; + mainGroup = EC6B968F2B24B4CC00FC1C58; + packageReferences = ( + ); + productRefGroup = EC6B96992B24B4CC00FC1C58 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - D98C4D5F2AB9D017007A6B4D /* AllIn */, - D98C4D6F2AB9D019007A6B4D /* AllInTests */, - D98C4D792AB9D019007A6B4D /* AllInUITests */, + EC6B96972B24B4CC00FC1C58 /* AllIn */, + EC6B96A72B24B4CC00FC1C58 /* AllInTests */, + EC6B96B12B24B4CC00FC1C58 /* AllInUITests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - D98C4D5E2AB9D017007A6B4D /* Resources */ = { + EC6B96962B24B4CC00FC1C58 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D98C4D6B2AB9D018007A6B4D /* Preview Assets.xcassets in Resources */, - D98C4D682AB9D018007A6B4D /* Assets.xcassets in Resources */, + EC650A622B28CB72003AFCAD /* Launch Screen.storyboard in Resources */, + EC6B96A32B24B4CC00FC1C58 /* Preview Assets.xcassets in Resources */, + EC6B96A02B24B4CC00FC1C58 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D6E2AB9D019007A6B4D /* Resources */ = { + EC6B96A62B24B4CC00FC1C58 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D782AB9D019007A6B4D /* Resources */ = { + EC6B96B02B24B4CC00FC1C58 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -405,80 +431,87 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - D98C4D5C2AB9D017007A6B4D /* Sources */ = { + EC6B96942B24B4CC00FC1C58 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ECA7010B2AC4003400532444 /* RankingRowView.swift in Sources */, - EC508AA12AED3D89000FA2FB /* IAuthService.swift in Sources */, - EC31955E2ACD3B8E00D0A4DC /* ConfidentialityView.swift in Sources */, - ECA701092AC3FE3300532444 /* RankingScreen.swift in Sources */, - ECFC54442AC0C39E00195760 /* LoginScreen.swift in Sources */, - ECCD6DDB2AD7233F00F947C4 /* User.swift in Sources */, - EC87FCD62ABBA24000363986 /* Extensions.swift in Sources */, - EC46D7DD2ABCCC270030AC04 /* MenuView.swift in Sources */, - EC2C1EEB2AC08BE80091D57C /* BetCard.swift in Sources */, - ECA7010F2AC4949D00532444 /* FriendView.swift in Sources */, - EC87FCD92ABBA60900363986 /* Colors.swift in Sources */, - EC3737E82AC5A53B00E6BDB5 /* AllcoinsCapsule.swift in Sources */, - EC3737EA2AC5A58B00E6BDB5 /* RecapBetCard.swift in Sources */, - EC55565D2AD6E5B900E5CA3F /* AuthService.swift in Sources */, - D98C4D662AB9D017007A6B4D /* ContentView.swift in Sources */, - EC4163512AE126B3001E620D /* DropDownMenuView.swift in Sources */, - D92EC57C2ABADA2800CCD30E /* CoinCounterView.swift in Sources */, - EC3737E42AC2F5FB00E6BDB5 /* ChoiceCapsule.swift in Sources */, - EC3737E62AC41DB000E6BDB5 /* WinModal.swift in Sources */, - EC2C1EED2AC093820091D57C /* TextCapsule.swift in Sources */, - D98C4D8E2AB9D440007A6B4D /* TopBarView.swift in Sources */, - EC50BF962ABF4D3300197685 /* SplashScreen.swift in Sources */, - EC9A45B02ABDF4A800125D41 /* BetScreen.swift in Sources */, - EC46D7DF2ABCE0A20030AC04 /* ParameterMenuView.swift in Sources */, - ECDF624A2AC1CAFD00BA8213 /* RegisterScreen.swift in Sources */, - EC50BF982ABF541B00197685 /* WelcomeScreen.swift in Sources */, - ECA7010D2AC4948600532444 /* FriendsScreen.swift in Sources */, - EC8601F52AC37919004262C8 /* HomeScreen.swift in Sources */, - D98C4D642AB9D017007A6B4D /* AllInApp.swift in Sources */, - EC2C1EEF2AC098D30091D57C /* UsersPreview.swift in Sources */, - EC87FCDB2ABBA6AC00363986 /* TrendingBetCard.swift in Sources */, - EC000A7B2AC7450200A8BE26 /* CreationBetScreen.swift in Sources */, - EC508A9F2AED3C2A000FA2FB /* DependencyInjection.swift in Sources */, + EC6B96CC2B24B7E500FC1C58 /* IAuthService.swift in Sources */, + EC3077092B24CF7F0060E34D /* Colors.swift in Sources */, + ECB7BC6A2B2F410A002A6654 /* AppDelegate.swift in Sources */, + EC6B969E2B24B4CC00FC1C58 /* ContentView.swift in Sources */, + EC89F7BD2B250D66003821CE /* LoginView.swift in Sources */, + EC650A442B25CDF3003AFCAD /* ParameterMenu.swift in Sources */, + EC30770F2B24FCB00060E34D /* RegisterView.swift in Sources */, + EC650A522B2794DD003AFCAD /* BetView.swift in Sources */, + EC6B969C2B24B4CC00FC1C58 /* AllInApp.swift in Sources */, + EC650A502B2793D5003AFCAD /* TextCapsule.swift in Sources */, + EC650A482B25DCFF003AFCAD /* UsersPreview.swift in Sources */, + EC650A462B25D686003AFCAD /* RankingRow.swift in Sources */, + EC01937A2B25C12B005D81E6 /* BetCard.swift in Sources */, + EC650A422B25C817003AFCAD /* Friend.swift in Sources */, + EC6B96C92B24B69B00FC1C58 /* DependancyInjection.swift in Sources */, + EC7A882F2B28E6BE004F226A /* ConfidentialityButton.swift in Sources */, + ECB7BC702B336E28002A6654 /* RegisterViewModel.swift in Sources */, + EC650A4C2B25E9C7003AFCAD /* RankingView.swift in Sources */, + EC7A882B2B28D1E0004F226A /* DropDownMenu.swift in Sources */, + EC6B96C72B24B5A100FC1C58 /* User.swift in Sources */, + EC7A882D2B28D8A1004F226A /* CreationBetView.swift in Sources */, + EC6B96CF2B24B8D900FC1C58 /* Config.swift in Sources */, + EC30770B2B24D9160060E34D /* WelcomeView.swift in Sources */, + EC30770D2B24DB7A0060E34D /* Extensions.swift in Sources */, + EC6B96D82B24BF2100FC1C58 /* Menu.swift in Sources */, + EC650A4E2B278EDB003AFCAD /* TrendingBetCard.swift in Sources */, + EC0193782B25BF16005D81E6 /* AllcoinsCapsule.swift in Sources */, + EC650A4A2B25DD58003AFCAD /* FriendsView.swift in Sources */, + EC3077072B24CB840060E34D /* SplashView.swift in Sources */, + EC01937E2B25C52E005D81E6 /* TopBar.swift in Sources */, + ECA9D1CB2B2DA2320076E0EC /* DropDownFriends.swift in Sources */, + ECB7BC682B2F1ADF002A6654 /* LoginViewModel.swift in Sources */, + EC6B96D52B24BE0E00FC1C58 /* MainView.swift in Sources */, + EC650A562B279D68003AFCAD /* WinModal.swift in Sources */, + EC6B96D12B24BAE800FC1C58 /* AuthService.swift in Sources */, + EC01937C2B25C2A8005D81E6 /* AllcoinsCounter.swift in Sources */, + EC650A542B279545003AFCAD /* ChoiceCapsule.swift in Sources */, + ECB7BC6C2B2F43EE002A6654 /* AppState.swift in Sources */, + ECA9D1C92B2D9ADA0076E0EC /* UserInfo.swift in Sources */, + EC650A582B279D9D003AFCAD /* RecapBetCard.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D6C2AB9D019007A6B4D /* Sources */ = { + EC6B96A42B24B4CC00FC1C58 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D98C4D752AB9D019007A6B4D /* AllInTests.swift in Sources */, + EC6B96AD2B24B4CC00FC1C58 /* AllInTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D98C4D762AB9D019007A6B4D /* Sources */ = { + EC6B96AE2B24B4CC00FC1C58 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D98C4D7F2AB9D019007A6B4D /* AllInUITests.swift in Sources */, - D98C4D812AB9D019007A6B4D /* AllInUITestsLaunchTests.swift in Sources */, + EC6B96B72B24B4CC00FC1C58 /* AllInUITests.swift in Sources */, + EC6B96B92B24B4CC00FC1C58 /* AllInUITestsLaunchTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - D98C4D722AB9D019007A6B4D /* PBXTargetDependency */ = { + EC6B96AA2B24B4CC00FC1C58 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D98C4D5F2AB9D017007A6B4D /* AllIn */; - targetProxy = D98C4D712AB9D019007A6B4D /* PBXContainerItemProxy */; + target = EC6B96972B24B4CC00FC1C58 /* AllIn */; + targetProxy = EC6B96A92B24B4CC00FC1C58 /* PBXContainerItemProxy */; }; - D98C4D7C2AB9D019007A6B4D /* PBXTargetDependency */ = { + EC6B96B42B24B4CC00FC1C58 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D98C4D5F2AB9D017007A6B4D /* AllIn */; - targetProxy = D98C4D7B2AB9D019007A6B4D /* PBXContainerItemProxy */; + target = EC6B96972B24B4CC00FC1C58 /* AllIn */; + targetProxy = EC6B96B32B24B4CC00FC1C58 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - D98C4D822AB9D019007A6B4D /* Debug */ = { + EC6B96BA2B24B4CC00FC1C58 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -528,7 +561,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -538,7 +571,7 @@ }; name = Debug; }; - D98C4D832AB9D019007A6B4D /* Release */ = { + EC6B96BB2B24B4CC00FC1C58 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -582,7 +615,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -592,7 +625,7 @@ }; name = Release; }; - D98C4D852AB9D019007A6B4D /* Debug */ = { + EC6B96BD2B24B4CC00FC1C58 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -600,15 +633,16 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"AllIn/Preview Content\""; - DEVELOPMENT_TEAM = P39ZK4GA2T; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = AllIn/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "All In"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UILaunchStoryboardName = "Launch Screen.storyboard"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -622,7 +656,7 @@ }; name = Debug; }; - D98C4D862AB9D019007A6B4D /* Release */ = { + EC6B96BE2B24B4CC00FC1C58 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -630,15 +664,16 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"AllIn/Preview Content\""; - DEVELOPMENT_TEAM = P39ZK4GA2T; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = AllIn/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "All In"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UILaunchStoryboardName = "Launch Screen.storyboard"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -652,37 +687,34 @@ }; name = Release; }; - D98C4D882AB9D019007A6B4D /* Debug */ = { + EC6B96C02B24B4CC00FC1C58 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.alldev.AllInTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AllIn.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/AllIn"; }; name = Debug; }; - D98C4D892AB9D019007A6B4D /* Release */ = { + EC6B96C12B24B4CC00FC1C58 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.alldev.AllInTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -693,7 +725,7 @@ }; name = Release; }; - D98C4D8B2AB9D019007A6B4D /* Debug */ = { + EC6B96C32B24B4CC00FC1C58 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -710,7 +742,7 @@ }; name = Debug; }; - D98C4D8C2AB9D019007A6B4D /* Release */ = { + EC6B96C42B24B4CC00FC1C58 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -730,43 +762,43 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - D98C4D5B2AB9D017007A6B4D /* Build configuration list for PBXProject "allin" */ = { + EC6B96932B24B4CC00FC1C58 /* Build configuration list for PBXProject "AllIn" */ = { isa = XCConfigurationList; buildConfigurations = ( - D98C4D822AB9D019007A6B4D /* Debug */, - D98C4D832AB9D019007A6B4D /* Release */, + EC6B96BA2B24B4CC00FC1C58 /* Debug */, + EC6B96BB2B24B4CC00FC1C58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D98C4D842AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllIn" */ = { + EC6B96BC2B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllIn" */ = { isa = XCConfigurationList; buildConfigurations = ( - D98C4D852AB9D019007A6B4D /* Debug */, - D98C4D862AB9D019007A6B4D /* Release */, + EC6B96BD2B24B4CC00FC1C58 /* Debug */, + EC6B96BE2B24B4CC00FC1C58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D98C4D872AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllInTests" */ = { + EC6B96BF2B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllInTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D98C4D882AB9D019007A6B4D /* Debug */, - D98C4D892AB9D019007A6B4D /* Release */, + EC6B96C02B24B4CC00FC1C58 /* Debug */, + EC6B96C12B24B4CC00FC1C58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D98C4D8A2AB9D019007A6B4D /* Build configuration list for PBXNativeTarget "AllInUITests" */ = { + EC6B96C22B24B4CC00FC1C58 /* Build configuration list for PBXNativeTarget "AllInUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D98C4D8B2AB9D019007A6B4D /* Debug */, - D98C4D8C2AB9D019007A6B4D /* Release */, + EC6B96C32B24B4CC00FC1C58 /* Debug */, + EC6B96C42B24B4CC00FC1C58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D98C4D582AB9D017007A6B4D /* Project object */; + rootObject = EC6B96902B24B4CC00FC1C58 /* Project object */; } diff --git a/Sources/allin/allin.xcodeproj/xcshareddata/xcschemes/AllIn.xcscheme b/Sources/allin/allin.xcodeproj/xcshareddata/xcschemes/AllIn.xcscheme new file mode 100644 index 0000000..e62fe0c --- /dev/null +++ b/Sources/allin/allin.xcodeproj/xcshareddata/xcschemes/AllIn.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/allin/allin/AppDelegate.swift b/Sources/allin/allin/AppDelegate.swift new file mode 100644 index 0000000..23517dc --- /dev/null +++ b/Sources/allin/allin/AppDelegate.swift @@ -0,0 +1,41 @@ +// +// AppDelegate.swift +// AllIn +// +// Created by Emre on 17/12/2023. +// + +import UIKit + +class AppDelegate: UIResponder, UIApplicationDelegate { + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + + } +} diff --git a/Sources/allin/allin/AppState.swift b/Sources/allin/allin/AppState.swift new file mode 100644 index 0000000..5713c35 --- /dev/null +++ b/Sources/allin/allin/AppState.swift @@ -0,0 +1,24 @@ +// +// AppState.swift +// AllIn +// +// Created by Emre on 17/12/2023. +// + +import SwiftUI + +class AppStateContainer: ObservableObject { + static let shared = AppStateContainer() + let loggedState: LoggedState = LoggedState() + var onlineStatus: OnlineStatus = OnlineStatus() + + @AppStorage("authenticationRefresh") var authenticationRefresh: String? +} + +class LoggedState: ObservableObject { + @Published var connectedUser: Bool = false +} + +class OnlineStatus: ObservableObject { + @Published var isOnline: Bool = true +} diff --git a/Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Vector.png b/Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Vector.png deleted file mode 100644 index 4a79dbc..0000000 Binary files a/Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Vector.png and /dev/null differ diff --git a/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Contents.json index 468851b..f1a93eb 100644 --- a/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Group 217.png", + "filename" : "Logo.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Group 217.png b/Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Logo.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Group 217.png rename to Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/Logo.png diff --git a/Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/image 17.png b/Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/image 17.png deleted file mode 100644 index 04c25c2..0000000 Binary files a/Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/image 17.png and /dev/null differ diff --git a/Sources/allin/allin/Assets.xcassets/Background.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Background.imageset/Contents.json deleted file mode 100644 index b44a142..0000000 --- a/Sources/allin/allin/Assets.xcassets/Background.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "iPhone 14 - 16.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/BackgroundWhite.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/BackgroundColor.colorset/Contents.json similarity index 94% rename from Sources/allin/allin/Assets.xcassets/BackgroundWhite.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/BackgroundColor.colorset/Contents.json index 6dc7e58..2e33171 100644 --- a/Sources/allin/allin/Assets.xcassets/BackgroundWhite.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/BackgroundColor.colorset/Contents.json @@ -20,7 +20,7 @@ } ], "color" : { - "color-space" : "display-p3", + "color-space" : "srgb", "components" : { "alpha" : "1.000", "blue" : "0x1C", diff --git a/Sources/allin/allin/Assets.xcassets/TopBarColorBlue.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/BlueAccentColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/TopBarColorBlue.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/BlueAccentColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/GrayTextColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/BlueGrey800Color.colorset/Contents.json similarity index 76% rename from Sources/allin/allin/Assets.xcassets/GrayTextColor.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/BlueGrey800Color.colorset/Contents.json index 0e54db2..c4f8d39 100644 --- a/Sources/allin/allin/Assets.xcassets/GrayTextColor.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/BlueGrey800Color.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x49", - "green" : "0x49", - "red" : "0x49" + "blue" : "0x46", + "green" : "0x35", + "red" : "0x37" } }, "idiom" : "universal" @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x49", - "green" : "0x49", - "red" : "0x49" + "blue" : "0x46", + "green" : "0x35", + "red" : "0x37" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/Contents.json index 88bb4a2..5da55d7 100644 --- a/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "chevron-left-solid (1) 1.png", + "filename" : "chevronRight.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/chevron-left-solid (1) 1.png b/Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/chevronRight.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/chevron-left-solid (1) 1.png rename to Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/chevronRight.png diff --git a/Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Contents.json deleted file mode 100644 index 538e0c7..0000000 --- a/Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Group 105.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/BetCardBackground.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/ComponentBackgroundColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/BetCardBackground.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/ComponentBackgroundColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/StartTextColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/DarkBlueColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/StartTextColor.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/DarkBlueColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/PurpleText.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/DarkPurpleColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/PurpleText.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/DarkPurpleColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Contents.json deleted file mode 100644 index 121781c..0000000 --- a/Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Ellipse 1-2.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/DeleteButtonColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/DeleteButtonColor.colorset/Contents.json deleted file mode 100644 index 879f1cd..0000000 --- a/Sources/allin/allin/Assets.xcassets/DeleteButtonColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "1.000", - "green" : "1.000", - "red" : "1.000" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0.149", - "green" : "0.149", - "red" : "0.149" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/DelimiterGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/DelimiterGrey.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/DelimiterGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/DelimiterGrey.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/Eyes.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/FireIcon.imageset/Contents.json similarity index 89% rename from Sources/allin/allin/Assets.xcassets/Eyes.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/FireIcon.imageset/Contents.json index 31c8e24..718503e 100644 --- a/Sources/allin/allin/Assets.xcassets/Eyes.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/FireIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Eyes.png", + "filename" : "fire.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group-2.png b/Sources/allin/allin/Assets.xcassets/FireIcon.imageset/fire.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group-2.png rename to Sources/allin/allin/Assets.xcassets/FireIcon.imageset/fire.png diff --git a/Sources/allin/allin/Assets.xcassets/Friends.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Friends.imageset/Contents.json deleted file mode 100644 index 81ecc77..0000000 --- a/Sources/allin/allin/Assets.xcassets/Friends.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Woman And Man Holding Hands.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/Contents.json index e6a5918..35d5d77 100644 --- a/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "gear-solid 2.png", + "filename" : "gear.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/gear-solid 2.png b/Sources/allin/allin/Assets.xcassets/GearIcon.imageset/gear.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/GearIcon.imageset/gear-solid 2.png rename to Sources/allin/allin/Assets.xcassets/GearIcon.imageset/gear.png diff --git a/Sources/allin/allin/Assets.xcassets/BorderColorMenu.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey100Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/BorderColorMenu.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey100Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/Gray_400.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey400Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Gray_400.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey400Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/TitleColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey500Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/TitleColor.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey500Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/DarkLight.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey50Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/DarkLight.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey50Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/DescriptionColorMenu.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey600Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/DescriptionColorMenu.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey600Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/BlueAccent.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey700Color.colorset/Contents.json similarity index 76% rename from Sources/allin/allin/Assets.xcassets/BlueAccent.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey700Color.colorset/Contents.json index 90e4dc1..6c0c8b9 100644 --- a/Sources/allin/allin/Assets.xcassets/BlueAccent.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/Grey700Color.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0xEF", - "green" : "0x9F", - "red" : "0x1A" + "blue" : "0x9D", + "green" : "0x9D", + "red" : "0x9F" } }, "idiom" : "universal" @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0xEF", - "green" : "0x9F", - "red" : "0x1A" + "blue" : "0x9D", + "green" : "0x9D", + "red" : "0x9F" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/LightGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/Grey800Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/LightGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/Grey800Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/Icon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Icon.imageset/Contents.json deleted file mode 100644 index 2900688..0000000 --- a/Sources/allin/allin/Assets.xcassets/Icon.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Group 2-2.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/Icon.imageset/Group 2-2.png b/Sources/allin/allin/Assets.xcassets/Icon.imageset/Group 2-2.png deleted file mode 100644 index 31e3977..0000000 Binary files a/Sources/allin/allin/Assets.xcassets/Icon.imageset/Group 2-2.png and /dev/null differ diff --git a/Sources/allin/allin/Assets.xcassets/DarkGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightBlueAccentColor.colorset/Contents.json similarity index 76% rename from Sources/allin/allin/Assets.xcassets/DarkGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/LightBlueAccentColor.colorset/Contents.json index 20d2b1a..011c4fe 100644 --- a/Sources/allin/allin/Assets.xcassets/DarkGray.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/LightBlueAccentColor.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x2C", - "green" : "0x2C", - "red" : "0x2C" + "blue" : "0xEC", + "green" : "0xE8", + "red" : "0x00" } }, "idiom" : "universal" @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x2C", - "green" : "0x2C", - "red" : "0x2C" + "blue" : "0xEC", + "green" : "0xE8", + "red" : "0x00" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/LightGray_200.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightGray_200.colorset/Contents.json deleted file mode 100644 index 4f6f888..0000000 --- a/Sources/allin/allin/Assets.xcassets/LightGray_200.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xEB", - "green" : "0xEB", - "red" : "0xEB" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "display-p3", - "components" : { - "alpha" : "1.000", - "blue" : "0x39", - "green" : "0x39", - "red" : "0x39" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/VeryLightGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightGrey100Color.colorset/Contents.json similarity index 88% rename from Sources/allin/allin/Assets.xcassets/VeryLightGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/LightGrey100Color.colorset/Contents.json index 29efc6f..e1ce072 100644 --- a/Sources/allin/allin/Assets.xcassets/VeryLightGray.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/LightGrey100Color.colorset/Contents.json @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0x2A", - "green" : "0x2A", - "red" : "0x2A" + "blue" : "0xF7", + "green" : "0xF7", + "red" : "0xF7" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/Gray_100.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightGrey200Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Gray_100.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/LightGrey200Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/PlaceholderGrayColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightGrey300Color.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/PlaceholderGrayColor.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/LightGrey300Color.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/LightPurpleColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LightPurpleColor.colorset/Contents.json new file mode 100644 index 0000000..9138853 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/LightPurpleColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFB", + "green" : "0x7B", + "red" : "0x7F" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFB", + "green" : "0x7B", + "red" : "0x7F" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/LightPurple.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/LoginPurpleColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/LightPurple.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/LoginPurpleColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Contents.json deleted file mode 100644 index 4a47ed1..0000000 --- a/Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Rectangle 90.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/Money.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Money.imageset/Contents.json deleted file mode 100644 index 5a12c85..0000000 --- a/Sources/allin/allin/Assets.xcassets/Money.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Money With Wings.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/PinkAccentText.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/PinkAccentColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/PinkAccentText.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/PinkAccentColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/PlaceholderLightGrayColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/PlaceholderLightGrayColor.colorset/Contents.json deleted file mode 100644 index 7c2fa99..0000000 --- a/Sources/allin/allin/Assets.xcassets/PlaceholderLightGrayColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xE6", - "green" : "0xE6", - "red" : "0xE6" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xE6", - "green" : "0xE6", - "red" : "0xE6" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/DarkerGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/PrimaryColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/DarkerGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/PrimaryColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/PrimaryTextColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/PrimaryTextColor.colorset/Contents.json index 9138853..d1f70bd 100644 --- a/Sources/allin/allin/Assets.xcassets/PrimaryTextColor.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/PrimaryTextColor.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0xFB", - "green" : "0x7B", - "red" : "0x7F" + "blue" : "0x49", + "green" : "0x49", + "red" : "0x49" } }, "idiom" : "universal" @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0xFB", - "green" : "0x7B", - "red" : "0x7F" + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/TopBarColorPurple.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/PurpleAccentColor.colorset/Contents.json similarity index 83% rename from Sources/allin/allin/Assets.xcassets/TopBarColorPurple.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/PurpleAccentColor.colorset/Contents.json index 3dd2ce2..b27cd50 100644 --- a/Sources/allin/allin/Assets.xcassets/TopBarColorPurple.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/PurpleAccentColor.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.953", - "green" : "0.494", - "red" : "0.667" + "blue" : "0xF3", + "green" : "0x7D", + "red" : "0xAA" } }, "idiom" : "universal" @@ -24,7 +24,7 @@ "components" : { "alpha" : "1.000", "blue" : "0xF3", - "green" : "0x7E", + "green" : "0x7D", "red" : "0xAA" } }, diff --git a/Sources/allin/allin/Assets.xcassets/RankingRowBackground.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/RankingRowBackground.colorset/Contents.json deleted file mode 100644 index d3405ba..0000000 --- a/Sources/allin/allin/Assets.xcassets/RankingRowBackground.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xFF", - "red" : "0xFF" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0.149", - "green" : "0.149", - "red" : "0.149" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/SkyBlueColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/SkyBlueColor.colorset/Contents.json new file mode 100644 index 0000000..eca802d --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/SkyBlueColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xE9", + "green" : "0xDE", + "red" : "0xC4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xE9", + "green" : "0xDE", + "red" : "0xC4" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/CapsuleGray.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/StartBackgroundColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/CapsuleGray.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/StartBackgroundColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/StrokeGrayColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/StrokeGrayColor.colorset/Contents.json deleted file mode 100644 index de593c3..0000000 --- a/Sources/allin/allin/Assets.xcassets/StrokeGrayColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x8A", - "green" : "0x8A", - "red" : "0x8A" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x8A", - "green" : "0x8A", - "red" : "0x8A" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/TitleCreationBetColor.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/TitleCreationBetColor.colorset/Contents.json deleted file mode 100644 index d1f70bd..0000000 --- a/Sources/allin/allin/Assets.xcassets/TitleCreationBetColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x49", - "green" : "0x49", - "red" : "0x49" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xFF", - "red" : "0xFF" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/TopBarColorPink.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/TopBarColorPink.colorset/Contents.json deleted file mode 100644 index babbf18..0000000 --- a/Sources/allin/allin/Assets.xcassets/TopBarColorPink.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xA8", - "green" : "0x51", - "red" : "0xF9" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xA8", - "green" : "0x51", - "red" : "0xF9" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/Trending.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/Trending.imageset/Contents.json deleted file mode 100644 index d09d518..0000000 --- a/Sources/allin/allin/Assets.xcassets/Trending.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "filename" : "Mask group.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Mask group-2.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group.png b/Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group.png deleted file mode 100644 index b84c04f..0000000 Binary files a/Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group.png and /dev/null differ diff --git a/Sources/allin/allin/Assets.xcassets/TrendingBetCardBackground.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/TrendingBetCardBackground.colorset/Contents.json deleted file mode 100644 index 85730c1..0000000 --- a/Sources/allin/allin/Assets.xcassets/TrendingBetCardBackground.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x2A", - "green" : "0x2A", - "red" : "0x2A" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x2A", - "green" : "0x2A", - "red" : "0x2A" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/StartBackground.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/UnderComponentBackgroundColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/StartBackground.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/UnderComponentBackgroundColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/PurpleLight.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/VeryLightPurpleColor.colorset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/PurpleLight.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/VeryLightPurpleColor.colorset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Contents.json deleted file mode 100644 index ae39c35..0000000 --- a/Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Video Game.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/BetTitle.colorset/Contents.json b/Sources/allin/allin/Assets.xcassets/WhiteColor.colorset/Contents.json similarity index 88% rename from Sources/allin/allin/Assets.xcassets/BetTitle.colorset/Contents.json rename to Sources/allin/allin/Assets.xcassets/WhiteColor.colorset/Contents.json index 2536dc2..07fe34d 100644 --- a/Sources/allin/allin/Assets.xcassets/BetTitle.colorset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/WhiteColor.colorset/Contents.json @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xFF", - "red" : "0xFF" + "blue" : "0x2A", + "green" : "0x2A", + "red" : "0x2A" } }, "idiom" : "universal" diff --git a/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/Contents.json new file mode 100644 index 0000000..07a60a4 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "allcoin.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/allcoin.png b/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/allcoin.png new file mode 100644 index 0000000..8f13bd2 Binary files /dev/null and b/Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/allcoin.png differ diff --git a/Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/Contents.json new file mode 100644 index 0000000..0159b50 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "allcoinWhite.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/Allcoins.imageset/Vector-3.png b/Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/allcoinWhite.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Allcoins.imageset/Vector-3.png rename to Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/allcoinWhite.png diff --git a/Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/allinIcon.imageset/Contents.json similarity index 89% rename from Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/allinIcon.imageset/Contents.json index 446d6be..e3cd8b6 100644 --- a/Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/allinIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Vector.png", + "filename" : "allin.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/allinIcon.imageset/allin.png b/Sources/allin/allin/Assets.xcassets/allinIcon.imageset/allin.png new file mode 100644 index 0000000..6cc5c7a Binary files /dev/null and b/Sources/allin/allin/Assets.xcassets/allinIcon.imageset/allin.png differ diff --git a/Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/Contents.json new file mode 100644 index 0000000..c46fd46 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "chevronDown.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/chevron_down.imageset/chevron_down.png b/Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/chevronDown.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/chevron_down.imageset/chevron_down.png rename to Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/chevronDown.png diff --git a/Sources/allin/allin/Assets.xcassets/Allcoins.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/chevronUpIcon.imageset/Contents.json similarity index 88% rename from Sources/allin/allin/Assets.xcassets/Allcoins.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/chevronUpIcon.imageset/Contents.json index b1eca72..0cfcbbc 100644 --- a/Sources/allin/allin/Assets.xcassets/Allcoins.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/chevronUpIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Vector-3.png", + "filename" : "chevronUp.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/chevron_up.imageset/chevron_up.png b/Sources/allin/allin/Assets.xcassets/chevronUpIcon.imageset/chevronUp.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/chevron_up.imageset/chevron_up.png rename to Sources/allin/allin/Assets.xcassets/chevronUpIcon.imageset/chevronUp.png diff --git a/Sources/allin/allin/Assets.xcassets/chevron_down.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/chevron_down.imageset/Contents.json deleted file mode 100644 index 2691877..0000000 --- a/Sources/allin/allin/Assets.xcassets/chevron_down.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "chevron_down.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/chevron_up.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/chevron_up.imageset/Contents.json deleted file mode 100644 index 17ddf4a..0000000 --- a/Sources/allin/allin/Assets.xcassets/chevron_up.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "chevron_up.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/Contents.json deleted file mode 100644 index 5f326db..0000000 --- a/Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "circle-question-regular.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/cross.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/cross.imageset/Contents.json deleted file mode 100644 index ff414ca..0000000 --- a/Sources/allin/allin/Assets.xcassets/cross.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Unioncross.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/cross.imageset/Unioncross.png b/Sources/allin/allin/Assets.xcassets/cross.imageset/Unioncross.png deleted file mode 100644 index 6fdb1c6..0000000 Binary files a/Sources/allin/allin/Assets.xcassets/cross.imageset/Unioncross.png and /dev/null differ diff --git a/Sources/allin/allin/Assets.xcassets/futbol.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/crossIcon.imageset/Contents.json similarity index 89% rename from Sources/allin/allin/Assets.xcassets/futbol.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/crossIcon.imageset/Contents.json index d706827..777f530 100644 --- a/Sources/allin/allin/Assets.xcassets/futbol.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/crossIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "futbol.png", + "filename" : "cross.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Group 105.png b/Sources/allin/allin/Assets.xcassets/crossIcon.imageset/cross.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Group 105.png rename to Sources/allin/allin/Assets.xcassets/crossIcon.imageset/cross.png diff --git a/Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/Contents.json new file mode 100644 index 0000000..6f9818a --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "defaultUser.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Ellipse 1-2.png b/Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/defaultUser.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Ellipse 1-2.png rename to Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/defaultUser.png diff --git a/Sources/allin/allin/Assets.xcassets/paintbrush.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/eyesImage.imageset/Contents.json similarity index 89% rename from Sources/allin/allin/Assets.xcassets/paintbrush.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/eyesImage.imageset/Contents.json index 446d6be..192ea78 100644 --- a/Sources/allin/allin/Assets.xcassets/paintbrush.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/eyesImage.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Vector.png", + "filename" : "eyes.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/Eyes.imageset/Eyes.png b/Sources/allin/allin/Assets.xcassets/eyesImage.imageset/eyes.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Eyes.imageset/Eyes.png rename to Sources/allin/allin/Assets.xcassets/eyesImage.imageset/eyes.png diff --git a/Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/footballIcon.imageset/Contents.json similarity index 88% rename from Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/footballIcon.imageset/Contents.json index cdaf065..c554bc8 100644 --- a/Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/footballIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "image 17.png", + "filename" : "football.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/futbol.imageset/futbol.png b/Sources/allin/allin/Assets.xcassets/footballIcon.imageset/football.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/futbol.imageset/futbol.png rename to Sources/allin/allin/Assets.xcassets/footballIcon.imageset/football.png diff --git a/Sources/allin/allin/Assets.xcassets/friendsImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/friendsImage.imageset/Contents.json new file mode 100644 index 0000000..25c2ff6 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/friendsImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "friends.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/Friends.imageset/Woman And Man Holding Hands.png b/Sources/allin/allin/Assets.xcassets/friendsImage.imageset/friends.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Friends.imageset/Woman And Man Holding Hands.png rename to Sources/allin/allin/Assets.xcassets/friendsImage.imageset/friends.png diff --git a/Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/Contents.json deleted file mode 100644 index b371d76..0000000 --- a/Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "globe-solid-purple.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/globe-solid.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/globe-solid.imageset/Contents.json deleted file mode 100644 index 01189e9..0000000 --- a/Sources/allin/allin/Assets.xcassets/globe-solid.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "globe-solid.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/globe.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/globeIcon.imageset/Contents.json similarity index 100% rename from Sources/allin/allin/Assets.xcassets/globe.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/globeIcon.imageset/Contents.json diff --git a/Sources/allin/allin/Assets.xcassets/globe-solid.imageset/globe-solid.png b/Sources/allin/allin/Assets.xcassets/globeIcon.imageset/globe.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/globe-solid.imageset/globe-solid.png rename to Sources/allin/allin/Assets.xcassets/globeIcon.imageset/globe.png diff --git a/Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/Contents.json new file mode 100644 index 0000000..1cd5ea8 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "globePurple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/globe-solid-purple.png b/Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/globePurple.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/globe-solid-purple.png rename to Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/globePurple.png diff --git a/Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/Contents.json new file mode 100644 index 0000000..78fcdbe --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "launchScreen.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/BackGradiant.imageset/image 16.png b/Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/launchScreen.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/BackGradiant.imageset/image 16.png rename to Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/launchScreen.png diff --git a/Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/Contents.json deleted file mode 100644 index 501f92d..0000000 --- a/Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "lock-solid-purple.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/lock-solid.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/lock-solid.imageset/Contents.json deleted file mode 100644 index 0349d67..0000000 --- a/Sources/allin/allin/Assets.xcassets/lock-solid.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "lock-solid.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/lockIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/lockIcon.imageset/Contents.json new file mode 100644 index 0000000..d19d9a5 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/lockIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "lock.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/lock-solid.imageset/lock-solid.png b/Sources/allin/allin/Assets.xcassets/lockIcon.imageset/lock.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/lock-solid.imageset/lock-solid.png rename to Sources/allin/allin/Assets.xcassets/lockIcon.imageset/lock.png diff --git a/Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/Contents.json new file mode 100644 index 0000000..c1cf491 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "lockPurple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/lock-solid-purple.png b/Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/lockPurple.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/lock-solid-purple.png rename to Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/lockPurple.png diff --git a/Sources/allin/allin/Assets.xcassets/menu.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/menu.imageset/Contents.json deleted file mode 100644 index 10d2d54..0000000 --- a/Sources/allin/allin/Assets.xcassets/menu.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "filename" : "Vector.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Vector-2.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/Contents.json new file mode 100644 index 0000000..9f447e1 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "background.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Rectangle 90.png b/Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/background.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Rectangle 90.png rename to Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/background.png diff --git a/Sources/allin/allin/Assets.xcassets/moneyImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/moneyImage.imageset/Contents.json new file mode 100644 index 0000000..867cf21 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/moneyImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "money.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/Money.imageset/Money With Wings.png b/Sources/allin/allin/Assets.xcassets/moneyImage.imageset/money.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Money.imageset/Money With Wings.png rename to Sources/allin/allin/Assets.xcassets/moneyImage.imageset/money.png diff --git a/Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/Contents.json new file mode 100644 index 0000000..c1971ab --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "paintbrush.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/paintbrush.imageset/Vector.png b/Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/paintbrush.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/paintbrush.imageset/Vector.png rename to Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/paintbrush.png diff --git a/Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/Contents.json new file mode 100644 index 0000000..f1e481d --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "questionMarkGrey.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/circle-question-regular.png b/Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/questionMarkGrey.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/circle-question-regular.png rename to Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/questionMarkGrey.png diff --git a/Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/Contents.json new file mode 100644 index 0000000..9681204 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "questionMark.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/globe.imageset/globe.png b/Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/questionMark.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/globe.imageset/globe.png rename to Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/questionMark.png diff --git a/Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/Contents.json new file mode 100644 index 0000000..5798619 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "filename" : "threeLines 1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "threeLines.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/menu.imageset/Vector.png b/Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/threeLines 1.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/menu.imageset/Vector.png rename to Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/threeLines 1.png diff --git a/Sources/allin/allin/Assets.xcassets/menu.imageset/Vector-2.png b/Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/threeLines.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/menu.imageset/Vector-2.png rename to Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/threeLines.png diff --git a/Sources/allin/allin/Assets.xcassets/BackGradiant.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/videoGameImage.imageset/Contents.json similarity index 88% rename from Sources/allin/allin/Assets.xcassets/BackGradiant.imageset/Contents.json rename to Sources/allin/allin/Assets.xcassets/videoGameImage.imageset/Contents.json index f1237af..8852f6e 100644 --- a/Sources/allin/allin/Assets.xcassets/BackGradiant.imageset/Contents.json +++ b/Sources/allin/allin/Assets.xcassets/videoGameImage.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "image 16.png", + "filename" : "videoGame.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Video Game.png b/Sources/allin/allin/Assets.xcassets/videoGameImage.imageset/videoGame.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Video Game.png rename to Sources/allin/allin/Assets.xcassets/videoGameImage.imageset/videoGame.png diff --git a/Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/Contents.json b/Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/Contents.json new file mode 100644 index 0000000..92b4a39 --- /dev/null +++ b/Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "WelcomeBackground.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/allin/allin/Assets.xcassets/Background.imageset/iPhone 14 - 16.png b/Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/WelcomeBackground.png similarity index 100% rename from Sources/allin/allin/Assets.xcassets/Background.imageset/iPhone 14 - 16.png rename to Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/WelcomeBackground.png diff --git a/Sources/allin/allin/Components/AllcoinsCapsule.swift b/Sources/allin/allin/Components/AllcoinsCapsule.swift new file mode 100644 index 0000000..0fc7a7c --- /dev/null +++ b/Sources/allin/allin/Components/AllcoinsCapsule.swift @@ -0,0 +1,35 @@ +// +// AllcoinsCount.swift +// AllIn +// +// Created by Lucas on 28/09/2023. +// + +import SwiftUI + +struct AllcoinsCapsule: View { + var body: some View { + Text("Vous remportez") + .foregroundColor(.white) + HStack{ + Text("2340") + .textStyle(weight: .bold, color: .white, size: 60) + Image("allcoinWhiteIcon") + .resizable() + .frame(width: 40, height:40) + .scaledToFit() + } + .padding([.leading,.trailing],30) + .padding([.top,.bottom],10) + .background(.white.opacity(0.09)) + .cornerRadius(999, corners: .allCorners) + .clipShape(Capsule()) + .overlay(RoundedRectangle(cornerRadius: 999).stroke(.white, lineWidth: 1.5)) + } +} + +struct AllcoinsCapsule_Previews: PreviewProvider { + static var previews: some View { + AllcoinsCapsule() + } +} diff --git a/Sources/allin/allin/Views/CoinCounterView.swift b/Sources/allin/allin/Components/AllcoinsCounter.swift similarity index 57% rename from Sources/allin/allin/Views/CoinCounterView.swift rename to Sources/allin/allin/Components/AllcoinsCounter.swift index 2aa2a6d..d7b1115 100644 --- a/Sources/allin/allin/Views/CoinCounterView.swift +++ b/Sources/allin/allin/Components/AllcoinsCounter.swift @@ -1,29 +1,31 @@ // -// CoinCounter.swift +// AllcoinsCounter.swift // AllIn // -// Created by Emre KARTAL on 20/09/2023. +// Created by Emre on 20/09/2023. // import SwiftUI -struct CoinCounterView: View { - +struct AllcoinsCounter: View { var body: some View { HStack(alignment: .center) { - Image("AllCoinsIcon") + Image("allcoinIcon") .resizable() .frame(width: 17, height: 17, alignment: .leading) Text("541") .fontWeight(.black) - .foregroundColor(AllinColor.darkGray) + .foregroundColor(AllInColors.primaryColor) } .frame(width: 90, height: 40) .background(Color.white) .cornerRadius(9999, corners: [.topLeft, .bottomLeft]) } - } - +struct AllcoinsCounter_Previews: PreviewProvider { + static var previews: some View { + AllcoinsCounter() + } +} diff --git a/Sources/allin/allin/Views/BetCard.swift b/Sources/allin/allin/Components/BetCard.swift similarity index 54% rename from Sources/allin/allin/Views/BetCard.swift rename to Sources/allin/allin/Components/BetCard.swift index aa59869..b58bb1e 100644 --- a/Sources/allin/allin/Views/BetCard.swift +++ b/Sources/allin/allin/Components/BetCard.swift @@ -2,41 +2,42 @@ // BetCard.swift // AllIn // -// Created by étudiant on 24/09/2023. +// Created by Lucas on 24/09/2023. // import SwiftUI struct BetCard: View { - var body: some View { VStack(spacing: 0){ VStack(alignment: .leading,spacing: 2){ HStack{ Spacer() - Text("proposé par Lucas").font(.system(size: 10)).foregroundColor(AllinColor.lightGray) - + Text("proposé par Lucas").font(.system(size: 10)).foregroundColor(AllInColors.grey800Color) + } - Text("Etudes").font(.system(size: 15)).foregroundColor(AllinColor.lightGray) + Text("Etudes").font(.system(size: 15)).foregroundColor(AllInColors.grey800Color) Text("Emre va réussir son TP de CI/CD mercredi?").font(.system(size: 20)).fontWeight(.bold) HStack{ - Text("Commence le").font(.system(size: 15)).foregroundColor(AllinColor.lightGray) + Text("Commence le").font(.system(size: 15)).foregroundColor(AllInColors.grey800Color) TextCapsule() TextCapsule() Spacer() - + } - }.frame(width: .infinity).padding(.all,15) - - .background(AllinColor.BetCardBackground).cornerRadius(20, corners: [.topLeft,.topRight]).padding(.bottom,0) + } + .frame(width: .infinity) + .padding(.all,15) + .background(AllInColors.componentBackgroundColor).cornerRadius(20, corners: [.topLeft,.topRight]).padding(.bottom,0) + VStack(alignment: .leading,spacing: 2){ HStack{ Spacer() UsersPreview() - Text(" 4 joueurs en attente").font(.system(size: 15)).foregroundColor(AllinColor.lightGray).fontWeight(.medium) - + Text(" 4 joueurs en attente").font(.system(size: 15)).foregroundColor(AllInColors.grey800Color).fontWeight(.medium) + Spacer() - + }.padding(0) Button { @@ -47,33 +48,34 @@ struct BetCard: View { .frame(maxWidth: .infinity).padding(10) .multilineTextAlignment(.center) .overlay { - AllinColor.gradiantCard.frame(width: 170) - .mask( - Text("Participer") - .font(.system(size: 30)) - .fontWeight(.bold) - .frame(maxWidth: .infinity).padding(10) - ) + AllInColors.primaryGradient.frame(width: 170) + .mask( + Text("Participer") + .font(.system(size: 30)) + .fontWeight(.bold) + .frame(maxWidth: .infinity).padding(10) + ) } - } - - .accentColor(AllinColor.BetCardBackground) + } + .accentColor(AllInColors.componentBackgroundColor) .buttonStyle(.borderedProminent).cornerRadius(4.0) .overlay( - RoundedRectangle(cornerRadius: 12).stroke(AllinColor.DelimiterGray , lineWidth: 1) + RoundedRectangle(cornerRadius: 12).stroke(AllInColors.delimiterGrey, lineWidth: 1) ).padding([.top],5) - }.frame(width: .infinity).padding(.all,8) - - .background(AllinColor.CapsuleGray).cornerRadius(20, corners: [.bottomLeft,.bottomRight]).padding(.bottom,0).border(width: 1, edges: [.top], color: AllinColor.DelimiterGray) + } + .frame(width: .infinity) + .padding(.all,8) + .background(AllInColors.underComponentBackgroundColor) + .cornerRadius(20, corners: [.bottomLeft,.bottomRight]) + .border(width: 1, edges: [.top], color: AllInColors.delimiterGrey) } - - } } struct BetCard_Previews: PreviewProvider { static var previews: some View { BetCard() + .preferredColorScheme(.dark) } } diff --git a/Sources/allin/allin/Components/ChoiceCapsule.swift b/Sources/allin/allin/Components/ChoiceCapsule.swift new file mode 100644 index 0000000..f6fc4bc --- /dev/null +++ b/Sources/allin/allin/Components/ChoiceCapsule.swift @@ -0,0 +1,47 @@ +// +// ChoiceCapsule.swift +// AllIn +// +// Created by Lucas on 26/09/2023. +// + +import SwiftUI + +struct ChoiceCapsule: View { + + @State var pressed = false + + var body: some View { + Group { + if(pressed) { + Text("En cours") + .textStyle(weight: .semibold, color: .white, size: 15) + .padding([.leading,.trailing],13.8) + .padding([.top,.bottom], 7) + .background(AllInColors.lightPurpleColor) + .clipShape(Capsule()) + } else { + Text("En cours") + .textStyle(weight: .regular, color: AllInColors.grey800Color, size: 15) + .padding([.leading,.trailing], 15) + .padding([.top,.bottom], 7) + .background(AllInColors.underComponentBackgroundColor) + .clipShape(Capsule()) + .overlay( + RoundedRectangle(cornerRadius: 20) + .stroke(AllInColors.delimiterGrey, lineWidth: 1) + ) + } + } + .onTapGesture() { + pressed.toggle() + } + + } +} + +struct ChoiceCapsule_Previews: PreviewProvider { + static var previews: some View { + ChoiceCapsule() + } +} diff --git a/Sources/allin/allin/Components/ConfidentialityButton.swift b/Sources/allin/allin/Components/ConfidentialityButton.swift new file mode 100644 index 0000000..752e09c --- /dev/null +++ b/Sources/allin/allin/Components/ConfidentialityButton.swift @@ -0,0 +1,38 @@ +// +// ConfidentialityButton.swift +// AllIn +// +// Created by Emre on 29/09/2023. +// + +import SwiftUI + +struct ConfidentialityButton: View { + + var image: String + var text: String + var selected: Bool + + var body: some View { + HStack() { + Image(selected ? image + "Icon" : image + "PurpleIcon") + .resizable() + .scaledToFit() + .padding(.vertical, 12) + + Text(text) + .font(.system(size: 17)) + .fontWeight(.bold) + .foregroundColor(selected ? .white : AllInColors.lightPurpleColor) + } + .frame(width: 110, height: 45) + .background(selected ? AllInColors.lightPurpleColor : AllInColors.componentBackgroundColor) + .cornerRadius(10) + } +} + +struct ConfidentialityButton_Previews: PreviewProvider { + static var previews: some View { + ConfidentialityButton(image: "lock", text: "Privé", selected: true) + } +} diff --git a/Sources/allin/allin/Components/DropDownFriends.swift b/Sources/allin/allin/Components/DropDownFriends.swift new file mode 100644 index 0000000..0789158 --- /dev/null +++ b/Sources/allin/allin/Components/DropDownFriends.swift @@ -0,0 +1,98 @@ +// +// DropDownFriends.swift +// AllIn +// +// Created by Emre on 16/12/2023. +// + +import SwiftUI + +struct DropDownFriends: View { + + @State private var selectedItems: Set = [] + @State var expand = false + let friends: [(Int, Int, String, String)] = [ + (0, 541, "David", "defaultUserImage"), + (1, 541, "David", "defaultUserImage"), + (2, 541, "David", "defaultUserImage"), + (3, 541, "David", "defaultUserImage"), + (4, 541, "David", "defaultUserImage"), + (5, 541, "David", "defaultUserImage") + ] + + var body: some View { + VStack(spacing: 0, content: { + Button(action: { self.expand.toggle() }) { + HStack(spacing: 3){ + Text("41") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 15) + Text("amis disponibles") + .textStyle(weight: .regular, color: AllInColors.grey800Color, size: 15) + + Spacer() + Image(expand ? "chevronUpIcon" : "chevronDownIcon").resizable().frame(width: 15, height: 7).scaledToFill() + } + .padding([.leading, .trailing], 15) + .padding(.top, 5) + .frame(height: 43) + } + if expand { + Rectangle() + .frame(height: 1) + .foregroundColor(AllInColors.delimiterGrey) + ScrollView(.vertical) { + VStack(spacing: 0) { + ForEach(0.. some View { - content - .fontWeight(weight) - .foregroundColor(color) - .font(.system(size: size)) - } -} - -extension View { - func betTextStyle(weight: Font.Weight, color: Color, size: CGFloat) -> some View { - self.modifier(BetText(weight: weight, color: color, size: size)) - } -} - struct TrendingBetCard: View { var body: some View { VStack(alignment: .leading) { HStack { - Image("Trending") + Image("FireIcon") .resizable() .frame(width: 15, height: 15, alignment: .leading) Text("Populaire") - .betTextStyle(weight: .medium, color: AllinColor.pinkAccentText, size: 17) + .textStyle(weight: .medium, color: AllInColors.pinkAccentColor, size: 17) } .padding([.leading, .top], 10) Text("Emre va réussir son TP de CI/CD mercredi?") + .textStyle(weight: .heavy, color: .white, size: 17) .frame(height: 47) - .betTextStyle(weight: .heavy, color: .white, size: 17) .multilineTextAlignment(.leading) .padding([.leading, .trailing], 33) @@ -51,18 +31,18 @@ struct TrendingBetCard: View { GeometryReader { geometry in HStack(alignment: .center, spacing: 0) { Text("12") - .betTextStyle(weight: .bold, color: AllinColor.pinkAccentText, size: 14) + .textStyle(weight: .bold, color: AllInColors.pinkAccentColor, size: 14) Text("joueurs") - .betTextStyle(weight: .regular, color: .white, size: 14) + .textStyle(weight: .regular, color: .white, size: 14) .padding([.leading], 2) Text("2.35k") - .betTextStyle(weight: .bold, color: AllinColor.pinkAccentText, size: 14) + .textStyle(weight: .bold, color: AllInColors.pinkAccentColor, size: 14) .padding([.leading], 10) Text("points misés") - .betTextStyle(weight: .regular, color: .white, size: 14) + .textStyle(weight: .regular, color: .white, size: 14) .padding([.leading], 2) } .padding([.leading, .bottom, .trailing], 10) @@ -70,10 +50,10 @@ struct TrendingBetCard: View { } } .frame(height: 127, alignment: .topLeading) - .background(AllinColor.TrendingBetCardBackground) + .background(AllInColors.primaryColor) .overlay( RoundedRectangle(cornerRadius: 20, style: .continuous) - .stroke(AllinColor.gradiantCard, lineWidth: 5) + .stroke(AllInColors.primaryGradient, lineWidth: 5) ) .clipShape(RoundedRectangle(cornerRadius: 20, style: .continuous)) } diff --git a/Sources/allin/allin/Components/UserInfo.swift b/Sources/allin/allin/Components/UserInfo.swift new file mode 100644 index 0000000..f0b17ef --- /dev/null +++ b/Sources/allin/allin/Components/UserInfo.swift @@ -0,0 +1,32 @@ +// +// UserInfo.swift +// AllIn +// +// Created by Emre on 16/12/2023. +// + +import SwiftUI + +struct UserInfo: View { + var body: some View { + HStack { + Image("defaultUserImage") + .resizable() + .frame(width: 35, height: 35) + Text("David") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 13) + Spacer() + Image("allcoinIcon") + .resizable() + .frame(width: 17, height: 17, alignment: .leading) + Text("541") + .textStyle(weight: .black, color: AllInColors.lightPurpleColor, size: 16) + } + } +} + +struct UserInfo_Previews: PreviewProvider { + static var previews: some View { + UserInfo() + } +} diff --git a/Sources/allin/allin/Views/UsersPreview.swift b/Sources/allin/allin/Components/UsersPreview.swift similarity index 75% rename from Sources/allin/allin/Views/UsersPreview.swift rename to Sources/allin/allin/Components/UsersPreview.swift index a91be67..e8fed87 100644 --- a/Sources/allin/allin/Views/UsersPreview.swift +++ b/Sources/allin/allin/Components/UsersPreview.swift @@ -2,7 +2,7 @@ // UsersPreview.swift // AllIn // -// Created by étudiant on 24/09/2023. +// Created by Lucas on 24/09/2023. // import SwiftUI @@ -10,16 +10,16 @@ import SwiftUI struct UsersPreview: View { var body: some View { HStack(spacing: -20){ - Image("DefaultUserIcon") + Image("defaultUserImage") .resizable() .frame(width: 35, height: 35) - Image("DefaultUserIcon") + Image("defaultUserImage") .resizable() .frame(width: 35, height: 35) - Image("DefaultUserIcon") + Image("defaultUserImage") .resizable() .frame(width: 35, height: 35) - Image("DefaultUserIcon") + Image("defaultUserImage") .resizable() .frame(width: 35, height: 35) } diff --git a/Sources/allin/allin/Components/WinModal.swift b/Sources/allin/allin/Components/WinModal.swift new file mode 100644 index 0000000..c16c303 --- /dev/null +++ b/Sources/allin/allin/Components/WinModal.swift @@ -0,0 +1,228 @@ +// +// WinModal.swift +// AllIn +// +// Created by Lucas on 27/09/2023. +// + +import SwiftUI + +struct WinModal: View { + @Environment(\.dismiss) var dismiss + + @State var xOffset: CGFloat = 0 + var body: some View { + ZStack{ + GeometryReader { geometry in + let size = geometry.size.width / 20 + + InfiniteScroller(contentWidth: size * 20) { + VStack(spacing: 20) { + VStack(spacing: 20) { + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing:20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + + + } + VStack(spacing: 20) { + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing:20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + HStack(spacing: 20){ + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110,height:110) + Image("allcoinWhiteIcon").resizable().frame(width: 110, height:110) + } + } + } + .padding(10) + } + VStack { + ZStack(alignment: .topLeading){ + HStack{ + Spacer() + Image("allinIcon").resizable().frame(width: 35, height: 35) + Spacer() + } + + Image("crossIcon").resizable().frame(width: 25, height: 25).onTapGesture { + dismiss() + } + + } + HStack{ + Text("FÉLICITATIONS").font(.system(size: 20)).foregroundColor(.white).fontWeight(.semibold).italic() + Text("PSEUDO!").padding(.top,9).font(.system(size: 33)).fontWeight(.heavy).foregroundColor(.white) + } + .rotationEffect(.degrees(-4)) + .padding(.top,40) + + Spacer() + AllcoinsCapsule() + Spacer() + RecapBetCard() + Spacer() + } + .padding([.all],20) + } + + }.background( + Image("modalBackgroundImage") + .resizable() + .edgesIgnoringSafeArea(.all) + .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height) + ) + } +} + +struct WinModal_Previews: PreviewProvider { + static var previews: some View { + WinModal() + } +} + +struct InfiniteScroller: View { + var contentWidth: CGFloat + var content: (() -> Content) + + @State + var xOffset: CGFloat = -800 + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 0) { + content() + content() + content() + content() + content() + content() + content() + content() + } + .offset(x: xOffset, y: 0) + } + .disabled(true) + .onAppear { + withAnimation( + .linear(duration: 25) + .repeatForever(autoreverses: false) + ) { + xOffset = +contentWidth + } + } + .frame(width: 1200) + .rotationEffect(.degrees(-30)) + .opacity(0.04) + } +} diff --git a/Sources/allin/allin/ContentView.swift b/Sources/allin/allin/ContentView.swift index f5b2673..f00a6ca 100644 --- a/Sources/allin/allin/ContentView.swift +++ b/Sources/allin/allin/ContentView.swift @@ -2,16 +2,29 @@ // ContentView.swift // AllIn // -// Created by Emre KARTAL on 19/09/2023. +// Created by Emre on 19/09/2023. // import SwiftUI struct ContentView: View { + @Inject var authService: IAuthService + @ObservedObject var loggedState = AppStateContainer.shared.loggedState + var body: some View { - NavigationView { - Welcome() + VStack { + NavigationView { + if loggedState.connectedUser { + MainView(page: "Bet") + } else { + WelcomeView() + } + } + .navigationViewStyle(StackNavigationViewStyle()) + } + .onAppear { + //authService.refreshAuthentication() { status in } } } } @@ -19,5 +32,6 @@ struct ContentView: View { struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() + .preferredColorScheme(.dark) } } diff --git a/Sources/allin/allin/Extensions/Extensions.swift b/Sources/allin/allin/Extensions/Extensions.swift index 59104cb..74732e0 100644 --- a/Sources/allin/allin/Extensions/Extensions.swift +++ b/Sources/allin/allin/Extensions/Extensions.swift @@ -2,28 +2,21 @@ // Extensions.swift // AllIn // -// Created by étudiant on 20/09/2023. +// Created by Lucas on 20/09/2023. // import Foundation import SwiftUI -// Extension for rounded Double to 0 decimals -extension Double { - func roundDouble() -> String { - return String(format: "%.0f", self) +extension Text { + func textStyle(weight: Font.Weight, color: Color, size: CGFloat) -> Text { + return self + .fontWeight(weight) + .foregroundColor(color) + .font(.system(size: size)) } } - -// Extension for adding rounded corners to specific corners -extension View { - func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View { - clipShape(RoundedCorner(radius: radius, corners: corners) ) - } -} - -// Custom RoundedCorner shape used for cornerRadius extension above struct RoundedCorner: Shape { var radius: CGFloat = .infinity var corners: UIRectCorner = .allCorners @@ -34,6 +27,12 @@ struct RoundedCorner: Shape { } } +extension View { + func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View { + clipShape(RoundedCorner(radius: radius, corners: corners) ) + } +} + extension View { func border(width: CGFloat, edges: [Edge], color: Color) -> some View { overlay(EdgeBorder(width: width, edges: edges).foregroundColor(color)) @@ -55,3 +54,32 @@ struct EdgeBorder: Shape { }.reduce(into: Path()) { $0.addPath($1) } } } + +extension View { + func hideKeyboard() { + let resign = #selector(UIResponder.resignFirstResponder) + UIApplication.shared.sendAction(resign, to: nil, from: nil, for: nil) + } +} + +extension View { + func allInPopover(isPresented: Binding, paddingHorizontal: CGFloat = 15, content: @escaping () -> String, textColor: Color = .white, fontSize: CGFloat = 12, frameWidth: CGFloat = 270) -> some View { + self.onTapGesture { + isPresented.wrappedValue.toggle() + } + .popover(isPresented: isPresented, attachmentAnchor: .point(.top)) { + ZStack { + AllInColors.primaryColor // Couleur de fond + .edgesIgnoringSafeArea(.all) + + VStack(alignment: .leading, spacing: 12) { + Text(content()) + .textStyle(weight: .regular, color: textColor, size: fontSize) + } + .padding([.leading, .trailing], paddingHorizontal) + .frame(width: frameWidth) + .presentationCompactAdaptation(.popover) + } + } + } +} diff --git a/Sources/allin/allin/Extensions/UIColor.swift b/Sources/allin/allin/Extensions/UIColor.swift deleted file mode 100644 index 8089fff..0000000 --- a/Sources/allin/allin/Extensions/UIColor.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// UIColor.swift -// AllIn -// -// Created by étudiant on 20/09/2023. -// - -import SwiftUI - -extension UIColor { - convenience init(hexString: String) { - let hex = hexString.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) - var int = UInt64() - Scanner(string: hex).scanHexInt64(&int) - let a, r, g, b: UInt64 - switch hex.count { - case 3: // RGB (12-bit) - (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) - case 6: // RGB (24-bit) - (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) - case 8: // ARGB (32-bit) - (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) - default: - (a, r, g, b) = (255, 0, 0, 0) - } - self.init(red: CGFloat(r) / 255, green: CGFloat(g) / 255, blue: CGFloat(b) / 255, alpha: CGFloat(a) / 255) - } -} diff --git a/Sources/allin/allin/Fonts/PlusJakartaSans.ttf b/Sources/allin/allin/Fonts/PlusJakartaSans.ttf deleted file mode 100644 index 7de3b5b..0000000 Binary files a/Sources/allin/allin/Fonts/PlusJakartaSans.ttf and /dev/null differ diff --git a/Sources/allin/allin/Info.plist b/Sources/allin/allin/Info.plist deleted file mode 100644 index 5099837..0000000 --- a/Sources/allin/allin/Info.plist +++ /dev/null @@ -1,10 +0,0 @@ - - - - - UIAppFonts - - PlusJakartaSans.ttf - - - diff --git a/Sources/allin/allin/Launch Screen.storyboard b/Sources/allin/allin/Launch Screen.storyboard new file mode 100644 index 0000000..c275078 --- /dev/null +++ b/Sources/allin/allin/Launch Screen.storyboard @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/allin/allin/Models/DependencyInjection.swift b/Sources/allin/allin/Models/DependancyInjection.swift similarity index 93% rename from Sources/allin/allin/Models/DependencyInjection.swift rename to Sources/allin/allin/Models/DependancyInjection.swift index 9795347..a5cd5fd 100644 --- a/Sources/allin/allin/Models/DependencyInjection.swift +++ b/Sources/allin/allin/Models/DependancyInjection.swift @@ -1,8 +1,8 @@ // -// DependencyInjection.swift +// DependancyInjection.swift // AllIn // -// Created by étudiant on 28/10/2023. +// Created by Emre on 20/10/2023. // import Foundation @@ -43,7 +43,6 @@ struct Inject { fatalError("Dependency not registered in DependencyInjection.") } } - } set { value = newValue diff --git a/Sources/allin/allin/Models/Token.swift b/Sources/allin/allin/Models/Token.swift new file mode 100644 index 0000000..7f6f2c5 --- /dev/null +++ b/Sources/allin/allin/Models/Token.swift @@ -0,0 +1,27 @@ +// +// Token.swift +// AllIn +// +// Created by Emre on 17/12/2023. +// + +import Foundation + +struct TokenManager { + + static let shared = TokenManager() + + private let tokenKey = "AuthToken" + + func saveToken(_ token: String) { + UserDefaults.standard.set(token, forKey: tokenKey) + } + + func getToken() -> String? { + return UserDefaults.standard.string(forKey: tokenKey) + } + + func deleteToken() { + UserDefaults.standard.removeObject(forKey: tokenKey) + } +} diff --git a/Sources/allin/allin/Models/User.swift b/Sources/allin/allin/Models/User.swift index d848175..d0cfac8 100644 --- a/Sources/allin/allin/Models/User.swift +++ b/Sources/allin/allin/Models/User.swift @@ -2,20 +2,21 @@ // User.swift // AllIn // -// Created by étudiant on 11/10/2023. +// Created by Emre on 11/10/2023. // import Foundation class User { - public var Username: String - public var Email: String - public var NbCoins: Int - - public init(Username: String, andEmail Email: String, NbCoins: Int) { - self.Username = Username - self.Email = Email - self.NbCoins = NbCoins + public var username: String + public var email: String + public var nbCoins: Int + + public init(username: String, email: String, nbCoins: Int) + { + self.username = username + self.email = email + self.nbCoins = nbCoins } } diff --git a/Sources/allin/allin/Ressources/Colors.swift b/Sources/allin/allin/Ressources/Colors.swift index 9befaa0..2f53a3e 100644 --- a/Sources/allin/allin/Ressources/Colors.swift +++ b/Sources/allin/allin/Ressources/Colors.swift @@ -2,57 +2,62 @@ // Colors.swift // AllIn // -// Created by étudiant on 21/09/2023. +// Created by Lucas on 21/09/2023. // import Foundation import SwiftUI -struct AllinColor { - static let darkGray = Color("DarkGray") - static let darkerGray = Color("DarkerGray") - static let pinkAccentText = Color("PinkAccentText") - static let darkLight = Color("DarkLight") - static let titleColor = Color("TitleColor") - static let backgroundWhite = Color("BackgroundWhite") - static let PurpleText = Color("PurpleText") - static let StartBackground = Color("StartBackground") - static let blueAccent = Color("BlueAccent") - static let TopBarColorPink = Color("TopBarColorPink") - static let GrayTextColor = Color("GrayTextColor") - static let VeryLightGray = Color("VeryLightGray") - static let StartTextColor = Color("StartTextColor") - static let LightPurple = Color("LightPurple") - static let TopBarColorBlue = Color("TopBarColorBlue") - static let TopBarColorPurple = Color("TopBarColorPurple") - static let StrokeGrayColor = Color("StrokeGrayColor") - static let RankingRowBackground = Color("RankingRowBackground") - static let DescriptionColorMenu = Color("DescriptionColorMenu") - static let DeleteButtonColor = Color("DeleteButtonColor") - static let Gray_400 = Color("Gray_400") - static let Gray_100 = Color("Gray_100") - static let lightGray = Color("LightGray") - static let PurpleLight = Color("PurpleLight") - static let TitleCreationBetColor = Color("TitleCreationBetColor") - static let PlaceholderGrayColor = Color("PlaceholderGrayColor") - static let PlaceholderLightGrayColor = Color("PlaceholderLightGrayColor") - static let BorderColorMenu = Color("BorderColorMenu") - static let PrimaryTextColor = Color("PrimaryTextColor") - static let DelimiterGray = Color("DelimiterGray") - static let CapsuleGray = Color("CapsuleGray") - static let LightGray_200 = Color("LightGray_200") - static let TrendingBetCardBackground = Color("TrendingBetCardBackground") - static let BetCardBackground = Color("BetCardBackground") +struct AllInColors { + // Primary + static let lightBlueAccentColor = Color("LightBlueAccentColor") + static let blueAccentColor = Color("BlueAccentColor") + static let purpleAccentColor = Color("PurpleAccentColor") + static let pinkAccentColor = Color("PinkAccentColor") + static let primaryColor = Color("PrimaryColor") + static let primaryTextColor = Color("PrimaryTextColor") + + // Bet + static let delimiterGrey = Color("DelimiterGrey") + + // Create Bet + static let veryLightPurpleColor = Color("VeryLightPurpleColor") + static let skyBlueColor = Color("SkyBlueColor") - - static let gradiantCard = LinearGradient( - gradient: Gradient(colors: [AllinColor.pinkAccentText, AllinColor.blueAccent]), + // Start, Register and Login + static let startBackgroundColor = Color("StartBackgroundColor") + static let loginPurpleColor = Color("LoginPurpleColor") + static let whiteColor = Color("WhiteColor") + + // Others + static let backgroundColor = Color("BackgroundColor") + static let darkBlueColor = Color("DarkBlueColor") + static let darkPurpleColor = Color("DarkPurpleColor") + static let lightPurpleColor = Color("LightPurpleColor") + static let blueGrey800Color = Color("BlueGrey800Color") + static let grey50Color = Color("Grey50Color") + static let grey100Color = Color("Grey100Color") + static let grey400Color = Color("Grey400Color") + static let grey500Color = Color("Grey500Color") + static let grey600Color = Color("Grey600Color") + static let grey700Color = Color("Grey700Color") + static let grey800Color = Color("Grey800Color") + static let lightGrey100Color = Color("LightGrey100Color") + static let lightGrey200Color = Color("LightGrey200Color") + static let lightGrey300Color = Color("LightGrey300Color") + static let componentBackgroundColor = Color("ComponentBackgroundColor") + static let underComponentBackgroundColor = Color("UnderComponentBackgroundColor") + + // Gradients + static let primaryGradient = LinearGradient( + gradient: Gradient(colors: [AllInColors.pinkAccentColor, AllInColors.blueAccentColor]), startPoint: .bottomLeading, endPoint: .topTrailing ) static let fadeInGradiantCard = LinearGradient( - gradient: Gradient(colors: [AllinColor.backgroundWhite.opacity(0), AllinColor.backgroundWhite.opacity(0.9),AllinColor.backgroundWhite]), + gradient: Gradient(colors: [AllInColors.backgroundColor.opacity(0), AllInColors.backgroundColor.opacity(0.9), AllInColors.backgroundColor]), startPoint: .bottom, endPoint: .top ) + } diff --git a/Sources/allin/allin/Ressources/Config.swift b/Sources/allin/allin/Ressources/Config.swift new file mode 100644 index 0000000..e235a9a --- /dev/null +++ b/Sources/allin/allin/Ressources/Config.swift @@ -0,0 +1,12 @@ +// +// Config.swift +// AllIn +// +// Created by Emre on 09/12/2023. +// + +import Foundation + +struct Config { + static let allInApi = "https://codefirst.iut.uca.fr/containers/AllDev-api" +} diff --git a/Sources/allin/allin/Screens/CreationBetScreen.swift b/Sources/allin/allin/Screens/CreationBetScreen.swift deleted file mode 100644 index ff481d5..0000000 --- a/Sources/allin/allin/Screens/CreationBetScreen.swift +++ /dev/null @@ -1,353 +0,0 @@ -// -// CreationBetScreen.swift -// AllIn -// -// Created by étudiant on 29/09/2023. -// - -import SwiftUI - -struct CreationBet: View { - - @State private var selectedTab = 0 - @Binding var showMenu: Bool - @State var selectedConfidentiality = true - @State private var theme: String = "" - @State private var description: String = "" - @State var present = false - @State private var startDate = Date() - @State private var endDate = Date() - let dateRange: ClosedRange = { - let calendar = Calendar.current - let startDate = Date() - let endDate = calendar.date(byAdding: .year, value: 10, to: startDate)! - return startDate ... endDate - }() - @State private var response = "" - @State private var values: [String] = [] - - @State private var selectedOption = 0 - let options: [(Int, String, String)] = [ - (0, "globe", "Oui / Non"), - (1, "futbol", "Pari sportif"), - (2, "paintbrush", "Réponses personnalisées") - ] - - var body: some View { - VStack(alignment: .center, spacing: 0) { - TopBarView(showMenu: self.$showMenu) - TabView(selection: $selectedTab) { - ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 5) { - VStack() { - HStack(spacing: 5) { - Text("Thème") - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(AllinColor.TitleCreationBetColor) - Image("circle-question-regular") - .resizable() - .frame(width: 14, height: 14) - Spacer() - } - .padding(.leading, 10) - TextField("", text: $theme, prompt: Text("Études, sport, soirée...").foregroundColor(AllinColor.PlaceholderGrayColor).font(.system(size: 14)).fontWeight(.light)) - .padding() - .background( - RoundedRectangle(cornerRadius: 9) - .fill(.white) - .frame(height: 40) - ) - .frame(width: 350, height: 40) - .foregroundColor(.black) - .overlay( - RoundedRectangle(cornerRadius: 10, style: .continuous) - .stroke(AllinColor.LightGray_200, lineWidth: 1) - ) - .padding(.bottom, 5) - } - - HStack(spacing: 5) { - Text("Phrase du BET") - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(AllinColor.TitleCreationBetColor) - Image("circle-question-regular") - .resizable() - .frame(width: 14, height: 14) - Spacer() - } - .padding(.leading, 10) - TextField("", text: $description, prompt: Text("Études, sport, soirée...").foregroundColor(AllinColor.PlaceholderGrayColor).font(.system(size: 14)).fontWeight(.light), axis: .vertical) - .lineLimit(4, reservesSpace: true) - .padding() - .background( - RoundedRectangle(cornerRadius: 9) - .fill(Color.white) - .frame(height: 110) - ) - .frame(width: 350, height: 110) - .foregroundColor(.black) - .overlay( - RoundedRectangle(cornerRadius: 10, style: .continuous) - .stroke(AllinColor.LightGray_200, lineWidth: 1) - ) - .padding(.bottom, 30) - - HStack(spacing: 5) { - Text("Date de fin des inscriptions") - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(AllinColor.TitleCreationBetColor) - Image("circle-question-regular") - .resizable() - .frame(width: 14, height: 14) - Spacer() - } - .padding(.leading, 10) - DatePicker( - "", - selection: $startDate, - in: dateRange, - displayedComponents: [.date, .hourAndMinute] - ) - .accentColor(AllinColor.PrimaryTextColor) - .labelsHidden() - .padding(.bottom, 10) - VStack(alignment: .leading, spacing: 5) { - VStack() { - HStack(spacing: 5) { - Text("Date de fin du BET") - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(AllinColor.TitleCreationBetColor) - Image("circle-question-regular") - .resizable() - .frame(width: 14, height: 14) - Spacer() - } - .padding(.leading, 10) - } - DatePicker( - "", - selection: $endDate, - in: dateRange, - displayedComponents: [.date, .hourAndMinute] - ) - .accentColor(AllinColor.PrimaryTextColor) - .labelsHidden() - .padding(.bottom, 40) - } - VStack { - HStack(spacing: 5) { - Text("Confidentialité du BET") - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(AllinColor.TitleCreationBetColor) - Image("circle-question-regular") - .resizable() - .frame(width: 14, height: 14) - Spacer() - } - .padding(.leading, 10) - HStack(spacing: 5) { - ConfidentialityView(image: "globe-solid", text: "Public", selected: selectedConfidentiality) - .onTapGesture { - selectedConfidentiality = true - } - .padding(.trailing, 5) - ConfidentialityView(image: "lock-solid", text: "Privé", selected: !selectedConfidentiality) - .onTapGesture { - selectedConfidentiality = false - } - Spacer() - } - } - .padding(.bottom, 10) - VStack(spacing: 10) { - Text("Votre BET sera visible par tous les utilisateurs.") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 35) - .foregroundColor(AllinColor.PurpleLight) - .multilineTextAlignment(.center) - Text("Tout le monde pourra rejoindre le BET.") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 35) - .foregroundColor(AllinColor.PurpleLight) - .multilineTextAlignment(.center) - Text("Vous pourrez inviter des amis à tout moment pendant la période d’inscription.") - .font(.system(size: 13)) - .padding(.leading, 35) - .fontWeight(.bold) - .foregroundColor(AllinColor.PurpleLight) - .multilineTextAlignment(.center) - - } - Spacer() - HStack() { - Spacer() - Button(action: {}) { - Text("Publier le bet") - .font(.system(size: 24)) - .fontWeight(.bold) - .foregroundColor(.purple) - .overlay { - AllinColor.gradiantCard.frame(width: 150) - .mask( - Text("Publier le bet") - .font(.system(size: 24)) - .fontWeight(.bold) - .frame(maxWidth: .infinity) - ) - } - } - .frame(width: 335, height: 60) - .background(.white) - .cornerRadius(12) - Spacer() - } - } - .padding([.leading, .trailing, .bottom], 30) - .padding(.top, 50) - } - .tag(0) - - VStack(alignment: .leading, spacing: 5) { - - VStack() { - DropDownMenuView(selectedOption: $selectedOption, options: options) - } - .padding([.bottom], 15) - - - Group { - switch selectedOption { - case 0: - Text("Les utilisateurs devront répondre au pari avec OUI ou NON.") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 40) - .foregroundColor(AllinColor.PurpleLight) - Text("Aucune autre réponse ne sera acceptée.") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 40) - .foregroundColor(AllinColor.PurpleLight) - case 2: - Text("Vous allez renseigner les différentes réponses disponibles dans ce pari.") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 40) - .foregroundColor(AllinColor.PurpleLight) - Text("Faites attention a etre claire et éviter toutes incertitudes") - .font(.system(size: 13)) - .fontWeight(.bold) - .padding(.leading, 40) - .padding(.bottom, 15) - .foregroundColor(AllinColor.PurpleLight) - VStack(spacing: 5) { - HStack(spacing: 0) { - TextField("", text: $response, prompt: Text("Intitulé de réponse").foregroundColor(AllinColor.PlaceholderLightGrayColor).font(.system(size: 16)).fontWeight(.medium)) - .padding() - .background( - Rectangle() - .fill(Color.white) - .cornerRadius(9, corners: [.topLeft, .bottomLeft]) - .frame(height: 38) - ) - .frame(width: 250, height: 38) - .foregroundColor(.black) - .onChange(of: response) { newValue in - if newValue.count > 20 { - response = String(newValue.prefix(20)) - } - } - - - Button(action: { - if !response.isEmpty && values.count < 5 { - values.append(response) - response = "" - } - }) { - Text("Ajouter") - .foregroundColor(.white) - } - .frame(width: 95, height: 40) - .background(AllinColor.PrimaryTextColor) - .cornerRadius(10, corners: [.bottomRight, .topRight]) - .cornerRadius(2, corners: [.bottomLeft, .topLeft]) - } - HStack { - Spacer() - Text("encore \(5 - values.count) max.") - .font(.system(size: 12)) - .fontWeight(.regular) - .foregroundColor(AllinColor.GrayTextColor) - } - HStack(spacing: 10) { - ForEach(values, id: \.self) { text in - HStack { - Text(text) - .foregroundColor(.white) - .lineLimit(1) - Button(action: { - if let index = values.firstIndex(of: text) { - values.remove(at: index) - } - }) { - Image("cross") - .resizable() - .frame(width: 10, height: 10) - .foregroundColor(.white) - } - } - .padding(5) - .padding([.leading, .trailing], 8) - .background(AllinColor.PrimaryTextColor) - .cornerRadius(16) - } - } - } - default: - Text("En attente") - } - } - Spacer() - } - .padding([.leading, .trailing, .bottom], 30) - .padding(.top, 50) - .tag(1) - } - .overlay( - HStack { - Button(action: { - selectedTab = 0 - }) { - Text("Question") - .font(.system(size: 16)) - .padding() - .fontWeight(selectedTab == 0 ? .bold : .semibold) - .foregroundColor(selectedTab == 0 ? AllinColor.TitleCreationBetColor : Color.gray) - .offset(y: 0) - } - Button(action: { - selectedTab = 1 - }) { - Text("Réponses") - .font(.system(size: 16)) - .padding() - .fontWeight(selectedTab == 1 ? .bold : .semibold) - .foregroundColor(selectedTab == 1 ? AllinColor.TitleCreationBetColor : Color.gray) - .offset(y: 0) - } - } - , alignment: .top) - .tabViewStyle(PageTabViewStyle()) - Spacer() - } - .edgesIgnoringSafeArea(.bottom).background(AllinColor.backgroundWhite) - } -} diff --git a/Sources/allin/allin/Screens/LoginScreen.swift b/Sources/allin/allin/Screens/LoginScreen.swift deleted file mode 100644 index 2da887a..0000000 --- a/Sources/allin/allin/Screens/LoginScreen.swift +++ /dev/null @@ -1,129 +0,0 @@ -// -// LoginScreen.swift -// AllIn -// -// Created by étudiant on 24/09/2023. -// - -import SwiftUI - -struct Login: View { - - @Inject private var authService: IAuthService - @State private var isPasswordVisible = true - @State private var username: String = "" - @State private var password: String = "" - @State private var showErrorAlert = false - @State private var errorAlertMessage = "" - @State private var isLoginSuccessful = false - - var body: some View { - GeometryReader { geometry in - VStack(spacing: 15) { - Spacer() - Text("Te revoilà!") - .betTextStyle(weight: .semibold, color: AllinColor.StartTextColor, size: 40) - Text("Bon retour parmis nous tu nous as manqué!") - .frame(width: 220) - .multilineTextAlignment(.center) - .betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 20) - .padding(.bottom, 60) - - TextField("", text: $username, prompt: Text("Email").foregroundColor(.gray)) - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .foregroundColor(.black) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .autocapitalization(.none) - .padding(.bottom, 8) - - Group { - if isPasswordVisible { - SecureField("", text: $password, prompt: Text("Mot de passe").foregroundColor(.gray)) - } else { - TextField("", text: $password, prompt: Text("Mot de passe").foregroundColor(.gray)) - } - } - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .overlay( - HStack { - Spacer() - Button(action: { - isPasswordVisible.toggle() - }) { - Image(systemName: isPasswordVisible ? "eye.slash" : "eye") - .foregroundColor(.gray) - } - .padding(.trailing, 8) - } - ) - .foregroundColor(.black) - - Text("Mot de passe oublié?") - .frame(alignment: .trailing) - .padding(.bottom, 20) - .padding(.leading, 150) - .betTextStyle(weight: .medium, color: AllinColor.StartTextColor, size: 14) - - Button(action: { - login(email: username, password: password) - }) { - Text("Se connecter") - .betTextStyle(weight: .bold, color: .white, size: 17) - .frame(width: 300, height: 60) - .background(LinearGradient(gradient: - Gradient(colors:[AllinColor.TopBarColorPink,AllinColor.TopBarColorPurple,AllinColor.TopBarColorBlue]), - startPoint: .leading, endPoint: .trailing)) - .cornerRadius(13) - } - .background( - NavigationLink("", destination: Home(page: "Bet").navigationBarBackButtonHidden(true), isActive: $isLoginSuccessful) - .opacity(0) - ) - - Spacer() - HStack(spacing: 0) { - Text("Pas encore inscrit? ") - .betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 16) - NavigationLink(destination: Register().navigationBarBackButtonHidden(true)) - { - Text("S'inscrire") - .betTextStyle(weight: .semibold, color: AllinColor.PurpleText, size: 16) - } - } - - } - .frame(width: geometry.size.width, height: geometry.size.height) - .background(AllinColor.StartBackground) - } - .alert(isPresented: $showErrorAlert) { - Alert(title: Text("Erreur de connexion"), message: Text(errorAlertMessage), dismissButton: .default(Text("OK"))) - } - } - - func login(email: String, password: String) { - - authService.login(email: email, password: password) { statusCode in - DispatchQueue.main.async { - if statusCode == 200 { - isLoginSuccessful = true - } else { - errorAlertMessage = "La connexion a échoué. Veuillez réessayer." - showErrorAlert = true - } - } - } - } -} - - diff --git a/Sources/allin/allin/Screens/RankingScreen.swift b/Sources/allin/allin/Screens/RankingScreen.swift deleted file mode 100644 index 268073a..0000000 --- a/Sources/allin/allin/Screens/RankingScreen.swift +++ /dev/null @@ -1,130 +0,0 @@ -// -// RankingScreen.swift -// AllIn -// -// Created by étudiant on 27/09/2023. -// - -import SwiftUI - -struct Ranking: View { - - @Binding var showMenu: Bool - var body: some View { - VStack(alignment: .center, spacing: 0) { - TopBarView(showMenu: self.$showMenu) - Text("Classement") - .betTextStyle(weight: .bold, color: AllinColor.titleColor, size: 25) - .padding([.top,.bottom],15) - - HStack { - ZStack { - VStack(spacing: 0){ - Spacer() - Text("Pseudo") - .fontWeight(.bold) - .padding(.bottom, 4) - .font(.system(size: 16)) - .lineLimit(1) - Divider() - .background(AllinColor.Gray_100) - HStack{ - Spacer() - Image("AllCoinsIcon") - .resizable() - .frame(width: 18, height: 18, alignment: .leading) - .padding([.top,.bottom],10) - Text(String("570")) - .betTextStyle(weight: .black, color: AllinColor.PrimaryTextColor, size: 16) - .padding(.trailing, 18) - Spacer() - } - .frame(width: 170) - .background(AllinColor.VeryLightGray) - } - .frame(width: 170, height: 110) - .background(AllinColor.RankingRowBackground) - .cornerRadius(41.5, corners: .topLeft) - .cornerRadius(8, corners: .topRight) - .cornerRadius(15, corners: [.bottomLeft, .bottomRight]) - - Image("DefaultUserIcon") - .resizable() - .frame(width: 70, height: 70) - .scaledToFit() - .cornerRadius(180) - .offset(x: 0, y: -55) - - Text("1") - .frame(width: 28, height: 28) - .foregroundColor(.white) - .background(AllinColor.PrimaryTextColor) - .cornerRadius(30) - .font(.system(size: 18)) - .fontWeight(.bold) - .offset(x: 0, y: -23) - } - Spacer() - ZStack { - VStack(spacing: 0){ - Spacer() - Text("Pseudo") - .fontWeight(.bold) - .padding(.bottom, 4) - .font(.system(size: 15)) - .lineLimit(1) - Divider() - .background(AllinColor.Gray_100) - HStack{ - Spacer() - Image("AllCoinsIcon") - .resizable() - .frame(width: 18, height: 18, alignment: .leading) - .padding([.top,.bottom],10) - Text(String("570")) - .betTextStyle(weight: .black, color: AllinColor.PrimaryTextColor, size: 16) - .padding(.trailing, 18) - Spacer() - } - .frame(width: 170) - .background(AllinColor.VeryLightGray) - } - .frame(width: 170, height: 95) - .background(AllinColor.RankingRowBackground) - .cornerRadius(27.5, corners: .topRight) - .cornerRadius(8, corners: .topLeft) - .cornerRadius(15, corners: [.bottomLeft, .bottomRight]) - - Image("DefaultUserIcon") - .resizable() - .frame(width: 60, height: 60) - .scaledToFit() - .cornerRadius(180) - .offset(x: 0, y: -50) - - Text("2") - .frame(width: 23, height: 23) - .foregroundColor(.white) - .background(AllinColor.PrimaryTextColor) - .cornerRadius(30) - .font(.system(size: 15)) - .fontWeight(.bold) - .offset(x: 0, y: -22) - } - .padding(.top, 10) - - } - .padding([.leading,.trailing,.top],20) - - ScrollView(showsIndicators: false){ - VStack(spacing: 10) { - RankingRowView(number: 3, image: "DefaultUserIcon", pseudo: "Lucas", allCoins: 541) - RankingRowView(number: 4, image: "DefaultUserIcon", pseudo: "Arthur", allCoins: 542) - } - }.padding(.top, 10) - Spacer() - } - .edgesIgnoringSafeArea(.bottom).background(AllinColor.backgroundWhite) - } - -} diff --git a/Sources/allin/allin/Screens/RegisterScreen.swift b/Sources/allin/allin/Screens/RegisterScreen.swift deleted file mode 100644 index 83d8a59..0000000 --- a/Sources/allin/allin/Screens/RegisterScreen.swift +++ /dev/null @@ -1,265 +0,0 @@ -// -// RegisterScreen.swift -// AllIn -// -// Created by étudiant on 25/09/2023. -// - -import SwiftUI - -struct Register: View { - - @State private var isPasswordVisible = true - @State private var username: String = "" - @State private var email: String = "" - @State private var password: String = "" - @State private var passwordConfirm: String = "" - @State private var isRegisterSuccessful = false - @State private var errorPassword = false - @State private var errorMail = false - @State private var errorUsername = false - @State private var errorMailMessage: String = "" - @State private var errorUsernameMessage: String = "" - @State private var errorPasswordMessage: String = "" - - var body: some View { - GeometryReader { geometry in - ScrollView(showsIndicators: false) { - VStack(spacing: 15) { - Spacer() - VStack { - if (username != "") { - Text("Bonjour "+username+",") - .betTextStyle(weight: .semibold, color: AllinColor.StartTextColor, size: 40) - .padding([.trailing, .leading], 30) - } else { - Text("Bonjour,") - .betTextStyle(weight: .semibold, color: AllinColor.StartTextColor, size: 40) - .lineLimit(1) - .padding([.trailing, .leading], 30) - } - Text("On a besoin de ça!") - .betTextStyle(weight: .semibold, color: AllinColor.StartTextColor, size: 40) - } - - Text("Promis c’est rapide.") - .frame(width: 220) - .multilineTextAlignment(.center) - .betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 20) - .padding(.bottom, 60) - - VStack { - if errorUsername { - Text(errorUsernameMessage) - .font(.system(size: 10)) - .foregroundColor(.red) - .fontWeight(.bold) - } - TextField("", text: $username, prompt: Text("Pseudo").foregroundColor(.gray)) - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .foregroundColor(.black) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .padding(.bottom, 8) - .onChange(of: username) { newValue in - if newValue.count > 25 { - username = String(newValue.prefix(25)) - } - } - } - - VStack { - if errorMail { - Text(errorMailMessage) - .font(.system(size: 10)) - .foregroundColor(.red) - .fontWeight(.bold) - } - TextField("", text: $email, prompt: Text("Email").foregroundColor(.gray)) - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .foregroundColor(.black) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .padding(.bottom, 8) - .onChange(of: email) { newValue in - if newValue.count > 50 { - email = String(newValue.prefix(50)) - } - } - } - - VStack { - if errorPassword { - Text(errorPasswordMessage) - .font(.system(size: 10)) - .foregroundColor(.red) - .fontWeight(.bold) - } - Group { - if isPasswordVisible { - SecureField("", text: $password, prompt: Text("Mot de passe").foregroundColor(.gray)) - } else { - TextField("", text: $password, prompt: Text("Mot de passe").foregroundColor(.gray)) - .autocapitalization(.none) - } - } - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .foregroundColor(.black) - .padding(.bottom, 8) - .overlay( - HStack { - Spacer() - Button(action: { - isPasswordVisible.toggle() - }) { - Image(systemName: isPasswordVisible ? "eye.slash" : "eye") - .foregroundColor(.gray) - } - .padding(.bottom, 8) - .padding(.trailing, 8) - } - ) - } - - VStack { - if errorPassword { - Text(errorPasswordMessage) - .font(.system(size: 10)) - .foregroundColor(.red) - .fontWeight(.bold) - } - - Group { - if isPasswordVisible { - SecureField("", text: $passwordConfirm, prompt: Text("Confirmation du Mot de passe").foregroundColor(.gray)) - } else { - TextField("", text: $passwordConfirm, prompt: Text("Confirmation du Mot de passe").foregroundColor(.gray)) - .autocapitalization(.none) - } - } - .padding() - .background(Color.white.cornerRadius(9)) - .frame(width: 300) - .overlay( - RoundedRectangle(cornerRadius: 9, style: .continuous) - .stroke(AllinColor.StrokeGrayColor, lineWidth: 1) - ) - .overlay( - HStack { - Spacer() - Button(action: { - isPasswordVisible.toggle() - }) { - Image(systemName: isPasswordVisible ? "eye.slash" : "eye") - .foregroundColor(.gray) - } - .padding(.trailing, 8) - } - ) - .foregroundColor(.black) - .padding(.bottom, 50) - } - Button(action: { - register(email: email, username: username, password: password, confirmPassword: passwordConfirm) - }) { - Text("S'inscrire") - .betTextStyle(weight: .bold, color: .white, size: 17) - } - .frame(width: 300, height: 60) - .background(LinearGradient(gradient: - Gradient(colors:[AllinColor.TopBarColorPink,AllinColor.TopBarColorPurple,AllinColor.TopBarColorBlue]), - startPoint: .leading, endPoint: .trailing)) - .background( - NavigationLink("", destination: Home(page: "Bet").navigationBarBackButtonHidden(true), isActive: $isRegisterSuccessful) - .opacity(0) - ) - .cornerRadius(13) - - Spacer() - - HStack(spacing: 0) { - Text("Tu as déjà un compte? ") - .betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 16) - NavigationLink(destination: Login().navigationBarBackButtonHidden(true)) - { - Text("Se connecter") - .betTextStyle(weight: .semibold, color: AllinColor.PurpleText, size: 16) - } - } - - } - - } - .frame(width: geometry.size.width, height: geometry.size.height) - .background(AllinColor.StartBackground) - } - } - - func register(email: String, username: String, password: String, confirmPassword: String) { - cleanError() - if password != confirmPassword { - errorPassword = true - errorPasswordMessage = "Les mots de passes doivent être identiques." - return - } - if username.isEmpty { - errorUsername = true - errorUsernameMessage = "Le pseudo ne peut pas être vide." - return - } - - if email.isEmpty { - errorMail = true - errorMailMessage = "Le mail ne peut pas être vide." - return - } - - if password.isEmpty || confirmPassword.isEmpty { - errorPassword = true - errorPasswordMessage = "Veuillez renseigner le mot de passe sur les deux champs." - return - } - - if isValidEmail(email: email) { - errorMail = true - errorMailMessage = "L'adresse e-mail n'est pas valide." - return - } - - let api = AuthService() - api.register(email: email, password: password, username: username) { statusCode in - DispatchQueue.main.async { - if statusCode == 201 { - isRegisterSuccessful = true - } else { - - } - } - } - } - - func isValidEmail(email: String) -> Bool - { - return email.range(of:"^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", options: .regularExpression) == nil - } - - func cleanError() { - errorPassword = false - errorMail = false - errorUsername = false - } -} diff --git a/Sources/allin/allin/Screens/SplashScreen.swift b/Sources/allin/allin/Screens/SplashScreen.swift deleted file mode 100644 index 4c36951..0000000 --- a/Sources/allin/allin/Screens/SplashScreen.swift +++ /dev/null @@ -1,39 +0,0 @@ -// -// SplashScreen.swift -// AllIn -// -// Created by étudiant on 23/09/2023. -// - -import SwiftUI - -struct Splash: View { - - @State private var size = 0.7 - @State private var opacity = 0.5 - @State private var rotationAngle: Angle = .degrees(0) - var body: some View { - GeometryReader { geometry in - VStack(alignment: .center) { - Image("Icon") - .resizable() - .frame(width: 80, height: 80) - } - .scaleEffect(size) - .opacity(opacity) - .rotationEffect(rotationAngle) - .onAppear { - withAnimation(.easeIn(duration:1.1)){ - self.size = 1 - self.opacity = 1.00 - self.rotationAngle = .degrees(1080) - } - } - .frame(width: geometry.size.width, height: geometry.size.height) - .background(LinearGradient(gradient: - Gradient(colors:[AllinColor.TopBarColorPink,AllinColor.TopBarColorPink,AllinColor.TopBarColorPurple,AllinColor.TopBarColorBlue,AllinColor.TopBarColorBlue]), - startPoint: .bottomLeading, endPoint: .topTrailing)) - } - } - -} diff --git a/Sources/allin/allin/Screens/WelcomeScreen.swift b/Sources/allin/allin/Screens/WelcomeScreen.swift deleted file mode 100644 index 2ad67fa..0000000 --- a/Sources/allin/allin/Screens/WelcomeScreen.swift +++ /dev/null @@ -1,98 +0,0 @@ -// -// WelcomePage.swift -// AllIn -// -// Created by étudiant on 23/09/2023. -// - -import SwiftUI - -struct Welcome: View { - - var body: some View { - GeometryReader { geometry in - VStack(alignment: .leading, spacing: 0) { - Spacer() - VStack(alignment: .leading, spacing: 0) { - Spacer() - Spacer() - Text("Bienvenue sur,") - .frame(alignment: .topLeading) - .betTextStyle(weight: .bold, color: AllinColor.StartTextColor, size: 30) - .padding([.leading,.trailing], 40) - LinearGradient( - colors: [AllinColor.TopBarColorPink, AllinColor.TopBarColorBlue, AllinColor.TopBarColorBlue], - startPoint: .bottomLeading, - endPoint: .topTrailing - ).mask( - Text("Allin.") - .frame(width: geometry.size.width*0.80, alignment: .topLeading) - .font(Font.system(size: 45, weight: .bold)) - ) - .frame(width: geometry.size.width, height: 45, alignment: .topLeading) - .padding(.bottom, 40) - } - .frame(width: geometry.size.width, height: 320) - .background( LinearGradient( - stops: [ - Gradient.Stop(color: AllinColor.StartBackground.opacity(0), location: 0.00), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.01), location: 0.07), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.04), location: 0.13), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.08), location: 0.20), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.15), location: 0.27), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.23), location: 0.33), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.33), location: 0.40), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.44), location: 0.47), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.56), location: 0.53), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.67), location: 0.60), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.77), location: 0.67), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.85), location: 0.73), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.92), location: 0.80), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.96), location: 0.87), - Gradient.Stop(color: AllinColor.StartBackground.opacity(0.99), location: 0.93), - Gradient.Stop(color: AllinColor.StartBackground, location: 1.00), - ], - startPoint: UnitPoint(x: 0.5, y: 0), - endPoint: UnitPoint(x: 0.5, y: 0.85) - )) - VStack() { - Text("Récupère tes Allcoins et vient parier avec tes amis pour prouver qui est le meilleur.") - .betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 15) - .padding([.leading,.trailing], 40) - Spacer() - Spacer() - NavigationLink(destination: Register().navigationBarBackButtonHidden(true)) - { - Text("Rejoindre") - .betTextStyle(weight: .bold, color: AllinColor.StartBackground, size: 17) - .frame(width: geometry.size.width*0.85, height: 50) - .background(AllinColor.LightPurple) - .cornerRadius(30) - } - - HStack(spacing: 0) { - Text("Tu as déja un compte? ") - .betTextStyle(weight: .regular, color: AllinColor.LightPurple, size: 16) - NavigationLink(destination: Login().navigationBarBackButtonHidden(true)) - { - Text("Connexion") - .betTextStyle(weight: .semibold, color: AllinColor.LightPurple, size: 16) - .underline() - } - } - Spacer() - } - .frame(width: geometry.size.width, height: geometry.size.height/3.5) - .background(AllinColor.StartBackground) - } - .frame(width: geometry.size.width, height: geometry.size.height) - .background( - Image("Background") - .resizable() - ) - .edgesIgnoringSafeArea(.all) - - } - .background(AllinColor.StartBackground) - } -} diff --git a/Sources/allin/allin/Screens/WinModal.swift b/Sources/allin/allin/Screens/WinModal.swift deleted file mode 100644 index c34d143..0000000 --- a/Sources/allin/allin/Screens/WinModal.swift +++ /dev/null @@ -1,233 +0,0 @@ -// -// WinModal.swift -// AllIn -// -// Created by étudiant on 27/09/2023. -// - -import SwiftUI - -struct WinModal: View { - @Environment(\.dismiss) var dismiss - - @State var xOffset: CGFloat = 0 - var body: some View { - ZStack{ - GeometryReader { geometry in - let size = geometry.size.width / 20 - - InfiniteScroller(contentWidth: size * 20) { - - VStack(spacing: 20) { - - VStack(spacing: 20) { - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing:20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - - - } - VStack(spacing: 20) { - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing:20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - HStack(spacing: 20){ - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - Image("Allcoins").resizable().frame(width: 110,height:110) - Image("Allcoins").resizable().frame(width: 110, height:110) - } - - - } - - - }.padding(10) - } - VStack { - ZStack(alignment: .topLeading){ - HStack{ - Spacer() - Image("Icon").resizable().frame(width: 35, height: 35) - Spacer() - } - - Image("Close_icon").resizable().frame(width: 25, height: 25).onTapGesture { - dismiss() - } - - } - HStack{ - Text("FÉLICITATIONS").font(.system(size: 20)).foregroundColor(.white).fontWeight(.semibold).italic() - Text("PSEUDO!").padding(.top,9).font(.system(size: 33)).fontWeight(.heavy).foregroundColor(.white) - }.rotationEffect(.degrees(-4)).padding(.top,40) - Spacer() - AllcoinsCapsule() - Spacer() - RecapBetCard() - Spacer() - - - - - }.padding([.all],20) - } - - }.background( - Image("ModalBackground") - .resizable() - .edgesIgnoringSafeArea(.all) - .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)) - - } -} - -struct WinModal_Previews: PreviewProvider { - static var previews: some View { - WinModal() - } -} - -struct InfiniteScroller: View { - var contentWidth: CGFloat - var content: (() -> Content) - - @State - var xOffset: CGFloat = -800 - - var body: some View { - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 0) { - - content() - content() - content() - content() - content() - content() - content() - content() - - - - } - .offset(x: xOffset, y: 0) - } - .disabled(true) - .onAppear { - withAnimation(.linear(duration: 25).repeatForever(autoreverses: false)) { - xOffset = +contentWidth - } - }.frame(width: 1200).rotationEffect(.degrees(-30)).opacity(0.04) - } -} - - diff --git a/Sources/allin/allin/Services/AuthService.swift b/Sources/allin/allin/Services/AuthService.swift index f57fe8c..da682fa 100644 --- a/Sources/allin/allin/Services/AuthService.swift +++ b/Sources/allin/allin/Services/AuthService.swift @@ -2,47 +2,53 @@ // AuthService.swift // AllIn // -// Created by étudiant on 11/10/2023. +// Created by Emre on 11/10/2023. // import Foundation class AuthService: IAuthService { - let baseURL : String = "https://codefirst.iut.uca.fr/containers/AllDev-api/" - - public func login(email : String, password : String, completion : @escaping (Int)-> ()){ - let url = URL(string: baseURL+"users/login")! + public func login(login: String, password: String, completion : @escaping (Int)-> ()) { + + let url = URL(string: Config.allInApi + "users/login")! var request = URLRequest(url: url) request.httpMethod = "POST" request.setValue("application/json", forHTTPHeaderField: "Content-Type") let json = [ - "username":email, - "password":password, + "login": login.lowercased(), + "password": password, ] if let jsonData = try? JSONSerialization.data(withJSONObject: json, options: []){ URLSession.shared.uploadTask(with: request, from: jsonData) { data, response, error in print ("ALLIN : Process LOGIN") if let httpResponse = response as? HTTPURLResponse { + if httpResponse.statusCode == 200 { + if let data = data, + let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any], + let token = json["token"] as? String { + AppStateContainer.shared.authenticationRefresh = token; + } + } + completion(httpResponse.statusCode) } }.resume() } } - - public func register(email : String, password : String, username : String, completion : @escaping (Int)-> ()){ - let url = URL(string: baseURL+"/users/register")! + func register(username: String, email: String, password: String, completion : @escaping (Int)-> ()) { + let url = URL(string: Config.allInApi + "/users/register")! var request = URLRequest(url: url) request.httpMethod = "POST" request.setValue("application/json", forHTTPHeaderField: "Content-Type") - + let json = [ - "email":email, - "username":username, - "password":password, + "email": email, + "username": username.lowercased(), + "password": password, "nbCoins": "0" ] @@ -56,4 +62,27 @@ class AuthService: IAuthService { } } + func refreshAuthentication(completion: @escaping (Int) -> ()) { + + guard let token = AppStateContainer.shared.authenticationRefresh else { + completion(401) + return + } + + let url = URL(string: Config.allInApi + "users/token")! + var request = URLRequest(url: url) + request.httpMethod = "GET" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + URLSession.shared.dataTask(with: request) { data, response, error in + if let httpResponse = response as? HTTPURLResponse { + completion(httpResponse.statusCode) + if httpResponse.statusCode == 200 { + AppStateContainer.shared.loggedState.connectedUser = true + } + } + }.resume() + } + } diff --git a/Sources/allin/allin/Services/IAuthService.swift b/Sources/allin/allin/Services/IAuthService.swift index e43ea8d..b9d8b50 100644 --- a/Sources/allin/allin/Services/IAuthService.swift +++ b/Sources/allin/allin/Services/IAuthService.swift @@ -2,12 +2,13 @@ // IAuthService.swift // AllIn // -// Created by étudiant on 28/10/2023. +// Created by Emre on 28/10/2023. // import Foundation protocol IAuthService { - func login(email : String, password : String, completion : @escaping (Int)-> ()) - func register(email : String, password : String, username : String, completion : @escaping (Int)-> ()) + func login(login: String, password: String, completion : @escaping (Int)-> ()) + func register(username: String, email: String, password: String, completion : @escaping (Int)-> ()) + func refreshAuthentication(completion: @escaping (Int) -> ()) } diff --git a/Sources/allin/allin/ViewModels/LoginViewModel.swift b/Sources/allin/allin/ViewModels/LoginViewModel.swift new file mode 100644 index 0000000..342d479 --- /dev/null +++ b/Sources/allin/allin/ViewModels/LoginViewModel.swift @@ -0,0 +1,90 @@ +// +// LoginViewModel.swift +// AllIn +// +// Created by Emre on 17/12/2023. +// + +import Foundation +import SwiftUI + +class LoginViewModel: ObservableObject { + + @Inject var authService: IAuthService + @Published var loginIdentifier: String = "" + @Published var loginPassword: String = "" + + @Published var loginIdentifierFieldError: String? + @Published var loginPasswordFieldError: String? + + @Published var errorMessage: String? + @Published var showErrorMessage = false + + func login() { + + guard checkAndSetError(forLogin: true, forPassword: true) else { + return + } + + self.showErrorMessage = false + resetAllFieldErrors() + + authService.login(login: loginIdentifier, password: loginPassword) { statusCode in + switch statusCode { + case 200: + self.onLoginSuccess() + case 404: + AppStateContainer.shared.loggedState.connectedUser = false + self.setErrorMessage(errorMessage: "Login ou mot de passe incorrects.") + default: + AppStateContainer.shared.loggedState.connectedUser = false + self.setErrorMessage(errorMessage: "La connexion a échoué. Veuillez réessayer.") + } + } + } + + private func onLoginSuccess() { + AppStateContainer.shared.loggedState.connectedUser = true + } + + func checkAndSetError(forLogin checkLogin: Bool, forPassword checkPassword: Bool) -> Bool { + var newLoginIdentifierFieldError: String? + var newLoginPasswordFieldError: String? + var hasError = false + + // Login + if checkLogin, loginIdentifier.isEmpty { + newLoginIdentifierFieldError = "Veuillez saisir votre identifiant." + hasError = true + } + + // Password + if checkPassword, loginPassword.isEmpty { + newLoginPasswordFieldError = "Veuillez saisir votre mot de passe." + hasError = true + } + + if !hasError { + // No error + return true + } + + withAnimation { + loginIdentifierFieldError = newLoginIdentifierFieldError + loginPasswordFieldError = newLoginPasswordFieldError + } + return false + } + + func resetAllFieldErrors() { + withAnimation { + loginIdentifierFieldError = nil + loginPasswordFieldError = nil + } + } + + func setErrorMessage(errorMessage: String) { + self.showErrorMessage = true + self.errorMessage = errorMessage + } +} diff --git a/Sources/allin/allin/ViewModels/RegisterViewModel.swift b/Sources/allin/allin/ViewModels/RegisterViewModel.swift new file mode 100644 index 0000000..c206362 --- /dev/null +++ b/Sources/allin/allin/ViewModels/RegisterViewModel.swift @@ -0,0 +1,127 @@ +// +// RegisterViewModel.swift +// AllIn +// +// Created by Emre on 20/12/2023. +// + +import Foundation +import SwiftUI + +class RegisterViewModel: ObservableObject { + + @Inject var authService: IAuthService + @Published var registerUsername: String = "" + @Published var registerEmail: String = "" + @Published var registerPassword: String = "" + @Published var registerConfirmPassword: String = "" + + @Published var registerUsernameFieldError: String? + @Published var registerEmailFieldError: String? + @Published var registerPasswordFieldError: String? + @Published var registerConfirmPasswordFieldError: String? + + @Published var errorMessage: String? + @Published var showErrorMessage = false + + func register() { + + guard checkAndSetError(forUsername: true, forEmail: true, forPassword: true, forConfirmPassword: true) else { + return + } + + self.showErrorMessage = false + resetAllFieldErrors() + + authService.register(username: registerUsername, email: registerEmail, password: registerPassword) { statusCode in + switch statusCode { + case 201: + self.onRegisterSuccess() + case 409: + AppStateContainer.shared.loggedState.connectedUser = false + self.setErrorMessage(errorMessage: "Email ou pseudo déjà utilisé.") + default: + AppStateContainer.shared.loggedState.connectedUser = false + self.setErrorMessage(errorMessage: "La connexion a échoué. Veuillez réessayer.") + } + } + } + + private func onRegisterSuccess() { + AppStateContainer.shared.loggedState.connectedUser = true + } + + func checkAndSetError(forUsername checkUsername: Bool, forEmail checkEmail: Bool, forPassword checkPassword: Bool, forConfirmPassword checkConfirmPassword: Bool) -> Bool { + var newRegisterUsernameFieldError: String? + var newRegisterEmailFieldError: String? + var newRegisterPasswordFieldError: String? + var newRegisterConfirmPasswordFieldError: String? + var hasError = false + + // Username + if checkUsername, registerUsername.isEmpty { + newRegisterUsernameFieldError = "Veuillez saisir votre pseudo." + hasError = true + } + + // Email + if checkEmail, registerEmail.isEmpty { + newRegisterEmailFieldError = "Veuillez saisir votre email." + hasError = true + } + + if checkEmail, isValidEmail(email: registerEmail) { + newRegisterEmailFieldError = "Veuillez saisir un email valide." + hasError = true + } + + // Password + if checkPassword, registerPassword.isEmpty { + newRegisterPasswordFieldError = "Veuillez saisir votre mot de passe." + hasError = true + } + + // Confirm password + if checkConfirmPassword, registerConfirmPassword.isEmpty { + newRegisterConfirmPasswordFieldError = "Veuillez confirmer votre mot de passe." + hasError = true + } + + if checkConfirmPassword, registerConfirmPassword != registerPassword { + newRegisterConfirmPasswordFieldError = "Les mots de passe ne sont pas identiques." + hasError = true + } + + if !hasError { + // No error + return true + } + + withAnimation { + registerUsernameFieldError = newRegisterUsernameFieldError + registerEmailFieldError = newRegisterEmailFieldError + registerPasswordFieldError = newRegisterPasswordFieldError + registerConfirmPasswordFieldError = newRegisterConfirmPasswordFieldError + } + return false + } + + func resetAllFieldErrors() { + withAnimation { + registerUsernameFieldError = nil + registerEmailFieldError = nil + registerPasswordFieldError = nil + registerConfirmPasswordFieldError = nil + } + } + + func setErrorMessage(errorMessage: String) { + self.showErrorMessage = true + self.errorMessage = errorMessage + } + + func isValidEmail(email: String) -> Bool + { + return email.range(of:"^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", options: .regularExpression) == nil + } +} diff --git a/Sources/allin/allin/Views/AllcoinsCapsule.swift b/Sources/allin/allin/Views/AllcoinsCapsule.swift deleted file mode 100644 index 7191408..0000000 --- a/Sources/allin/allin/Views/AllcoinsCapsule.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// AllcoinsCapsule.swift -// AllIn -// -// Created by étudiant on 28/09/2023. -// - -import SwiftUI - -struct AllcoinsCapsule: View { - var body: some View { - Text("Vous remportez").foregroundColor(.white) - HStack{ - Text("2340").betTextStyle(weight: .bold, color: .white, size: 60) - Image("Allcoins").resizable().frame(width: 40, height:40).scaledToFit() - }.padding([.leading,.trailing],30).padding([.top,.bottom],10).background(.white.opacity(0.09)).cornerRadius(999, corners: .allCorners).clipShape(Capsule()).overlay( /// apply a rounded border - RoundedRectangle(cornerRadius: 999) - .stroke(.white, lineWidth: 1.5)) - } -} - -struct AllcoinsCapsule_Previews: PreviewProvider { - static var previews: some View { - AllcoinsCapsule() - } -} diff --git a/Sources/allin/allin/Screens/BetScreen.swift b/Sources/allin/allin/Views/BetView.swift similarity index 58% rename from Sources/allin/allin/Screens/BetScreen.swift rename to Sources/allin/allin/Views/BetView.swift index 3028b72..9e09671 100644 --- a/Sources/allin/allin/Screens/BetScreen.swift +++ b/Sources/allin/allin/Views/BetView.swift @@ -1,21 +1,23 @@ // -// BetScreen.swift +// BetView.swift // AllIn // -// Created by étudiant on 22/09/2023. +// Created by Lucas on 22/09/2023. // import SwiftUI -struct Bet: View { +struct BetView: View { @Binding var showMenu: Bool @State private var showingSheet = false - + var body: some View { + VStack(alignment: .center, spacing: 0) { - TopBarView(showMenu: self.$showMenu) - ScrollView(showsIndicators: false){ + + TopBar(showMenu: self.$showMenu) + ScrollView(showsIndicators: false) { LazyVStack(alignment: .leading, spacing: 0, pinnedViews: [.sectionHeaders]) { TrendingBetCard().padding(.top,25).padding([.leading,.trailing],25) @@ -25,15 +27,17 @@ struct Bet: View { BetCard() BetCard() Button("Show Sheet") { - showingSheet.toggle() - } - .sheet(isPresented: $showingSheet) { - WinModal() - } - }.padding([.leading,.trailing],25) + showingSheet.toggle() + } + .sheet(isPresented: $showingSheet) { + WinModal() + } + } + .padding([.leading,.trailing],25) + } header: { ZStack{ - AllinColor.fadeInGradiantCard + AllInColors.fadeInGradiantCard ScrollView(.horizontal,showsIndicators: false){ HStack{ ChoiceCapsule() @@ -43,19 +47,24 @@ struct Bet: View { ChoiceCapsule() ChoiceCapsule() ChoiceCapsule() - }.padding(.leading,25).padding([.top,.bottom],15) - + } + .padding(.leading,25) + .padding([.top,.bottom],15) } } - } - } } - Spacer() } - .edgesIgnoringSafeArea(.bottom).background(AllinColor.backgroundWhite) + .edgesIgnoringSafeArea(.bottom) + .background(AllInColors.backgroundColor) + } +} + +struct BetView_Previews: PreviewProvider { + static var previews: some View { + BetView(showMenu: .constant(false)) + .preferredColorScheme(.dark) } - } diff --git a/Sources/allin/allin/Views/ChoiceCapsule.swift b/Sources/allin/allin/Views/ChoiceCapsule.swift deleted file mode 100644 index bb2f962..0000000 --- a/Sources/allin/allin/Views/ChoiceCapsule.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// ChoiceCapsule.swift -// AllIn -// -// Created by étudiant on 26/09/2023. -// - -import SwiftUI - -struct ChoiceCapsule: View { - @State var buttonPressed = false - var body: some View { - Group { - if(buttonPressed){ - Text("En cours").font(.system(size: 15)).foregroundColor(.white).fontWeight(.semibold).padding([.leading,.trailing],13.8).padding([.top,.bottom], 7).background(AllinColor.PrimaryTextColor).clipShape(Capsule() - ) - }else{ - Text("En cours").font(.system(size: 15)).foregroundColor(AllinColor.lightGray).fontWeight(.regular).padding([.leading,.trailing],15).padding([.top,.bottom], 7).background(AllinColor.CapsuleGray).clipShape(Capsule()).overlay( /// apply a rounded border - RoundedRectangle(cornerRadius: 20) - .stroke(AllinColor.LightGray_200, lineWidth: 1) - ) - } - } - .onTapGesture() { - buttonPressed.toggle() - } - - } -} - -struct ChoiceCapsule_Previews: PreviewProvider { - static var previews: some View { - ChoiceCapsule() - } -} diff --git a/Sources/allin/allin/Views/ConfidentialityView.swift b/Sources/allin/allin/Views/ConfidentialityView.swift deleted file mode 100644 index 14bf98c..0000000 --- a/Sources/allin/allin/Views/ConfidentialityView.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// ConfidentialityView.swift -// AllIn -// -// Created by étudiant on 04/10/2023. -// - -import SwiftUI - -struct ConfidentialityView: View { - - var image: String - var text: String - var selected: Bool - - var body: some View { - HStack() { - Image(selected ? image : image+"-purple") - .resizable() - .scaledToFit() - .padding(.vertical, 12) - - Text(text) - .font(.system(size: 17)) - .fontWeight(.bold) - .foregroundColor(selected ? .white : AllinColor.PrimaryTextColor) - } - .frame(width: 110, height: 45) - .background(selected ? AllinColor.PrimaryTextColor : .white) - .cornerRadius(10) - } -} diff --git a/Sources/allin/allin/Views/CreationBetView.swift b/Sources/allin/allin/Views/CreationBetView.swift new file mode 100644 index 0000000..d350926 --- /dev/null +++ b/Sources/allin/allin/Views/CreationBetView.swift @@ -0,0 +1,459 @@ +// +// CreateBetView.swift +// AllIn +// +// Created by Emre on 29/09/2023. +// + +import SwiftUI + +struct CreationBetView: View { + + @State private var showTitlePopover: Bool = false + @State private var showDescriptionPopover: Bool = false + @State private var showRegistrationEndDatePopover: Bool = false + @State private var showBetEndDatePopover: Bool = false + @State private var showConfidentialityPopover: Bool = false + + @State private var selectedTab = 0 + @Binding var showMenu: Bool + @State var selectedConfidentiality = true + @State private var theme: String = "" + @State private var description: String = "" + @State var present = false + @State private var endRegisterDate = Date() + @State private var endBetDate = Date() + let dateRange: ClosedRange = { + let calendar = Calendar.current + let startDate = Date() + let endDate = calendar.date(byAdding: .year, value: 10, to: startDate)! + return startDate ... endDate + }() + @State private var response = "" + @State private var values: [String] = [] + + @State private var selectedOption = 0 + let options: [(Int, String, String)] = [ + (0, "questionMarkIcon", "Oui / Non"), + (1, "footballIcon", "Pari sportif"), + (2, "paintbrushIcon", "Réponses personnalisées") + ] + + @State var groupedItems: [[String]] = [[String]] () + let screenWidth = UIScreen.main.bounds.width + + private func updateGroupedItems() { + + var updatedGroupedItems: [[String]] = [[String]] () + var tempItems: [String] = [String] () + var width: CGFloat = 0 + var dynamicWidthLimit: CGFloat + + for value in values { + let label = UILabel() + label.text = value + label.sizeToFit() + dynamicWidthLimit = CGFloat(tempItems.count) * 105.0 + + let labelWidth = label.frame.size.width + if (width + labelWidth + dynamicWidthLimit) < screenWidth { + width += labelWidth + tempItems.append(value) + } else { + width = labelWidth + updatedGroupedItems.append(tempItems) + tempItems.removeAll() + tempItems.append(value) + } + } + updatedGroupedItems.append(tempItems) + + groupedItems = updatedGroupedItems + } + + var body: some View { + VStack(alignment: .center, spacing: 0) { + TopBar(showMenu: self.$showMenu) + TabView(selection: $selectedTab) { + + // First Page + ScrollView(showsIndicators: false) { + VStack(spacing: 5) { + VStack() { + HStack(spacing: 5) { + Text("Thème") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 17) + + Image("questionMarkGreyIcon") + .resizable() + .frame(width: 14, height: 14) + .onTapGesture { + showTitlePopover.toggle() + } + .allInPopover(isPresented: $showTitlePopover, paddingHorizontal: 20) { + "Généralement un nom commun décrivant le thème global du pari pour servir de référence." + } + + Spacer() + } + .frame(width: 340) + .padding(.leading, 10) + + TextField("", text: $theme, prompt: Text("Études, sport, soirée...") + .foregroundColor(AllInColors.lightGrey300Color) + .font(.system(size: 14)) + .fontWeight(.light)) + .padding() + .background( + RoundedRectangle(cornerRadius: 9) + .fill(AllInColors.componentBackgroundColor) + .frame(height: 40) + ) + .frame(width: 350, height: 40) + .foregroundColor(.black) + .overlay( + RoundedRectangle(cornerRadius: 10, style: .continuous) + .stroke(AllInColors.delimiterGrey, lineWidth: 1) + ) + .padding(.bottom, 5) + } + + HStack(spacing: 5) { + Text("Phrase du BET") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 17) + + Image("questionMarkGreyIcon") + .resizable() + .frame(width: 14, height: 14) + .allInPopover(isPresented: $showDescriptionPopover, paddingHorizontal: 10) { + "Court descriptif du pari, souvent une question ouverte ou fermée." + } + + Spacer() + } + .frame(width: 340) + .padding(.leading, 10) + + TextField("", text: $description, prompt: Text("David sera absent Lundi matin en cours ?") + .foregroundColor(AllInColors.lightGrey300Color) + .font(.system(size: 14)) + .fontWeight(.light), axis: .vertical) + .lineLimit(4, reservesSpace: true) + .padding() + .background( + RoundedRectangle(cornerRadius: 9) + .fill(AllInColors.componentBackgroundColor) + .frame(height: 110) + ) + .frame(width: 350, height: 110) + .foregroundColor(.black) + .overlay( + RoundedRectangle(cornerRadius: 10, style: .continuous) + .stroke(AllInColors.delimiterGrey, lineWidth: 1) + ) + .padding(.bottom, 30) + + HStack(spacing: 5) { + Text("Date de fin des inscriptions") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 17) + Image("questionMarkGreyIcon") + .resizable() + .frame(width: 14, height: 14) + .allInPopover(isPresented: $showRegistrationEndDatePopover) { + "Date de fin avant laquelle les joueurs peuvent s'inscrire en pariant leurs Allcoins." + } + + Spacer() + } + .frame(width: 340) + .padding(.leading, 10) + + HStack(spacing: 5) { + DatePicker( + "", + selection: $endRegisterDate, + in: dateRange, + displayedComponents: [.date, .hourAndMinute] + ) + .accentColor(AllInColors.lightPurpleColor) + .labelsHidden() + .padding(.bottom, 10) + Spacer() + } + .frame(width: 340) + + VStack(alignment: .leading, spacing: 5) { + VStack() { + HStack(spacing: 5) { + Text("Date de fin du BET") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 17) + + Image("questionMarkGreyIcon") + .resizable() + .frame(width: 14, height: 14) + .allInPopover(isPresented: $showBetEndDatePopover) { + "Date des résultats où seront redistribués les Allcoins aux vainqueurs." + } + + Spacer() + } + .padding(.leading, 10) + } + DatePicker( + "", + selection: $endBetDate, + in: dateRange, + displayedComponents: [.date, .hourAndMinute] + ) + .accentColor(AllInColors.lightPurpleColor) + .labelsHidden() + .padding(.bottom, 40) + } + .frame(width: 340) + + VStack { + HStack(spacing: 5) { + Text("Confidentialité du BET") + .textStyle(weight: .bold, color: AllInColors.primaryTextColor, size: 17) + Image("questionMarkGreyIcon") + .resizable() + .frame(width: 14, height: 14) + .allInPopover(isPresented: $showConfidentialityPopover, paddingHorizontal: 15) { + "Option permettant d'ouvrir ou non le pari à des inconnus." + } + + Spacer() + } + .padding(.leading, 10) + + HStack(spacing: 5) { + ConfidentialityButton(image: "globe", text: "Public", selected: !selectedConfidentiality) + .onTapGesture { + selectedConfidentiality = false + } + .padding(.trailing, 5) + + ConfidentialityButton(image: "lock", text: "Privé", selected: selectedConfidentiality) + .onTapGesture { + selectedConfidentiality = true + } + Spacer() + } + } + .frame(width: 340) + .padding(.bottom, 10) + + + VStack(spacing: 10) { + + if self.selectedConfidentiality { + DropDownFriends() + .padding(.bottom, 30) + } + + HStack() { + Spacer() + Text("Votre BET sera visible par tous les utilisateurs.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .multilineTextAlignment(.center) + Spacer() + } + HStack() { + Spacer() + Text("Tout le monde pourra rejoindre le BET.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .multilineTextAlignment(.center) + Spacer() + } + HStack() { + Spacer() + Text("Vous pourrez inviter des amis à tout moment pendant la période d’inscription.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .padding(.leading, 35) + .multilineTextAlignment(.center) + Spacer() + } + } + Spacer() + HStack() { + Spacer() + Button(action: {}) { + Text("Publier le bet") + .font(.system(size: 24)) + .fontWeight(.bold) + .overlay { + AllInColors.primaryGradient.frame(width: 150) + .mask( + Text("Publier le bet") + .font(.system(size: 24)) + .fontWeight(.bold) + .frame(maxWidth: .infinity) + ) + } + } + .frame(width: 335, height: 60) + .background(AllInColors.componentBackgroundColor) + .cornerRadius(12) + .overlay( + RoundedRectangle(cornerRadius: 10, style: .continuous) + .stroke(AllInColors.delimiterGrey, lineWidth: 1) + ) + Spacer() + } + } + .padding([.leading, .trailing, .bottom], 30) + .padding(.top, 50) + } + .tag(0) + + // Second Page + VStack(spacing: 5) { + + VStack() { + DropDownMenu(selectedOption: $selectedOption, options: options) + } + .padding([.bottom], 15) + .frame(width: 340) + + + Group { + switch selectedOption { + case 0: + Text("Les utilisateurs devront répondre au pari avec OUI ou NON.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .padding([.leading, .trailing], 20) + + Text("Aucune autre réponse ne sera acceptée.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + + case 2: + Text("Vous allez renseigner les différentes réponses disponibles dans ce pari.") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .padding(.leading, 13) + + Text("Faites attention a etre claire et éviter toutes incertitudes") + .textStyle(weight: .bold, color: AllInColors.veryLightPurpleColor, size: 13) + .padding(.bottom, 15) + + VStack(spacing: 5) { + HStack(spacing: 0) { + TextField("", text: $response, prompt: Text("Intitulé de réponse") + .foregroundColor(AllInColors.lightGrey200Color) + .font(.system(size: 16)) + .fontWeight(.medium)) + .padding() + .background( + Rectangle() + .fill(Color.white) + .cornerRadius(9, corners: [.topLeft, .bottomLeft]) + .frame(height: 38) + ) + .frame(width: 250, height: 38) + .foregroundColor(.black) + .onChange(of: response) { newValue in + if newValue.count > 20 { + response = String(newValue.prefix(20)) + } + } + + Button(action: { + if !response.isEmpty && values.count < 5 { + values.append(response) + updateGroupedItems() + response = "" + } + }) { + Text("Ajouter") + .foregroundColor(.white) + } + .frame(width: 95, height: 40) + .background(AllInColors.lightPurpleColor) + .cornerRadius(10, corners: [.bottomRight, .topRight]) + .cornerRadius(2, corners: [.bottomLeft, .topLeft]) + } + HStack { + Spacer() + Text("encore \(5 - values.count) max.") + .textStyle(weight: .regular, color: AllInColors.primaryTextColor, size: 12) + + } + VStack(spacing: 10) { + ForEach(groupedItems, id: \.self) { items in + HStack { + ForEach(items, id: \.self) { text in + HStack { + Text(text) + .foregroundColor(.white) + .lineLimit(1) + Button(action: { + if let index = values.firstIndex(of: text) { + values.remove(at: index) + updateGroupedItems() + } + }) { + Image("crossIcon") + .resizable() + .frame(width: 15, height: 15) + .foregroundColor(.white) + } + } + .padding(5) + .padding([.leading, .trailing], 5) + .background(AllInColors.lightPurpleColor) + .cornerRadius(16) + } + Spacer() + } + } + } + } + default: + Text("En attente") + } + } + Spacer() + } + .padding([.leading, .trailing], 30) + .padding(.top, 50) + .tag(1) + } + .overlay( + HStack { + Button(action: { + selectedTab = 0 + }) { + Text("Question") + .font(.system(size: 16)) + .padding() + .fontWeight(selectedTab == 0 ? .bold : .semibold) + .foregroundColor(selectedTab == 0 ? AllInColors.primaryTextColor : .gray) + .offset(y: 0) + } + Button(action: { + selectedTab = 1 + }) { + Text("Réponses") + .font(.system(size: 16)) + .padding() + .fontWeight(selectedTab == 1 ? .bold : .semibold) + .foregroundColor(selectedTab == 1 ? AllInColors.primaryTextColor : .gray) + .offset(y: 0) + } + } + , alignment: .top) + .tabViewStyle(PageTabViewStyle()) + } + .onTapGesture { + hideKeyboard() + } + .edgesIgnoringSafeArea(.bottom) + .background(AllInColors.backgroundColor) + } +} + +struct CreationBetView_Previews: PreviewProvider { + static var previews: some View { + CreationBetView(showMenu: .constant(false)) + .preferredColorScheme(.dark) + } +} diff --git a/Sources/allin/allin/Views/DropDownMenuView.swift b/Sources/allin/allin/Views/DropDownMenuView.swift deleted file mode 100644 index b5627ee..0000000 --- a/Sources/allin/allin/Views/DropDownMenuView.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// DropDownMenuView.swift -// AllIn -// -// Created by étudiant on 19/10/2023. -// - -import SwiftUI - -struct DropDownMenuView: View { - - @State var expand = false - @Binding var selectedOption: Int - var options: [(Int, String, String)] - - var body: some View { - VStack(spacing: 0, content: { - Button(action: { self.expand.toggle() }) { - HStack{ - Image(options[selectedOption].1) - .resizable() - .scaledToFit() - .frame(width: 15, height: 15) - Text(options[selectedOption].2).fontWeight(.bold).foregroundColor(AllinColor.PrimaryTextColor).font(.system(size: 15)) - Spacer() - Image(expand ? "chevron_up" : "chevron_down").resizable().frame(width: 15, height: 10).scaledToFill() - } - .padding([.leading, .trailing], 15) - .frame(height: 43) - } - if expand { - Rectangle() - .frame(height: 1) - .foregroundColor(AllinColor.VeryLightGray) - .padding(.bottom, 18) - VStack(spacing: 0) { - ForEach(0.. 25 { + viewModel.registerUsername = String(value.prefix(25)) + } + }) + .focused($focusedField, equals: .username) + .submitLabel(.next) + } + + VStack { + if let emailError = $viewModel.registerEmailFieldError.wrappedValue { + Text(emailError) + .textStyle(weight: .bold, color: .red, size: 10) + } + TextField("", text: $viewModel.registerEmail, prompt: Text("Email").foregroundColor(.gray)) + .padding() + .keyboardType(.emailAddress) + .background(Color.white.cornerRadius(9)) + .frame(width: 300) + .foregroundColor(.black) + .overlay( + RoundedRectangle(cornerRadius: 9, style: .continuous) + .stroke(AllInColors.blueGrey800Color, lineWidth: 1) + ) + .padding(.bottom, 8) + .onChange(of: viewModel.registerEmail, perform: { value in + guard value != viewModel.registerEmail else { return } + if value.count > 50 { + viewModel.registerEmail = String(value.prefix(50)) + } + }) + .focused($focusedField, equals: .email) + .textContentType(.emailAddress) + .submitLabel(.next) + } + + VStack { + if let passwordError = $viewModel.registerPasswordFieldError.wrappedValue { + Text(passwordError) + .font(.system(size: 10)) + .foregroundColor(.red) + .fontWeight(.bold) + } + Group { + if isPasswordVisible { + SecureField("", text: $viewModel.registerPassword, prompt: Text("Mot de passe").foregroundColor(.gray)) + } else { + TextField("", text: $viewModel.registerPassword, prompt: Text("Mot de passe").foregroundColor(.gray)) + .autocapitalization(.none) + } + } + .padding() + .background(Color.white.cornerRadius(9)) + .frame(width: 300) + .overlay( + RoundedRectangle(cornerRadius: 9, style: .continuous) + .stroke(AllInColors.blueGrey800Color, lineWidth: 1) + ) + .foregroundColor(.black) + .padding(.bottom, 8) + .overlay( + HStack { + Spacer() + Button(action: { + isPasswordVisible.toggle() + }) { + Image(systemName: isPasswordVisible ? "eye.slash" : "eye") + .foregroundColor(.gray) + } + .padding(.bottom, 8) + .padding(.trailing, 8) + } + ) + .focused($focusedField, equals: .password) + } + + VStack { + if let passwordConfirmError = $viewModel.registerConfirmPasswordFieldError.wrappedValue { + Text(passwordConfirmError) + .font(.system(size: 10)) + .foregroundColor(.red) + .fontWeight(.bold) + } + + Group { + if isPasswordVisible { + SecureField("", text: $viewModel.registerConfirmPassword, prompt: Text("Confirmation du Mot de passe").foregroundColor(.gray)) + } else { + TextField("", text: $viewModel.registerConfirmPassword, prompt: Text("Confirmation du Mot de passe").foregroundColor(.gray)) + .autocapitalization(.none) + } + } + .padding() + .background(Color.white.cornerRadius(9)) + .frame(width: 300) + .overlay( + RoundedRectangle(cornerRadius: 9, style: .continuous) + .stroke(AllInColors.blueGrey800Color, lineWidth: 1) + ) + .overlay( + HStack { + Spacer() + Button(action: { + isPasswordVisible.toggle() + }) { + Image(systemName: isPasswordVisible ? "eye.slash" : "eye") + .foregroundColor(.gray) + } + .padding(.trailing, 8) + } + ) + .foregroundColor(.black) + .padding(.bottom, 50) + .focused($focusedField, equals: .passwordConfirm) + .submitLabel(.next) + } + + Button(action: { + viewModel.register() + }) { + Text("S'inscrire") + .textStyle(weight: .bold, color: .white, size: 17) + + .frame(width: 300, height: 60) + .background(LinearGradient(gradient: + Gradient(colors:[AllInColors.pinkAccentColor,AllInColors.purpleAccentColor,AllInColors.blueAccentColor]), + startPoint: .bottomLeading, endPoint: .topTrailing)) + .background( + .opacity(0) + ) + .cornerRadius(13) + } + + Spacer() + + HStack(spacing: 0) { + Text("Tu as déjà un compte? ") + .textStyle(weight: .regular, color: AllInColors.darkBlueColor, size: 16) + + NavigationLink(destination: LoginView().navigationBarBackButtonHidden(true)) + { + Text("Se connecter") + .textStyle(weight: .semibold, color: AllInColors.darkPurpleColor, size: 16) + } + } + .padding(.bottom, 10) + + } + .frame(minWidth: geometry.size.width, minHeight: geometry.size.height) + .onTapGesture { + hideKeyboard() + } + + } + .alert(isPresented: $viewModel.showErrorMessage) { + Alert(title: Text("Erreur lors de l'enregistrement"), message: Text(viewModel.errorMessage ?? ""), dismissButton: .default(Text("OK"))) + } + .background(AllInColors.startBackgroundColor) + .onSubmit { + switch focusedField { + case .username: + focusedField = .email + case .email: + focusedField = .password + case .password: + focusedField = .passwordConfirm + case .passwordConfirm: + focusedField = nil + default: + focusedField = nil + } + } + } + } +} + +struct RegisterView_Previews: PreviewProvider { + static var previews: some View { + RegisterView() + .preferredColorScheme(.dark) + } +} diff --git a/Sources/allin/allin/Views/SplashView.swift b/Sources/allin/allin/Views/SplashView.swift new file mode 100644 index 0000000..730e3aa --- /dev/null +++ b/Sources/allin/allin/Views/SplashView.swift @@ -0,0 +1,31 @@ +// +// SplashView.swift +// AllIn +// +// Created by Emre on 23/09/2023. +// + +import SwiftUI + +struct SplashView: View { + var body: some View { + ZStack { + LinearGradient( + gradient: Gradient(colors: [AllInColors.pinkAccentColor, AllInColors.purpleAccentColor, AllInColors.lightBlueAccentColor]), + startPoint: .bottomLeading, + endPoint: .topTrailing + ) + .edgesIgnoringSafeArea(.all) + + Image("allinIcon") + .resizable() + .frame(width: 80, height: 80) + } + } +} + +struct SplashView_Previews: PreviewProvider { + static var previews: some View { + SplashView() + } +} diff --git a/Sources/allin/allin/Views/TextCapsule.swift b/Sources/allin/allin/Views/TextCapsule.swift deleted file mode 100644 index 699fdf4..0000000 --- a/Sources/allin/allin/Views/TextCapsule.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// TextCapsule.swift -// AllIn -// -// Created by étudiant on 24/09/2023. -// - -import SwiftUI - -struct TextCapsule: View { - var body: some View { - Text("12 sept.").font(.system(size: 15)).foregroundColor(AllinColor.PrimaryTextColor).fontWeight(.bold).padding([.leading,.trailing],10).padding([.top,.bottom], 5).background(AllinColor.CapsuleGray).clipShape(Capsule()).overlay( /// apply a rounded border - RoundedRectangle(cornerRadius: 20) - .stroke(AllinColor.DelimiterGray, lineWidth: 1) - ) - } -} - -struct TextCapsule_Previews: PreviewProvider { - static var previews: some View { - TextCapsule() - } -} diff --git a/Sources/allin/allin/Views/WelcomeView.swift b/Sources/allin/allin/Views/WelcomeView.swift new file mode 100644 index 0000000..768683f --- /dev/null +++ b/Sources/allin/allin/Views/WelcomeView.swift @@ -0,0 +1,106 @@ +// +// WelcomeView.swift +// AllIn +// +// Created by Emre on 23/09/2023. +// + +import SwiftUI + +struct WelcomeView: View { + var body: some View { + GeometryReader { geometry in + VStack(alignment: .leading, spacing: 0) { + Spacer() + VStack(alignment: .leading, spacing: -5) { + Spacer() + Spacer() + Text("Bienvenue sur,") + .textStyle(weight: .bold, color: AllInColors.darkBlueColor, size: 30) + .frame(alignment: .topLeading) + .frame(width: geometry.size.width, alignment: .topLeading) + + Text("Allin") + .font(.system(size: 45).bold()) + .foregroundStyle(LinearGradient( + colors: [AllInColors.pinkAccentColor, AllInColors.blueAccentColor], + startPoint: .bottomLeading, + endPoint: .topTrailing + )) + .padding(.bottom, 40) + } + .padding([.leading], geometry.size.width*0.2) + .frame(width: geometry.size.width, height: 320) + .background( LinearGradient( + stops: [ + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0), location: 0.00), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.01), location: 0.07), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.04), location: 0.13), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.08), location: 0.20), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.15), location: 0.27), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.23), location: 0.33), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.33), location: 0.40), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.44), location: 0.47), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.56), location: 0.53), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.67), location: 0.60), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.77), location: 0.67), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.85), location: 0.73), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.92), location: 0.80), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.96), location: 0.87), + Gradient.Stop(color: AllInColors.startBackgroundColor.opacity(0.99), location: 0.93), + Gradient.Stop(color: AllInColors.startBackgroundColor, location: 1.00), + ], + startPoint: UnitPoint(x: 0.5, y: 0), + endPoint: UnitPoint(x: 0.5, y: 0.85) + )) + VStack() { + Text("Récupère tes Allcoins et vient parier avec tes amis pour prouver qui est le meilleur.") + .textStyle(weight: .regular, color: AllInColors.darkBlueColor, size: 15) + .frame(width: geometry.size.width*0.8, alignment: .leading) + .padding([.leading,.trailing], 40) + + Spacer() + Spacer() + + NavigationLink(destination: RegisterView().navigationBarBackButtonHidden(true)) + { + Text("Rejoindre") + .textStyle(weight: .bold, color: AllInColors.whiteColor, size: 17) + .frame(width: min(geometry.size.width*0.85, 500), height: 50) + .background(AllInColors.loginPurpleColor) + .cornerRadius(30) + } + + HStack(spacing: 0) { + Text("Tu as déja un compte? ") + .textStyle(weight: .regular, color: AllInColors.loginPurpleColor, size: 16) + + NavigationLink(destination: LoginView().navigationBarBackButtonHidden(true)) + { + Text("Connexion") + .textStyle(weight: .semibold, color: AllInColors.loginPurpleColor, size: 16) + .underline() + } + } + Spacer() + } + .frame(width: geometry.size.width, height: geometry.size.height/3.5) + .background(AllInColors.startBackgroundColor) + } + .frame(width: geometry.size.width, height: geometry.size.height) + .background( + Image("welcomeBackgroundImage") + .resizable() + ) + .edgesIgnoringSafeArea(.all) + + } + .background(AllInColors.startBackgroundColor) + } +} + +struct WelcomeView_Previews: PreviewProvider { + static var previews: some View { + WelcomeView() + } +} diff --git a/Sources/allin/allin/allinApp.swift b/Sources/allin/allin/allinApp.swift index b1b51c0..2840c90 100644 --- a/Sources/allin/allin/allinApp.swift +++ b/Sources/allin/allin/allinApp.swift @@ -2,14 +2,17 @@ // AllInApp.swift // AllIn // -// Created by Emre KARTAL on 19/09/2023. +// Created by Emre on 19/09/2023. // import SwiftUI @main struct AllInApp: App { + + @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate let DI = DependencyInjection.shared + init() { DI.addSingleton(IAuthService.self, AuthService()) } diff --git a/Sources/allin/allinTests/allinTests.swift b/Sources/allin/allinTests/allinTests.swift index f089b4d..b8bfa77 100644 --- a/Sources/allin/allinTests/allinTests.swift +++ b/Sources/allin/allinTests/allinTests.swift @@ -2,36 +2,13 @@ // AllInTests.swift // AllInTests // -// Created by Emre KARTAL on 19/09/2023. +// Created by Emre on 19/09/2023. // import XCTest @testable import AllIn final class AllInTests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - // Any test you write for XCTest can be annotated as throws and async. - // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. - // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. - } - - func testPerformanceExample() throws { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } func testInstance() { DependencyInjection.shared.addSingleton(UserTest.self, UserTest(age: 10)) @@ -41,6 +18,7 @@ final class AllInTests: XCTestCase { view1.setAge() XCTAssertEqual(view1.getAge(), view2.getAge()) + view2.setAge() XCTAssertEqual(view1.getAge(), view2.getAge()) } @@ -71,5 +49,5 @@ final class AllInTests: XCTestCase { user.age = 40 } } - + } diff --git a/Sources/allin/allinUITests/allinUITests.swift b/Sources/allin/allinUITests/allinUITests.swift index d4c473f..ee152c5 100644 --- a/Sources/allin/allinUITests/allinUITests.swift +++ b/Sources/allin/allinUITests/allinUITests.swift @@ -2,7 +2,7 @@ // AllInUITests.swift // AllInUITests // -// Created by Emre KARTAL on 19/09/2023. +// Created by Emre on 19/09/2023. // import XCTest diff --git a/Sources/allin/allinUITests/allinUITestsLaunchTests.swift b/Sources/allin/allinUITests/allinUITestsLaunchTests.swift index b8a5cb0..7a7b1ea 100644 --- a/Sources/allin/allinUITests/allinUITestsLaunchTests.swift +++ b/Sources/allin/allinUITests/allinUITestsLaunchTests.swift @@ -2,7 +2,7 @@ // AllInUITestsLaunchTests.swift // AllInUITests // -// Created by Emre KARTAL on 19/09/2023. +// Created by Emre on 19/09/2023. // import XCTest