From 19dbf6938ec097d9cfac60f230ffea9bbdb7605c Mon Sep 17 00:00:00 2001 From: "emre.kartal" Date: Wed, 20 Dec 2023 21:09:46 +0100 Subject: [PATCH] Improvement of the structure and code of the project, modification of the launchScreen, improvement of the responsiveness, page creation of a bet is finished and saving the connection token locally :white_check_mark: --- Sources/allin/.DS_Store | Bin 6148 -> 8196 bytes Sources/allin/allin.xcodeproj/project.pbxproj | 614 +++++++++--------- .../xcshareddata/xcschemes/AllIn.xcscheme | 101 +++ Sources/allin/allin/AppDelegate.swift | 41 ++ Sources/allin/allin/AppState.swift | 24 + .../AllCoinsIcon.imageset/Vector.png | Bin 5746 -> 0 bytes .../AppIcon.appiconset/Contents.json | 2 +- .../{Group 217.png => Logo.png} | Bin .../BackGradiant2.imageset/image 17.png | Bin 167830 -> 0 bytes .../Background.imageset/Contents.json | 21 - .../Contents.json | 2 +- .../Contents.json | 0 .../Contents.json | 12 +- .../ChevronRightICon.imageset/Contents.json | 2 +- ...-left-solid (1) 1.png => chevronRight.png} | Bin .../Close_icon.imageset/Contents.json | 21 - .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../DefaultUserIcon.imageset/Contents.json | 21 - .../DeleteButtonColor.colorset/Contents.json | 38 -- .../Contents.json | 0 .../Contents.json | 2 +- .../fire.png} | Bin .../Friends.imageset/Contents.json | 21 - .../GearIcon.imageset/Contents.json | 2 +- .../{gear-solid 2.png => gear.png} | Bin .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 12 +- .../Contents.json | 0 .../Icon.imageset/Contents.json | 21 - .../Icon.imageset/Group 2-2.png | Bin 27830 -> 0 bytes .../Contents.json | 12 +- .../LightGray_200.colorset/Contents.json | 38 -- .../Contents.json | 6 +- .../Contents.json | 0 .../Contents.json | 0 .../LightPurpleColor.colorset/Contents.json | 38 ++ .../Contents.json | 0 .../ModalBackground.imageset/Contents.json | 21 - .../Money.imageset/Contents.json | 21 - .../Contents.json | 0 .../Contents.json | 38 -- .../Contents.json | 0 .../PrimaryTextColor.colorset/Contents.json | 12 +- .../Contents.json | 8 +- .../Contents.json | 38 -- .../SkyBlueColor.colorset/Contents.json | 38 ++ .../Contents.json | 0 .../StrokeGrayColor.colorset/Contents.json | 38 -- .../Contents.json | 38 -- .../TopBarColorPink.colorset/Contents.json | 38 -- .../Trending.imageset/Contents.json | 22 - .../Trending.imageset/Mask group.png | Bin 345 -> 0 bytes .../Contents.json | 38 -- .../Contents.json | 0 .../Contents.json | 0 .../VideoGame.imageset/Contents.json | 21 - .../Contents.json | 6 +- .../allcoinIcon.imageset/Contents.json | 21 + .../allcoinIcon.imageset/allcoin.png | Bin 0 -> 5783 bytes .../allcoinWhiteIcon.imageset/Contents.json | 21 + .../allcoinWhite.png} | Bin .../Contents.json | 2 +- .../allinIcon.imageset/allin.png | Bin 0 -> 27912 bytes .../chevronDownIcon.imageset/Contents.json | 21 + .../chevronDown.png} | Bin .../Contents.json | 2 +- .../chevronUp.png} | Bin .../chevron_down.imageset/Contents.json | 21 - .../chevron_up.imageset/Contents.json | 21 - .../Contents.json | 21 - .../cross.imageset/Contents.json | 21 - .../cross.imageset/Unioncross.png | Bin 422 -> 0 bytes .../Contents.json | 2 +- .../cross.png} | Bin .../defaultUserImage.imageset/Contents.json | 21 + .../defaultUser.png} | Bin .../Contents.json | 2 +- .../Eyes.png => eyesImage.imageset/eyes.png} | Bin .../Contents.json | 2 +- .../football.png} | Bin .../friendsImage.imageset/Contents.json | 21 + .../friends.png} | Bin .../globe-solid-purple.imageset/Contents.json | 21 - .../globe-solid.imageset/Contents.json | 21 - .../Contents.json | 0 .../globe.png} | Bin .../globePurpleIcon.imageset/Contents.json | 21 + .../globePurple.png} | Bin .../launchScreenImage.imageset/Contents.json | 21 + .../launchScreen.png} | Bin .../lock-solid-purple.imageset/Contents.json | 21 - .../lock-solid.imageset/Contents.json | 21 - .../lockIcon.imageset/Contents.json | 21 + .../lock.png} | Bin .../lockPurpleIcon.imageset/Contents.json | 21 + .../lockPurple.png} | Bin .../menu.imageset/Contents.json | 22 - .../Contents.json | 21 + .../background.png} | Bin .../moneyImage.imageset/Contents.json | 21 + .../money.png} | Bin .../paintbrushIcon.imageset/Contents.json | 21 + .../paintbrush.png} | Bin .../Contents.json | 21 + .../questionMarkGrey.png} | Bin .../questionMarkIcon.imageset/Contents.json | 21 + .../questionMark.png} | Bin .../threeLinesIcon.imageset/Contents.json | 22 + .../threeLines 1.png} | Bin .../threeLines.png} | Bin .../Contents.json | 2 +- .../videoGame.png} | Bin .../Contents.json | 21 + .../WelcomeBackground.png} | Bin .../allin/Components/AllcoinsCapsule.swift | 35 + .../AllcoinsCounter.swift} | 18 +- .../allin/{Views => Components}/BetCard.swift | 60 +- .../allin/Components/ChoiceCapsule.swift | 47 ++ .../Components/ConfidentialityButton.swift | 38 ++ .../allin/Components/DropDownFriends.swift | 98 +++ .../allin/allin/Components/DropDownMenu.swift | 75 +++ .../Friend.swift} | 17 +- .../MenuView.swift => Components/Menu.swift} | 41 +- .../allin/Components/ParameterMenu.swift | 47 ++ .../RankingRow.swift} | 21 +- .../allin/allin/Components/RecapBetCard.swift | 121 ++++ .../allin/allin/Components/TextCapsule.swift | 28 + .../TopBar.swift} | 22 +- .../TrendingBetCard.swift | 40 +- Sources/allin/allin/Components/UserInfo.swift | 32 + .../{Views => Components}/UsersPreview.swift | 10 +- Sources/allin/allin/Components/WinModal.swift | 228 +++++++ Sources/allin/allin/ContentView.swift | 20 +- .../allin/allin/Extensions/Extensions.swift | 56 +- Sources/allin/allin/Extensions/UIColor.swift | 28 - Sources/allin/allin/Fonts/PlusJakartaSans.ttf | Bin 181092 -> 0 bytes Sources/allin/allin/Info.plist | 10 - Sources/allin/allin/Launch Screen.storyboard | 50 ++ ...ection.swift => DependancyInjection.swift} | 5 +- Sources/allin/allin/Models/Token.swift | 27 + Sources/allin/allin/Models/User.swift | 19 +- Sources/allin/allin/Ressources/Colors.swift | 85 +-- Sources/allin/allin/Ressources/Config.swift | 12 + .../allin/Screens/CreationBetScreen.swift | 353 ---------- Sources/allin/allin/Screens/LoginScreen.swift | 129 ---- .../allin/allin/Screens/RankingScreen.swift | 130 ---- .../allin/allin/Screens/RegisterScreen.swift | 265 -------- .../allin/allin/Screens/SplashScreen.swift | 39 -- .../allin/allin/Screens/WelcomeScreen.swift | 98 --- Sources/allin/allin/Screens/WinModal.swift | 233 ------- .../allin/allin/Services/AuthService.swift | 57 +- .../allin/allin/Services/IAuthService.swift | 7 +- .../allin/ViewModels/LoginViewModel.swift | 90 +++ .../allin/ViewModels/RegisterViewModel.swift | 127 ++++ .../allin/allin/Views/AllcoinsCapsule.swift | 26 - .../BetScreen.swift => Views/BetView.swift} | 49 +- Sources/allin/allin/Views/ChoiceCapsule.swift | 35 - .../allin/Views/ConfidentialityView.swift | 32 - .../allin/allin/Views/CreationBetView.swift | 459 +++++++++++++ .../allin/allin/Views/DropDownMenuView.swift | 61 -- .../FriendsView.swift} | 24 +- Sources/allin/allin/Views/GradiantCard.swift | 28 - Sources/allin/allin/Views/LoginView.swift | 150 +++++ .../HomeScreen.swift => Views/MainView.swift} | 29 +- .../allin/allin/Views/ParameterMenuView.swift | 40 -- Sources/allin/allin/Views/RankingView.swift | 137 ++++ Sources/allin/allin/Views/RecapBetCard.swift | 91 --- Sources/allin/allin/Views/RegisterView.swift | 244 +++++++ Sources/allin/allin/Views/SplashView.swift | 31 + Sources/allin/allin/Views/TextCapsule.swift | 23 - Sources/allin/allin/Views/WelcomeView.swift | 106 +++ Sources/allin/allin/allinApp.swift | 5 +- Sources/allin/allinTests/allinTests.swift | 28 +- Sources/allin/allinUITests/allinUITests.swift | 2 +- .../allinUITestsLaunchTests.swift | 2 +- 181 files changed, 3482 insertions(+), 2905 deletions(-) create mode 100644 Sources/allin/allin.xcodeproj/xcshareddata/xcschemes/AllIn.xcscheme create mode 100644 Sources/allin/allin/AppDelegate.swift create mode 100644 Sources/allin/allin/AppState.swift delete mode 100644 Sources/allin/allin/Assets.xcassets/AllCoinsIcon.imageset/Vector.png rename Sources/allin/allin/Assets.xcassets/AppIcon.appiconset/{Group 217.png => Logo.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/BackGradiant2.imageset/image 17.png delete mode 100644 Sources/allin/allin/Assets.xcassets/Background.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{BackgroundWhite.colorset => BackgroundColor.colorset}/Contents.json (94%) rename Sources/allin/allin/Assets.xcassets/{TopBarColorBlue.colorset => BlueAccentColor.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{GrayTextColor.colorset => BlueGrey800Color.colorset}/Contents.json (76%) rename Sources/allin/allin/Assets.xcassets/ChevronRightICon.imageset/{chevron-left-solid (1) 1.png => chevronRight.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/Close_icon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{BetCardBackground.colorset => ComponentBackgroundColor.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{StartTextColor.colorset => DarkBlueColor.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{PurpleText.colorset => DarkPurpleColor.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/DefaultUserIcon.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/DeleteButtonColor.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{DelimiterGray.colorset => DelimiterGrey.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{Eyes.imageset => FireIcon.imageset}/Contents.json (89%) rename Sources/allin/allin/Assets.xcassets/{Trending.imageset/Mask group-2.png => FireIcon.imageset/fire.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/Friends.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/GearIcon.imageset/{gear-solid 2.png => gear.png} (100%) rename Sources/allin/allin/Assets.xcassets/{BorderColorMenu.colorset => Grey100Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{Gray_400.colorset => Grey400Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{TitleColor.colorset => Grey500Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{DarkLight.colorset => Grey50Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{DescriptionColorMenu.colorset => Grey600Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{BlueAccent.colorset => Grey700Color.colorset}/Contents.json (76%) rename Sources/allin/allin/Assets.xcassets/{LightGray.colorset => Grey800Color.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/Icon.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/Icon.imageset/Group 2-2.png rename Sources/allin/allin/Assets.xcassets/{DarkGray.colorset => LightBlueAccentColor.colorset}/Contents.json (76%) delete mode 100644 Sources/allin/allin/Assets.xcassets/LightGray_200.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{VeryLightGray.colorset => LightGrey100Color.colorset}/Contents.json (88%) rename Sources/allin/allin/Assets.xcassets/{Gray_100.colorset => LightGrey200Color.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{PlaceholderGrayColor.colorset => LightGrey300Color.colorset}/Contents.json (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/LightPurpleColor.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{LightPurple.colorset => LoginPurpleColor.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/ModalBackground.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/Money.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{PinkAccentText.colorset => PinkAccentColor.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/PlaceholderLightGrayColor.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{DarkerGray.colorset => PrimaryColor.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{TopBarColorPurple.colorset => PurpleAccentColor.colorset}/Contents.json (83%) delete mode 100644 Sources/allin/allin/Assets.xcassets/RankingRowBackground.colorset/Contents.json create mode 100644 Sources/allin/allin/Assets.xcassets/SkyBlueColor.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{CapsuleGray.colorset => StartBackgroundColor.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/StrokeGrayColor.colorset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/TitleCreationBetColor.colorset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/TopBarColorPink.colorset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/Trending.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/Trending.imageset/Mask group.png delete mode 100644 Sources/allin/allin/Assets.xcassets/TrendingBetCardBackground.colorset/Contents.json rename Sources/allin/allin/Assets.xcassets/{StartBackground.colorset => UnderComponentBackgroundColor.colorset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{PurpleLight.colorset => VeryLightPurpleColor.colorset}/Contents.json (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/VideoGame.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{BetTitle.colorset => WhiteColor.colorset}/Contents.json (88%) create mode 100644 Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/Contents.json create mode 100644 Sources/allin/allin/Assets.xcassets/allcoinIcon.imageset/allcoin.png create mode 100644 Sources/allin/allin/Assets.xcassets/allcoinWhiteIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{Allcoins.imageset/Vector-3.png => allcoinWhiteIcon.imageset/allcoinWhite.png} (100%) rename Sources/allin/allin/Assets.xcassets/{AllCoinsIcon.imageset => allinIcon.imageset}/Contents.json (89%) create mode 100644 Sources/allin/allin/Assets.xcassets/allinIcon.imageset/allin.png create mode 100644 Sources/allin/allin/Assets.xcassets/chevronDownIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{chevron_down.imageset/chevron_down.png => chevronDownIcon.imageset/chevronDown.png} (100%) rename Sources/allin/allin/Assets.xcassets/{Allcoins.imageset => chevronUpIcon.imageset}/Contents.json (88%) rename Sources/allin/allin/Assets.xcassets/{chevron_up.imageset/chevron_up.png => chevronUpIcon.imageset/chevronUp.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/chevron_down.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/chevron_up.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/circle-question-regular.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/cross.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/cross.imageset/Unioncross.png rename Sources/allin/allin/Assets.xcassets/{futbol.imageset => crossIcon.imageset}/Contents.json (89%) rename Sources/allin/allin/Assets.xcassets/{Close_icon.imageset/Group 105.png => crossIcon.imageset/cross.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/defaultUserImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{DefaultUserIcon.imageset/Ellipse 1-2.png => defaultUserImage.imageset/defaultUser.png} (100%) rename Sources/allin/allin/Assets.xcassets/{paintbrush.imageset => eyesImage.imageset}/Contents.json (89%) rename Sources/allin/allin/Assets.xcassets/{Eyes.imageset/Eyes.png => eyesImage.imageset/eyes.png} (100%) rename Sources/allin/allin/Assets.xcassets/{BackGradiant2.imageset => footballIcon.imageset}/Contents.json (88%) rename Sources/allin/allin/Assets.xcassets/{futbol.imageset/futbol.png => footballIcon.imageset/football.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/friendsImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{Friends.imageset/Woman And Man Holding Hands.png => friendsImage.imageset/friends.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/globe-solid-purple.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/globe-solid.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{globe.imageset => globeIcon.imageset}/Contents.json (100%) rename Sources/allin/allin/Assets.xcassets/{globe-solid.imageset/globe-solid.png => globeIcon.imageset/globe.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/globePurpleIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{globe-solid-purple.imageset/globe-solid-purple.png => globePurpleIcon.imageset/globePurple.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/launchScreenImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{BackGradiant.imageset/image 16.png => launchScreenImage.imageset/launchScreen.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/lock-solid-purple.imageset/Contents.json delete mode 100644 Sources/allin/allin/Assets.xcassets/lock-solid.imageset/Contents.json create mode 100644 Sources/allin/allin/Assets.xcassets/lockIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{lock-solid.imageset/lock-solid.png => lockIcon.imageset/lock.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/lockPurpleIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{lock-solid-purple.imageset/lock-solid-purple.png => lockPurpleIcon.imageset/lockPurple.png} (100%) delete mode 100644 Sources/allin/allin/Assets.xcassets/menu.imageset/Contents.json create mode 100644 Sources/allin/allin/Assets.xcassets/modalBackgroundImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{ModalBackground.imageset/Rectangle 90.png => modalBackgroundImage.imageset/background.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/moneyImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{Money.imageset/Money With Wings.png => moneyImage.imageset/money.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/paintbrushIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{paintbrush.imageset/Vector.png => paintbrushIcon.imageset/paintbrush.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/questionMarkGreyIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{circle-question-regular.imageset/circle-question-regular.png => questionMarkGreyIcon.imageset/questionMarkGrey.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/questionMarkIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{globe.imageset/globe.png => questionMarkIcon.imageset/questionMark.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/threeLinesIcon.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{menu.imageset/Vector.png => threeLinesIcon.imageset/threeLines 1.png} (100%) rename Sources/allin/allin/Assets.xcassets/{menu.imageset/Vector-2.png => threeLinesIcon.imageset/threeLines.png} (100%) rename Sources/allin/allin/Assets.xcassets/{BackGradiant.imageset => videoGameImage.imageset}/Contents.json (88%) rename Sources/allin/allin/Assets.xcassets/{VideoGame.imageset/Video Game.png => videoGameImage.imageset/videoGame.png} (100%) create mode 100644 Sources/allin/allin/Assets.xcassets/welcomeBackgroundImage.imageset/Contents.json rename Sources/allin/allin/Assets.xcassets/{Background.imageset/iPhone 14 - 16.png => welcomeBackgroundImage.imageset/WelcomeBackground.png} (100%) create mode 100644 Sources/allin/allin/Components/AllcoinsCapsule.swift rename Sources/allin/allin/{Views/CoinCounterView.swift => Components/AllcoinsCounter.swift} (57%) rename Sources/allin/allin/{Views => Components}/BetCard.swift (54%) create mode 100644 Sources/allin/allin/Components/ChoiceCapsule.swift create mode 100644 Sources/allin/allin/Components/ConfidentialityButton.swift create mode 100644 Sources/allin/allin/Components/DropDownFriends.swift create mode 100644 Sources/allin/allin/Components/DropDownMenu.swift rename Sources/allin/allin/{Views/FriendView.swift => Components/Friend.swift} (67%) rename Sources/allin/allin/{Views/MenuView.swift => Components/Menu.swift} (65%) create mode 100644 Sources/allin/allin/Components/ParameterMenu.swift rename Sources/allin/allin/{Views/RankingRowView.swift => Components/RankingRow.swift} (60%) create mode 100644 Sources/allin/allin/Components/RecapBetCard.swift create mode 100644 Sources/allin/allin/Components/TextCapsule.swift rename Sources/allin/allin/{Views/TopBarView.swift => Components/TopBar.swift} (62%) rename Sources/allin/allin/{Views => Components}/TrendingBetCard.swift (57%) create mode 100644 Sources/allin/allin/Components/UserInfo.swift rename Sources/allin/allin/{Views => Components}/UsersPreview.swift (75%) create mode 100644 Sources/allin/allin/Components/WinModal.swift delete mode 100644 Sources/allin/allin/Extensions/UIColor.swift delete mode 100644 Sources/allin/allin/Fonts/PlusJakartaSans.ttf delete mode 100644 Sources/allin/allin/Info.plist create mode 100644 Sources/allin/allin/Launch Screen.storyboard rename Sources/allin/allin/Models/{DependencyInjection.swift => DependancyInjection.swift} (93%) create mode 100644 Sources/allin/allin/Models/Token.swift create mode 100644 Sources/allin/allin/Ressources/Config.swift delete mode 100644 Sources/allin/allin/Screens/CreationBetScreen.swift delete mode 100644 Sources/allin/allin/Screens/LoginScreen.swift delete mode 100644 Sources/allin/allin/Screens/RankingScreen.swift delete mode 100644 Sources/allin/allin/Screens/RegisterScreen.swift delete mode 100644 Sources/allin/allin/Screens/SplashScreen.swift delete mode 100644 Sources/allin/allin/Screens/WelcomeScreen.swift delete mode 100644 Sources/allin/allin/Screens/WinModal.swift create mode 100644 Sources/allin/allin/ViewModels/LoginViewModel.swift create mode 100644 Sources/allin/allin/ViewModels/RegisterViewModel.swift delete mode 100644 Sources/allin/allin/Views/AllcoinsCapsule.swift rename Sources/allin/allin/{Screens/BetScreen.swift => Views/BetView.swift} (58%) delete mode 100644 Sources/allin/allin/Views/ChoiceCapsule.swift delete mode 100644 Sources/allin/allin/Views/ConfidentialityView.swift create mode 100644 Sources/allin/allin/Views/CreationBetView.swift delete mode 100644 Sources/allin/allin/Views/DropDownMenuView.swift rename Sources/allin/allin/{Screens/FriendsScreen.swift => Views/FriendsView.swift} (56%) delete mode 100644 Sources/allin/allin/Views/GradiantCard.swift create mode 100644 Sources/allin/allin/Views/LoginView.swift rename Sources/allin/allin/{Screens/HomeScreen.swift => Views/MainView.swift} (65%) delete mode 100644 Sources/allin/allin/Views/ParameterMenuView.swift create mode 100644 Sources/allin/allin/Views/RankingView.swift delete mode 100644 Sources/allin/allin/Views/RecapBetCard.swift create mode 100644 Sources/allin/allin/Views/RegisterView.swift create mode 100644 Sources/allin/allin/Views/SplashView.swift delete mode 100644 Sources/allin/allin/Views/TextCapsule.swift create mode 100644 Sources/allin/allin/Views/WelcomeView.swift diff --git a/Sources/allin/.DS_Store b/Sources/allin/.DS_Store index 542f748662e255b2003c381fe8acea3801077b3b..081a00714f98bc4a9ec1eed17af50825a7ab17bc 100644 GIT binary patch literal 8196 zcmeHMzi$&U6n;)qdZ7g}6e&muodjc55>g~82GS6QE(l100Z>SCQJQi&M@dQ$QKjr4 zA;HAVAHay1%EHWoU_#>GV1oB-r?Hb zSJ`Eh>`5uzfvMnwsW&qfp)m1w?B5mUz%o+W(js6H7)5|$_b4nw6>88n;`fEmH*{T{ z=W->Vm$1!w!Oktdd;M|E)O-8t8=Km$5)_q=9z0(hvdS3o15*g~2 zrB17%EZ>(Jey!C`Ccm)AOmz0hoHOUlI}h@kypwMi+uN;dv3ZZ4HaPc7{d%!#&@R@3N>e!0yb7A!zgr7D-pTUqz-tNLyi_UJ-rSC`y$GPSehc2lW~ z_^@(mb!R8$oIHE}@~y%nzaH>sV$i_UUIoYG^IrMfoRR_i@lOP?28|B<*Qc*`cO~$K z#Q^&876$l>-)SJ4|Kof!@OeZOk=t z{mSI`>GQ9?Nmo9|`A>LHoewZMxR-%bq=$opqZ%3;h(Zh6&@wS##J7&YSf9VXa95JF zaFf5gaK}#0pcSG->sULT%x|+^tngCoA|bW|3Mbhb#K|kf*gl7r`hrI8ZQO^#2>vld zaH!v5Avtt{Ceh9o0uyShlYRPTp-=Wc_5;EXVsDb};!wiJGDJMtPJNn@2qY-}zZU-e zf9i3v09XVLGXgA{%jdEpxp+4H}D^R?%{ShfFu@e8E#DpLRe delta 411 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5sJ6q~50D9iV)AOkBy# z3le8#NMy(X!pzAN1e8UgY=*p~^5O!JI-rUjlN*H#)g`K{O-&7S6ih6PYjqT=Esa2I zW3$>?P7YCJee0n3?3~=Z{I1D~g7WI!$mTNSl?4~&<>cq3LtMeY54TZW$ebN!d#aE! zKck!(Pz^% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 4a79dbcabc0efb2b4f5310f121264eac5f03d9a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5746 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 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 04c25c2984d4db726d281648389468a3ab3ae15b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167830 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[!!mkw+BepzX}|2cQ1E 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ⅈ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

9(Zk>F9>cNP4Ws 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

+F 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

DkcwRJ%X%J?3feetFGRFxv#D_;5g0Y~p= zu&SDP-g!Y{Ae0QK2e*#=EickMacE`4$h00d2DfgBR_M4xPp$m@n+gBg?d|j2o!ozu zr(a%eC-kWNe#4IOrG?Xk*Kez_rXPea}9l-~J-owoR=19m?)PB!PR&$8JKTsgD-`$|KH^L_La9xz9j zVLQ(;Tc_N6VPT=hPg+=5sIcy`E-Wl8EL;hT8D3aeSlDBCbh+H4grF^>bKh;11HX$i zC!e_PQMzg>_3?(|Jak*+^{rio#kGEucb2@ao|I5V(EY)l~#veG|i{()E>d6F2tZWP8YMVFc#~r%M0I&HNP%g5Hpv0M;&usz%imuql~Tv z8lyH|JR2Vi3kwV1fD;(H?LC(>Ss!KIX1+c7jXAn;`6G3|zJp6Jox^mN?lc}@_fIvE zHwMXbzZrS!b&rwY+$!DLG|F;X>V-;kyEt1O)ovcV?wNA;+EdJ3TS*&5=;7{Kb0?jo zcXhY8k?|<>+n{}RjqFYBx?#Ld7+&N&Y4(s`i)qO z?!r`*FR&uRE{L_OzQ-Bs!c&UNQuZ(AG~Y(u<)2F%S@oRG!3-94$M0;A zvUwtCS>!afPDUM#)X0g>gC?&bOs_EBEL|QM+f>^!g6+wS4Yy|^&vSFm*KuQ5RbaW` z($zch^!y|5WdN#0h91NF_&=X=j%A^mH;*SnYNv&Tg#{Tx3|(OFQP_|x9dUq}Z%)pX<0#9oL#qbik2Uxy)J;J3_GIp^-+`=g z=mN!a2X`_KJu+;$le_&fsQ+H+et0SC3=3>cUficTlH9Pk0@K^Z zn#%uQCf>ijsw~1ZedS+a^ZbjXMdL~2wdIYF*~PeLr2EHRGLn@f0M!gA6`G| z^N%o|0`KRGPKG8Au6dOUVV-eZpRm_lAZDBc9H}Exc9g6$HNo$HaML} i#u>+qSl&PX>;D3pZ7s5^{|@i~0000T(Yji3_>|sDHRM105kfc$HzrK*_CPyK>t0n zm(_B_z#t&|-vz)(%Xo=?2yj%9`G8R|O1p=?!8U)d_#OkJI-20#2nPeh=A)d{do?$} zVLM*kn;~`3&4VT>Z0$9e{5Jun|5paK!cb_9Vid%vH^}I7ioa1(pP7I4Dd&vaTQ^G3 zf?L&TO?bnPKP)eMrC!Bwl6?5!#~gE!6@$SD75dod`OkAHzjo}gv)%Qwd1uk{!*RWb zvum(k>x8DKrn)8;4We!w_WwV01$2-Wd;X}6&;#$r1;xq@v4TFDf`jo%=j%O>zfMce zEw(1F8H#wYu~~QO$aFcd&zS z)9ZhG|EBg@oUsag=BXEj@^ON+A5@0i|2cUdIe9~f>au3woEWbeYStk8g^fzHe1!*F zWNd_gicsbLnP6Uqo^NJ2gp1t@n6)A@@%2v?AD0akfpVSc?t_d3muW)uI1$A zb4=H*_gJdD-wRMmz}lp(O}8N(&4tI3St?1NNvUFFy`l@{^VMPv~EC zA!dQLd1)}$Sc?*GtcFL82@R-um_?f6tc*f*W1mgh!@AQ0CXru}<;Q8}I_e+oD@s8N zMFkqRpak2}Jn7OUwj4!i39LE=jTPHw+ms65V5%4*9LfJU2kGTLk2&g?>c}L2fB&>L z={#i8;7vj!H_wk!RT>JDFW+6ByhKc1TKx?K%9TePV)}+v9nLMg1|-v6zMGiRn6%M4 zeKehP7OCd8$qTlPMk>AHLN<($!Iz$rC!M{|^^am-+)woKx!L7`t)ELf~$Hon@89eVI?w;L^p zsz7NNGI`Uw!Wg99wm7ut^XnO`wB-nZad=~KO& z%0D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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cc5c7a1f2ecfc5c363c50711a56065845c3b8b2 GIT binary patch literal 27912 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 literal 0 HcmV?d00001 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 6fdb1c6639c7b1c1d0cee3164df622cc4ab77b2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)Hs9*1PMr(gh`kLBs}iINPvv3y=&h~nn2QpFJwRMMCJh4l^XEM zy?z&B%I}>@JxWcbj!O*{IO01a3pxXTbJ_yZpnrhh(DLDi^`t>JfbSdxwuD2Cz?y4q z9*oUlPzSJPzjaQAL!ChVJdgry2C|^tz-(w3Fbf(EjE1HGqoC=)UMLON0X@SWm8dwO zd|(n(B`ZNtmF#pvRaj|+s;~p!RXl;bGkNcW@6dLpRv-`B3CxEE0rQ|v;AHHJgF1l< z^3K#e&CsCe9JkV;2$~1epa>pV!=Xr;sKcO09{IbWAnhd0P>`3VCMfJr2$i5Xp_h8V z!_cS_90ycuvu-ve#Q+^Yo0SbTKo_rYWdm2B16J;p`%+ibm+9opP+j_So}VnV=HA$N QyZ`_I07*qoM6N<$g67z$=l}o! 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 7de3b5b89d35251a464902904797ebcd868bcbbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181092 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

dwpFm!f8!NBmi1g8N?3Qw~V`Pp%Q6jue9}t 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 Dei}NN 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