From 009a9a2d3d07850cb2de47e5c00f96671b2b1b23 Mon Sep 17 00:00:00 2001 From: Ana Paula Flores Date: Thu, 25 Jan 2024 12:19:55 -0600 Subject: [PATCH 1/5] ejercicio login --- .../UserInterfaceState.xcuserstate | Bin 0 -> 15834 bytes .../xcschemes/xcschememanagement.plist | 14 +++ SwiftUIBasics/Views/SignUpView.swift | 96 ++++++++++-------- 3 files changed, 69 insertions(+), 41 deletions(-) create mode 100644 SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..545aa286459671629eca892332d0908a9027d849 GIT binary patch literal 15834 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 W%(FZi;YNf=pR%6PXYAdx;(q{88}AGN literal 0 HcmV?d00001 diff --git a/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcschemes/xcschememanagement.plist b/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..27cd9e4 --- /dev/null +++ b/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SwiftUIBasics.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/SwiftUIBasics/Views/SignUpView.swift b/SwiftUIBasics/Views/SignUpView.swift index 6cef5d9..5bb4978 100644 --- a/SwiftUIBasics/Views/SignUpView.swift +++ b/SwiftUIBasics/Views/SignUpView.swift @@ -1,56 +1,37 @@ -// -// SignUpView.swift -// SwiftUIBasics -// -// Created by Diplomado on 09/12/23. -// - import SwiftUI import Combine class SignUpViewModel: ObservableObject { // inputs - @Published var username: String = "" + @Published var email: String = "" @Published var password: String = "" @Published var passwordConfirm: String = "" // outputs - @Published var isValidUsernameLength: Bool = false - @Published var isValidPasswordLength: Bool = false - @Published var isValidPasswordUpperCase: Bool = false + @Published var isValidEmail: Bool = false + @Published var isValidPassword: Bool = false @Published var isValidPasswordMatch: Bool = false @Published var isValid: Bool = false private var cancelableSet: Set = [] init() { - $username - .receive(on: RunLoop.main) - .map { username in - return username.count >= 4 - } - .assign(to: \.isValidUsernameLength, on: self) - .store(in: &cancelableSet) - - $password + $email .receive(on: RunLoop.main) - .map { password in - return password.count >= 8 + .map { email in + let emailPattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" + let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailPattern) + return emailPredicate.evaluate(with: email) } - .assign(to: \.isValidPasswordLength, on: self) + .assign(to: \.isValidEmail, on: self) .store(in: &cancelableSet) $password .receive(on: RunLoop.main) .map { password in - let pattern = "[A-Z]" - if let _ = password.range(of: pattern, options: .regularExpression) { - return true - } else { - return false - } + return password.isValidPassword() } - .assign(to: \.isValidPasswordUpperCase, on: self) + .assign(to: \.isValidPassword, on: self) .store(in: &cancelableSet) Publishers.CombineLatest($password, $passwordConfirm) @@ -61,9 +42,9 @@ class SignUpViewModel: ObservableObject { .assign(to: \.isValidPasswordMatch, on: self) .store(in: &cancelableSet) - Publishers.CombineLatest4($isValidUsernameLength, $isValidPasswordLength, $isValidPasswordUpperCase, $isValidPasswordMatch) - .map { (a, b, c, d) in - return a && b && c && d + Publishers.CombineLatest3($isValidEmail, $isValidPassword, $isValidPasswordMatch) + .map { (a, b, c) in + return a && b && c } .assign(to: \.isValid, on: self) .store(in: &cancelableSet) @@ -78,21 +59,28 @@ struct SignUpView: View { Text("Create an account") .font(.system(.largeTitle, design: .rounded)) .bold() - .foregroundStyle(.maryBlue) + .foregroundColor(.maryBlue) .padding(.bottom, 30) - FormTextField(name: "Username", value: $vm.username) - RequirementText(text: "A minimum of 4 characters", isValid: vm.isValidUsernameLength) + FormTextField(name: "Email", value: $vm.email) + .keyboardType(.emailAddress) + RequirementText(text: "Valid email format", isValid: vm.isValidEmail) .padding() + FormTextField(name: "Password", value: $vm.password, isSecure: true) VStack { - RequirementText(text: "A minimum of 8 characters", isValid: vm.isValidPasswordLength) - RequirementText(text: "One uppercase letter", isValid: vm.isValidPasswordUpperCase) + RequirementText(text: "At least 8 characters", isValid: vm.isValidPassword) + RequirementText(text: "At least one uppercase letter", isValid: vm.password.containsUppercase()) + RequirementText(text: "At least one lowercase letter", isValid: vm.password.containsLowercase()) + RequirementText(text: "At least one symbol", isValid: vm.password.containsSymbol()) + RequirementText(text: "At least one number", isValid: vm.password.containsNumber()) } .padding() + FormTextField(name: "Confirm Password", value: $vm.passwordConfirm, isSecure: true) RequirementText(text: "Your confirm password should be the same as password", isValid: vm.isValidPasswordMatch) .padding() .padding(.bottom, 50) + Button(action: { print("Doing") // Proceed to the next screen @@ -104,7 +92,6 @@ struct SignUpView: View { .padding() .frame(minWidth: 0, maxWidth: .infinity) .background(vm.isValid ? .maryBlue :.turquoise) - // .background(LinearGradient(gradient: Gradient(colors: [.turquoise, .maryBlue]), startPoint: .leading, endPoint: .trailing)) .cornerRadius(10) .padding(.horizontal) } @@ -129,6 +116,33 @@ struct SignUpView: View { } } -#Preview { - SignUpView() +extension String { + func isValidPassword() -> Bool { + // Implement your password validation logic here + return self.count >= 8 + } + + func containsUppercase() -> Bool { + return self.rangeOfCharacter(from: .uppercaseLetters) != nil + } + + func containsLowercase() -> Bool { + return self.rangeOfCharacter(from: .lowercaseLetters) != nil + } + + func containsSymbol() -> Bool { + let symbolCharacterSet = CharacterSet(charactersIn: "!@#$%^&*()-_=+[]{}|;:'\",.<>/?`~") + return self.rangeOfCharacter(from: symbolCharacterSet) != nil + } + + func containsNumber() -> Bool { + return self.rangeOfCharacter(from: .decimalDigits) != nil + } +} + +struct SignUpView_Previews: PreviewProvider { + static var previews: some View { + SignUpView() + } } + From f67ccb1f3a16e6a4ba961563691016e9214b627f Mon Sep 17 00:00:00 2001 From: Ana Paula Flores Date: Thu, 25 Jan 2024 12:46:48 -0600 Subject: [PATCH 2/5] starRating --- .../UserInterfaceState.xcuserstate | Bin 15834 -> 19376 bytes SwiftUIBasics/Views/RatingView.swift | 35 ++++++++++++------ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate index 545aa286459671629eca892332d0908a9027d849..398f5ba8f893e8a9f0183fadc67301f88ac24c23 100644 GIT binary patch delta 10319 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 delta 8257 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 LRC}#EN2dP|hBU8F diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index 3ca74af..c03b6da 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -1,18 +1,31 @@ -// -// RatingView.swift -// SwiftUIBasics -// -// Created by Diplomado on 09/12/23. -// - import SwiftUI -struct RatingView: View { +struct StarRatingView: View { + @State private var rating: Int = 0 + var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + VStack { + Text("Selected Rating: \(rating)") + + HStack { + ForEach(1...5, id: \.self) { index in + Image(systemName: index <= self.rating ? "star.fill" : "star") + .resizable() + .frame(width: 40, height: 40) + .foregroundColor(.yellow) + .onTapGesture { + self.rating = index + } + } + } + } + .padding() } } -#Preview { - RatingView() +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + StarRatingView() + } } + From 908de10369feaf1cb5d83b2533fd4b09874146e4 Mon Sep 17 00:00:00 2001 From: Ana Paula Flores Date: Thu, 25 Jan 2024 12:51:30 -0600 Subject: [PATCH 3/5] starRating --- .../UserInterfaceState.xcuserstate | Bin 19376 -> 19366 bytes SwiftUIBasics/Views/RatingView.swift | 1 - 2 files changed, 1 deletion(-) diff --git a/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate index 398f5ba8f893e8a9f0183fadc67301f88ac24c23..de7e077cfee22898c437d28d14f9e2d55bd619fa 100644 GIT binary patch delta 6253 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 delta 6115 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 diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index c03b6da..4754bfe 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -1,5 +1,4 @@ import SwiftUI - struct StarRatingView: View { @State private var rating: Int = 0 From b8fe21b48b4df97a3812dd9675c9084ffd6a47c3 Mon Sep 17 00:00:00 2001 From: Ana Paula Flores Date: Thu, 25 Jan 2024 13:59:38 -0600 Subject: [PATCH 4/5] PlansView --- .DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 19366 -> 26643 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 24 +++++ SwiftUIBasics/Views/PlansView.swift | 90 +++++++++++++++++- 4 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..033d02f074429ce55b0747ae8882a6b0e100656e GIT binary patch literal 6148 zcmeHK&u`N(6n^eHmS~#P18BP-S>jravZ6^7mn?LL9=I(0H~=ciQXr7URg)5=s#4C| zAH$WugntLVXM1Q>8R`ik@ROdu=jZoq`LkokL?psl`hciIL>`o}<)iq8a69XYw5(?n zD0ClB=!Ev^oYG;w673v+BLlp4KAmFSj%h&G)=!-!xk}K=TjLnI|6L0#q8*B;ri|WF zMbBtRA;napen#amU&{Qler8ga6FcVDWRhoP)$4r|t&R5Ptu1fM+xA{Z?^PXDaWyN$ zc>0oSPnF7(D?3h}XXAR*x&2rbRh$*$sZPk!F+yIw$cj|ep_&zGsdFRK;Q5|E>g>(u z{oY|$9`uhET{%BG=ym18{^4Tbdw1^Le{?$fn4cHwLeHKAcDt4xi&t<7<2T%Vil#-b zig$?O9(HeL5ns_~u&F4eF->R+>%%g$;x2l)z9y(TaSS*H90O}IU{5h`d(C(k<`{4c z{67rv`5>W;fyKt4J~~k7CjhVww-(s^!^k<(Vqmc`h!%)2sX&t|>=Q$nboix>3oJGU zO*#qt_z-qvVP7ahkB#YK{TNz(2)+Xb+-6 zh$-2-b!BpV*GlLcC=16m27ji&&{r{H`6}LnYJp#}0SqiQ2H}CY9|28+D;xuVlz|^r C!+l8r literal 0 HcmV?d00001 diff --git a/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate index de7e077cfee22898c437d28d14f9e2d55bd619fa..d235d3eb80ba08176b420f930bc737f12b6032aa 100644 GIT binary patch literal 26643 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 UQgPuBqWr4LyWL&gKf}xaKZ$?;B>(^b literal 19366 zcmeHu30zZ0*Z0i5a|3E1VGj@jB!LhDfrLQVU2wx)5!}T90i%%6B)HYqxpk{{vztq8 ztKeF#wpLqht=3wtPixhxRjaj&U9GkIW~;W}xw!%bqGiPSb z`JZ#2~gRCeQ^+A16Khz%$Km*YrG#HISqtO^N7EM4CQ9WuvPUJ>Y&{Q-7Q8Ww9 zM)T2q=zjDFdK4{0kE18ha(Oc*MI*Q&w zC($S9Q}h}79DRY#q94$Y=qGdm2jUL6BkqKyI0y%08IHmV9F5~~1}?ybxEt<`OK~4O z01v@sco-gzN8)kVhV9saCtxRb<0*J5o{sOpcjAS35nha!;K%S%{5XCBKZ%#&<#;7t zk2m4x@Jo0*ei^@lci~s@8~9DUA0NW+;t%oX_#FNUpU2(U}#Y|_W7t@<5W%@89nNiGWW(+fysbt16 zHpanBU?wv4OapTp<7TEXQ<-VZ?aWMO7BicDWvm@A%>{xaRJC&Wr-p)>E?_lp_XRwsz*}K@8 z>|FMK_7V0`_6hb$b|d=?`z*VOeU9DCZed?$cd)Oqd)T+w1MFe;2z!$Ki2am3%bsVy zW4~vACYUgUC4_J!goKhX5>6sWEK!m~VjyWGomfdO=|}pL0c0QKzDq?JI%niExJ=H(nYk>^ z!ew(goRur!x^ca^Qf@Fege&LlTrF3}jprQP1a2bd;k?{5?sje_H;a3cTgENtnzXSjx4|ruzD$Ch>UfCN5i5Dlg>c$Wi- z@TsqqM+oCMoHee=rJkNJxw2}v-R>OQcD1M5)?lxcr^AKbHcx*?of~kgrovX=WcT!R zyBY?R4Y7N?F1M|!-tNP+?l!NjQl8w_!BAUOH=BEy%~Rpqt2)c4WXeljE2()8cCzpz}lCf?x+Xq z3475SR$f8Vsgast2eO1ckOLEC<6V;n*d{sZY_OQ(rM914-F8^g5TGjeI_e!>hut&G zQR5vil9f6=jbLtE?ki+%Ew3UI254(O2Kwqz<7jQGBgyG(`Xt)V^^SI zXgC@{l{A$a1XdGA3r}X)QBRNFQ@7w$b-D72~8R)Dzg)`V7U0z z?ioFxth)n5&gHbZr?vpq~@{s`Vor zUVDRYrXVVSN#3s2)pn1^UIR*MAM2?W6m5{p0}|zOj`6f^TPd{htd<0Yge&5X1O#@F z4sEn~$BzJvuutjjaC%!hb{bPQ*-`5)FYRXYII2DEf6392V3}NcqXF$x8f{L&WAd?- z)phSCSM~6uQ7}lTv^lJOH%B5Oqi($u)fVU^TDc;oQ*8Tg$}1f9$sRdAqKZ$r_3qM& z1m@fi^cnwLizc~6o1{Ulf0|ud@mq^7MbqUr@w=wW+~K}&&8fhKA!B7)daSWMAMJm^ z;tYYEbJhvm89l;c$|c|yh5)1+0Yv(uA)t7pK?xjaGPrYd(YxMHz50cU|D))x;22W%v+#`V|*ZWoVd;=A#E;A}mGUlw^~u=oj1X1hPU zQxy3*XfB|4k137yBBl>)^42??c7ajRffZ!1Ree^VyU{!}`IhM`ysH4xQR)_gGtptE?!i%rae}^GQ(|V5YOKv<7s+QR@J!Ax`5SbZ@0R zY(QE6Ca=Ko6?I*K?hzFB7Ld%ZuMeOHQCc%vK;dmT;2>a8(v4Bj2Xe+Tue+(*+vK)u zx-@q2t+BtSMQDl8(_)&@j2@$zLQjcJ9=m&x+g@vTyX`e4pq6zm_tYL!ymp_Wly>(V z@%b80qGijeNt|0VY8l%$v#xHpZR!ftj8>q@;EVWvwh5+x;MM3kl(rtNL2J=dXdPOQ zo<oXtcQ<9+%Sx&*d=V zR$o9gK_Y0&S^>}p4^!*yBd@+0(%oLwR96S^4-n@Sgb_TKD+bJW)iSzRqMi_07*j+!{R9BN1B_{QcW) zKC)5)9|r+a0!eGfgM|3d16z3wUVG%=JB}RKXm^%6!R2YQh6mBxf_xmJCC%tC?Jmei z2q;S1oPEeF%EK|VtOXrMCuk4amzw-yw=WnupH~qF-cnP2jo>p40;hP0{WfrSy&%Yf7w(a>tqYFjI1Ht=;1C>2 zhtm-)I2=dNk<=#aT&S?KT|KQs`nC>W-!D9H(h7h%3lgDUWsf9MIODuB8uYcUKr^l%Iq0A^o7W|JN1tYC~l@j=HIrj;8m* zHy8CB$C=oK%`mwvY{A($2U~G2&O=*ZiTuG%KUcNSyBT{$U`6$cXmd7)xLjUv>FnZl zXxU(MIIoby8u=D^V6DH;EBEMlI+jkPPCABmsg!550eZW|6g#})+_pixxNSwkwiV;f zxC^bM)znVwj^YyB9cHD&5xCdLE2EYB_<*_FD8xLG?cArXjg74?0OP}Vu;Q?qO3J6 z6XBRF!?y^c2PuB{`;&k5t8KBwrK-Z!0Of#N{tfmEO$)9OR_I2zz^BHwxDJmWDfqSG z%F+f}Unw8>U&63)iVz|-x?K}Q9w*}ZQNW>JPFrvTntb&Ik;;V|E9EJ$>FosYiUhRR z#uj{=Fuhx*KZ-ptYcH7^`d^`zZKy+v`EeCfO;Xw^88W-?w$s@a^RT$^bc9 z@HF36H8xe%JE}!hNcXs!+||OlLz`j>@urB_{=GI1ve(%>O`b9zZ3!&8AC_m}`6z82 zrr-eI1upO`JR8r!bHNp!N1Ny*I+;$PQ|UB%JDpDNpm(mr_kiVs7k&UQ0Ix@jA4bV^ z1{fCM#nZb%HG=3ou%H0zF;_+txiN}y6Sys)kk{V?3)0`=1cw9`H}QtI1;$HUaC&U3 zg9*pqkfzi*NjyCP|K|E$>V2+B8|(@`(Dl9ef<3T&Uc1p%TkEldD|3BMVn`@b32y(* zrqs2`JKp7nfv%siApAXD^)-N3H(IU9Zd+qN=vnk@aWhsm;}%M3od~I`uxcf2f$s&& zF23sg`}#EA2%$6HK<{eC&(N8Iml4z5UhlPuTOqn=ZR_A~wHd#FB3tkl{5+jSXSd+3 zcpIHV=Th}3VTwLbwR^_av|7`Cc4wV;yvWTCtXfX%eqJ$hY9#Cd_X+b6PdlrF=)XD1q~36{I0uqy(928I08rTQE&u~;p6xOeGp9R zlk|Qtt#8oB=@acu>q&gdZ(8YN^Z~!c6Q}nPEH*xaKgOTnPw4{sFkMI&U$J3tN2U`aWrCPsM#jjQ5GIr^ zqswVCZJ{gZO1g@!rfcY0`qX+RTtp&9!9+7LOf1qeaezhZTCr#&-AuR8*WuT`|2#Aj zjF~9@5D!lh;t)WRu1!qsF@wot3IM#AeELi?Q%Ik^HSl7(FeN_lV!8o%Z33iWdH{GmN7dH=R!I05O&5zV zzJg4iFG0cdWrjdN#q?wPGXt1`%phhkeV)ERx6*C&Mf%cerVPZZoT*@jF~jM05UQ8y zt8_Pg%@@7+>~8Buc#I=mt_A@6_7{cdNKm3~t|n&<*n*fga&a4tB{t_I$Qi&kf+v3M z&4FO?+>RPMG>mQE?;wZMX|HLe2a9-ZOK>3J?93M%2z_fhf7gE6Rg4{$jHza7=nlHG zg{fug=qq#=Rad|R?Jq4nSc`IpVfxWq%?LH;Wqrb*a3 zFWuA3Orm?Kx?L9|Y)xK>JiLx-`D}lS>C6nDfne?g1M!cWZ(9ZU2Hq6?btuow!70q$ z%sgyh<}mjH${z%jKSB2c${(c1uR(d{0cJrP%D+S3YKQX7LP0VYF^icc%wzNbeVZPp zN7_&xdVdno`yf5!L;34ZCH+u-70UZBU4`zgmzecFJU@CARV z{nU@oANw3j=2NtV`4o2OGv9xmJlHP`=a}Cb@9ul`HW`R_3H?=br2=-#@%Y$zMy17$WGK>4SuK)D^1`l(~tIM@wVNq@N!;QFc5 zY?2RTSuKFI34&I&K>-=tdk;j@F!ZMr9 z=3EWSJSOzg4RM(*WQ+W`%wv{bZU@Y435X=yo$bN)WP8y+=$|}BJjOSKWh>5zvqw$J*E`wwkSB?QAVu$Bt(m>;xWjJeKe{fX9J6?!e=YJnqC} zDUXAA9L!_cdbVB!Mz)dJ&$$;V036xb zJPv6^NA~U;qN86l9$+67v~dBC!)cpU#f7#g2v zw~5fWmG0oN>hG{|C%a47jaPV_@K@ltm;Hwbj{E3*9;^Qf9pQ9>J;)vsi-Fo9A;eqN z6I(58R`n09$+H#5`#X~6}P#H1AQ8(U4+$!%xLOQ`{B!C2x4g@eYi^moo zXY)8`CBW$xycK-QAmD$F2$-=IkVX~K*^sldPZq*2&k);Wu@(!$ul9Fat2xT5U5yZa zCA7QgYwmJG=2HlS8X+eJQCMU<5?}8^_Q=m`BvC+el7KqqHWN_CJi!sUNqUmRL3)y? zNIZ}8d0f<%;v;I3d~Mp0=uk3&Eia%l9v4z|+lp$s@QZzcou30EF<;j>OKe=++W7h< z&LiERRF3460#ZndNHOV5x{$6s?!seu@5bX29(U()4<7gAaWA1{PIw7LbG}!rV=olT zi7%M6LD*=2lD`HD);z9yyO81R=csZEM-@(CkNin+p>pnq)IP%03Q6sT_VgJy>w1veCDa@V`NH-s zZpwRG6-2wKhPEc)1%(^x@~P5MQbC46UgLYTp9}|K98lJpA@hzGPjTVg@~Ue-Md5KD zU&4iqB%>e!($=7bjE1z#RTunHHbrA!3Jc!4Gc|3&2Wjr3r<8mHXtRqh1B8}uW5LplLqAg?+naty1Jg(*Ob{_8( zWcY0!AEqFiM|u2?Pr-&XIfar)`xK}ls1}mXz9Vm6-GT_Wz9TVDPnR1~DW1_{C1hFk zc)L)w87}^WKCU`5fy>=MSSL2RpqR_!qkyD94FI`6u_D%k3L}Z%grX8>9rWlFYb8pZ zwJtc98RCL0g4fo*cVA_PP^1X8c`|>tyRAcoI0=z+|8N51{>7a|?gkwvv&kGXm&e0- zJc7p~SCDyRKDmd-qj+4&<7&bEP=UN%w>ILuJ-!rv_KgUHVnIks*0krj+f=ckuboi2 zdR@ou>4gFO3_nO77GM#)qS4Ld5gw1B`u1toBV;j>ktO6YA?+rlN;ST^H`8>0`LUuX zK2DyffRaMkg%|R@q5kLlHb5@XbPlT?0LD&cy7&~o4n-`mXfBk2|pjRIVf&k&&}cHa(8p{xcS^Y z00;MR_j3<$3wZn_kC*Wn9FS%ng9Ea{2L~&8yo$%GdAw#l_fRVwEM)d`i-l7^Zm9qV zYyEJrPB``323f?d$|3AUhm~z=k{^`;NIZglgk`uRq~F z6Sm`19&h_Ay*|f5wKbF*apwiSe(4rg|3~g;q2r%;{Bkn~JGBF9zag*@qHxiBZy!nc z*}o`}pvZOHCGIl!2luB0Nw9>Guo5ESc>D^Fck%dD9s}^c#^XIa-pk|HdAyIu|5%5T zC4s`JiKLT6DhZMVOJowc5YN5=N)NgZd%vH@Z}Ip5j}P+r5LJ(KczV=3>Vzi(As`hK z^WCBBqZ%G?vU%aL0jM{Ky!vvf2jXCOIMECA*W4K9fHFonV}Nj9Y*E&|ukSF+2}N%0 z`u3NHf^3PDz5+`xJgx@MYm8`X+;&^!sHd&LQ4jHK#MS%=Cwlclh7%&CYeT6UTq&-Z zUi58#%g}@W2ez#PT zB1whlNx0T5G4S{Z)r*uyp%!1DY;9?7ecD9mB^!#Ip#tGJPKUaK$Dw$;4jxpBMrxFX zOz_lWXLuUD0v=TwOQi68aXirxGs%Nvwl1U_=|xK6+2R4DiQEeTFhq|8Vny;CJSF@B zfj|zP5MKF zz1Zncr{kS|lS-r=q@AR}Qn@r#nlCMp4w9Bh%caAmBc-FIR60*OUwW_fQRzzQdg*5A z%hETbA4xx!ek%Q3dRBT)dS3dC^gHPf(x0Ti1O)}jfY^-dYtV-sRO_$v%qq4hXvt)B*cgr4?Es`yfEtNeXTP|ynt&}|@drfvy z_J!<6d6+yxu9oZMdbt6LpUiTLJV)MFK2}~Qcgh>(Zn;-JNxn$FS$;zPWk^6sY=|zT zM@X-b(vZF({X+(Z3=Sy^DGzam@F5FA)`n~kIT3O)DO4A# z4>g3QhvtX&2<;o%KXhQ|;Lr)7^`T9nkAyA>-4?nxbYJKjq5DHmhJGG;HuPNR`Ox3P z*s#E`h_J*kLs)uPMwlsVQP}dZ7s9rO9S%Dc_F32$VPA$9gm(`g6kZ-~3!f1FX!v8{ zd&7@}p9=px{A~ES@beKvB1T2nB5EV1M?4+zV#L9SwX)cL6-dD-h$2W4qli}|Dm01|MXDlAVN_TYC5nEEYQ=cP48?Lqi(;i>wPLMeo#JW5 zM#Zy=Hx&C72NZ`ChZRQ^#}pqZzEFIr_)77$;#mq%Ac*F@JwkB^=dJu`ZC^xWuq(cea2ivA-8#V|4En9ea3F~eg< z#*B^`8#6AZDyAl;HfDUxgqZr6nK83t=Els6xhLknmPP& zb1^n9wrgx%>_f3H#2$QJz zexv+O`GfMOxDIhCaXsQ}aWmqYa{E-iX^DcO>q^xXaQB88mqFa=BVyg%~##4 zx?i;!8h3e+teO)lX|jxmU@o*ZuNZiz3Thb z3)By(*Qj4tf1=?u8ck5Nl()Q8z z(+`i_NxhT$ zB=t`km^3(PXi`Pe@T8`sN0PQBol5#6S(`jC*^~TG@}}g2$tRLeCBL8iVe;AJ?~{K_ z{yF*AH>A0biuk1UAQh%m!<2X>!Itd>!TZ}8>}nSmFsGBx9RTG@w!>Mxw`qf z`*aI*Pw1BEnsqC6YjjWP*6TLtcI(dQ{zyqkDNY%gQkPPn;!L?MWm3wNlxZo`Q|6^C zOj(lhc*?Sr=9CpF&!+51*`2Z{Wnao$DF;*DPC1ftCgq%-(Ff?`^(K8EeSiHR{Sf_7 zeT9Cw-lm_RZ_qdDJ^D%dDf-#^x%zqfd-RL-kLe%RKdE1@-=Kd+ze&GS|Em5q{a*c1 z{YUzb^`GiL*Z-)$r2jLON##-lQ$te2Q=?L&Q#-kZ8 zWPFnum8s3tWu|7PXJ%%aGrMG#W)99AnK>r2HnSnqojD`(uFTn)cW2&{d0*zz%$1oN zGdE>^lliNugGp|RHYJ<%rZiKA$!xNiZZl0Y%{0w1J#1QNT5MWsdeXGqw86B+wAJ*Y zX}f8+X|L%Yrv0V^rca{%R0*j%X5}3mKQAB zEc-0)SiZ7+WBK0lljT>-@0QEiD4WfeWOvAxW^1yOvs1EDv(vIOvQ62R?40b}?1Jo~ z?9SPvvv1E{mi=n>XE~j6a&kuIOwC!G^L)=qa-jO>$_rBZ( zxew<)n!6}>W$vcj7jn1dZqMD7`&#ba+-k6XkLRDvKb`+!{+awg3OW_Y3qlJb3StW43gQbA z3o;9e3i=fEFBnu%R!~teqF{7^qhMk|LqTJKyTDs8xnOF+{RJBe-Yhs{-~mu)MIU&|WycaAILYp{sCu;k?583l|hVT)4P!Y2g!v%L+FZZZF(f z_-f&v!hMBr6rL#jtni1TfTE5?K}GVSu%gJK=ptoNe37~+sVKjwu&8rU*P@c5o<*fa z{fY(_4Jj%w8dg+QG_~lVqV+{Pi;fkYEBdLpLvdnpR&kHwImP!Dw-i5ByrpEaKHzbHOee7^Xb;$Mp|6#w3t?cA}mv~zH0xme-NFyf~qU;OmH HcMknO(N)*R diff --git a/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..17be66e --- /dev/null +++ b/SwiftUIBasics.xcodeproj/xcuserdata/anapaulaflores.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/SwiftUIBasics/Views/PlansView.swift b/SwiftUIBasics/Views/PlansView.swift index cb97876..f76ebae 100644 --- a/SwiftUIBasics/Views/PlansView.swift +++ b/SwiftUIBasics/Views/PlansView.swift @@ -9,9 +9,93 @@ import SwiftUI struct PlansView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) - } -} + + VStack { + VStack (alignment: .leading, spacing: 2) { + Text("Choose") + .font(.system(.largeTitle, design: .rounded)) + .fontWeight(.black) + Text("Your Plan") + .font(.system(.largeTitle, design: .rounded)) + .fontWeight(.black) + } + + HStack { + ZStack { + RoundedRectangle(cornerRadius: 10) + .foregroundColor(.purple) + .frame(height: 200) + VStack { + Text("Basic") + .bold() + .font(.system(.title, design: .rounded)) + Text("$9") + .bold() + .font(.system(size: 40, weight: .heavy, design: .rounded)) + Text("per month") + .font(.headline) + } + .foregroundColor(Color.white) + } + + ZStack { + RoundedRectangle(cornerRadius: 10) + .foregroundColor(Color(red: 240/255, green: 240/255, blue: 240/255)) + .frame(height: 200) + VStack { + Text("Pro") + .bold() + .font(.system(.title, design: .rounded)) + Text("$19") + .bold() + .font(.system(size: 40, weight: .heavy, design: .rounded)) + Text("per month") + .font(.headline) + } + .foregroundColor(Color.black) + + Text("Best for designer") + .font(.system(.caption, design: .rounded)) + .fontWeight(.bold) + .foregroundColor(.white) + .padding(5) + .background(Color(red: 255/255, green: 183/255, blue: 37/255)) + .offset(x: 0, y: 98) + } + } + .padding() + + ZStack { + RoundedRectangle(cornerRadius: 10) + .foregroundColor(Color(red: 62/255, green: 63/255, blue: 70/255)) + .frame(width: 360, height: 222) + VStack { + Image(systemName: "wand.and.rays") + .font(.largeTitle) + Text("Team") + .bold() + .font(.system(.title, design: .rounded)) + + Text("$299") + .bold() + .font(.system(size: 40, weight: .heavy, design: .rounded)) + Text("per month") + .font(.headline) + } + .foregroundColor(Color.white) + + Text("Perfect for teams with 20 members") + .font(.system(.caption, design: .rounded)) + .fontWeight(.bold) + .foregroundColor(.white) + .padding(5) + .background(Color(red: 255/255, green: 183/255, blue: 37/255)) + .offset(x: 0, y: 110) + } + } + } + } + #Preview { PlansView() From 68f7c015ab2f02c550fce05606c018d64b84daeb Mon Sep 17 00:00:00 2001 From: Ana Paula Flores Date: Thu, 25 Jan 2024 14:37:01 -0600 Subject: [PATCH 5/5] ej star --- .../UserInterfaceState.xcuserstate | Bin 26643 -> 26658 bytes SwiftUIBasics/Views/RatingView.swift | 3 --- 2 files changed, 3 deletions(-) diff --git a/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftUIBasics.xcodeproj/project.xcworkspace/xcuserdata/anapaulaflores.xcuserdatad/UserInterfaceState.xcuserstate index d235d3eb80ba08176b420f930bc737f12b6032aa..8ff3dc29fe9eb82faea102fd3aa3566699740ef6 100644 GIT binary patch delta 9257 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 kz2Lp*6>L;Z}|MQZTZE20T{=)p8x;= delta 9208 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 P+VW17x4geww=Mra4aSkC diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index 4754bfe..c6f447a 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -1,11 +1,9 @@ import SwiftUI struct StarRatingView: View { @State private var rating: Int = 0 - var body: some View { VStack { Text("Selected Rating: \(rating)") - HStack { ForEach(1...5, id: \.self) { index in Image(systemName: index <= self.rating ? "star.fill" : "star") @@ -21,7 +19,6 @@ struct StarRatingView: View { .padding() } } - struct ContentView_Previews: PreviewProvider { static var previews: some View { StarRatingView()