From 94781f4c48fe80b081262719a199eba1b9943a41 Mon Sep 17 00:00:00 2001 From: Trey t Date: Sun, 30 Nov 2025 12:37:15 -0600 Subject: [PATCH] update profile and UI tweaks --- .../com/example/casera/network/AuthApi.kt | 2 +- iosApp/Casera/MyCrib.swift | 27 ++------- iosApp/iosApp.xcodeproj/project.pbxproj | 8 +++ .../house_outline.imageset/Contents.json | 12 ++++ .../house_outline.imageset/house_outline.pdf | Bin 0 -> 35927 bytes .../icon.imageset/Contents.json | 12 ++++ .../Assets.xcassets/icon.imageset/icon.pdf | Bin 0 -> 47228 bytes .../tab_view_house.imageset/Contents.json | 26 +++++++++ .../house_outline 1.png | Bin 0 -> 3578 bytes .../house_outline 2.png | Bin 0 -> 1731 bytes .../tab_view_house.imageset/house_outline.png | Bin 0 -> 5885 bytes iosApp/iosApp/Contractor/ContractorCard.swift | 18 +++--- .../Contractor/ContractorFormSheet.swift | 10 ++-- .../Documents/Components/DocumentCard.swift | 14 +++-- iosApp/iosApp/Login/LoginView.swift | 7 +-- iosApp/iosApp/MainTabView.swift | 2 +- .../Profile/NotificationPreferencesView.swift | 12 +++- iosApp/iosApp/Profile/ProfileTabView.swift | 40 ++++++------- iosApp/iosApp/Subviews/Auth/LoginHeader.swift | 2 +- .../iosApp/Subviews/Common/OverviewCard.swift | 2 +- iosApp/iosApp/Subviews/Common/StatView.swift | 19 ++++++- .../Residence/PropertyHeaderCard.swift | 17 +++++- .../Subviews/Residence/ResidenceCard.swift | 53 ++++++++++-------- .../Subviews/Residence/SummaryCard.swift | 2 +- .../Subviews/Residence/SummaryStatView.swift | 2 +- 25 files changed, 184 insertions(+), 103 deletions(-) create mode 100644 iosApp/iosApp/Assets.xcassets/house_outline.imageset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/house_outline.imageset/house_outline.pdf create mode 100644 iosApp/iosApp/Assets.xcassets/icon.imageset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/icon.imageset/icon.pdf create mode 100644 iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 1.png create mode 100644 iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 2.png create mode 100644 iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline.png diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt b/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt index 8b75af3..fd36755 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt +++ b/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt @@ -100,7 +100,7 @@ class AuthApi(private val client: HttpClient = ApiClient.httpClient) { suspend fun updateProfile(token: String, request: UpdateProfileRequest): ApiResult { return try { - val response = client.put("$baseUrl/auth/update-profile/") { + val response = client.put("$baseUrl/auth/profile/") { header("Authorization", "Token $token") contentType(ContentType.Application.Json) setBody(request) diff --git a/iosApp/Casera/MyCrib.swift b/iosApp/Casera/MyCrib.swift index 67df031..e88d75f 100644 --- a/iosApp/Casera/MyCrib.swift +++ b/iosApp/Casera/MyCrib.swift @@ -162,19 +162,6 @@ struct SmallWidgetView: View { var body: some View { VStack(alignment: .leading, spacing: 0) { - // Header - HStack(spacing: 6) { - Image(systemName: "house.fill") - .font(.system(size: 14, weight: .semibold)) - .foregroundStyle(.blue) - - Text("Casera") - .font(.system(size: 14, weight: .bold)) - .foregroundStyle(.primary) - - Spacer() - } - // Task Count VStack(alignment: .leading, spacing: 4) { Text("\(entry.taskCount)") @@ -410,16 +397,8 @@ struct LargeWidgetView: View { VStack(alignment: .leading, spacing: 6) { // Header HStack(spacing: 6) { - Image(systemName: "house.fill") - .font(.system(size: 16, weight: .semibold)) - .foregroundStyle(.blue) - - Text("Casera") - .font(.system(size: 16, weight: .bold)) - .foregroundStyle(.primary) - Spacer() - + Text("\(entry.taskCount)") .font(.system(size: 22, weight: .bold)) .foregroundStyle(.blue) @@ -483,7 +462,9 @@ struct LargeTaskRowView: View { HStack(spacing: 10) { if let residenceName = task.residenceName { HStack(spacing: 2) { - Image(systemName: "house.fill") + Image("icon") + .resizable() + .frame(width: 7, height: 7) .font(.system(size: 7)) Text(residenceName) .font(.system(size: 9)) diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 28d14c7..98a35b9 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -85,6 +85,13 @@ ); target = 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */; }; + 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Assets.xcassets, + ); + target = 1C07893C2EBC218B00392B46 /* CaseraExtension */; + }; 1CBF1C072ECD97AC001BF56C /* Exceptions for "CaseraTests" folder in "CaseraTests" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( @@ -135,6 +142,7 @@ isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( 84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "Casera" target */, + 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */, 1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "CaseraUITests" target */, ); path = iosApp; diff --git a/iosApp/iosApp/Assets.xcassets/house_outline.imageset/Contents.json b/iosApp/iosApp/Assets.xcassets/house_outline.imageset/Contents.json new file mode 100644 index 0000000..bd99210 --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/house_outline.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "house_outline.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosApp/iosApp/Assets.xcassets/house_outline.imageset/house_outline.pdf b/iosApp/iosApp/Assets.xcassets/house_outline.imageset/house_outline.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ede73501867f62e4ff314da1b33845b25f2e2c2f GIT binary patch literal 35927 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 OWTj5<@u}&npZGsu5T*A3 literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/icon.imageset/Contents.json b/iosApp/iosApp/Assets.xcassets/icon.imageset/Contents.json new file mode 100644 index 0000000..dd9e55c --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/icon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "icon.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosApp/iosApp/Assets.xcassets/icon.imageset/icon.pdf b/iosApp/iosApp/Assets.xcassets/icon.imageset/icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f3c56d072fbd081dba8f362665eb7bd6a26b2be9 GIT binary patch literal 47228 zcmc$_cUV(R*DoBpbU{Etn$iX7ND+vL5Rei9r3w-0p!D8?pddveO{54&M^upBBVBrx zCN=a4!yyu+jI@kBlHzC=3&t7|Gt(nx zs*8&M`P5&e7tiR}SUXtWck$&m1E|EgB_t(9<>dZ#Fu$Nsb@6ic_QdI+S?mPcY3ef*;L@ql154YMj z&UT*m+_DlEBp#mbHkL1`#4g&f^7zM5)qu*4N?cU(;xXX!uM?}6K(&m-gn&pjH~47jFyiJz!uU zQhT2jLX`7a|vmv-|q7ANoV8Sl-;h!$z(ugr6`CO z$|WjB_JNo?MPQ!7Uv9+c4P@{K4n*!7LX-~@H(4)gQrT&~$15g#)xYi+B{q7NhDZb3 zWV5yoEeIn(hrd2<0)c+P+E!lZDrmKx-qh`8%8lBVx|!d>8^x*~nIiV^QJeeoShJ

gK<7i8hwf{MgHkHgkI+8IeK< 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 literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/Contents.json b/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/Contents.json new file mode 100644 index 0000000..0391e21 --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "house_outline 2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "house_outline 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "house_outline.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 1.png b/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 1.png new file mode 100644 index 0000000000000000000000000000000000000000..70bf1f1d5d3ef92f2ca177a2f608743848659611 GIT binary patch literal 3578 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 literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 2.png b/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline 2.png new file mode 100644 index 0000000000000000000000000000000000000000..7e965e2f057a75cf31d3f1f8c1d8e8efc32871fb GIT binary patch literal 1731 zcmY*ZeLRzE7=Gt#2!%S*hjvEA9Gj1*t!*V^8#W^+)G-a4t(e({rOxtIDk=_I4o1SS zEc4NaU+U=WgwYR)Y9*ZVkvNsFO4P}DCr9Tz@9%!^>$%_Sy6)$G{&-K)s6<2kHTnPm z7?Mc@KQNoCLstiUH;x_)0~18xN8AO-JJyYYn^a~XnMI)h2oUQ6+7J^!Q%wOM0I~+q zUcdn030b>@{UFwh91Q?S;{aNVoV{RHFA^A_dNFGjL%ul{Yb>$Ni#5MtwM^DJ7Yrsn z9w|rw0Lx6(0Ret3SPi-bar^^?ffR2{SacMU5gr}NM2ez#Y88MLVL%wg6f$6j`Y;#_%MWK^{0JV4a&U)(vxPz) z28D``k4MHkA*1;bCb3_HOgu8<+J;|eUln*8fSU<$(c9G;L9&4sCb z8KKd!LL3~fZnU(%o>RzSee1*(ERF>Zh*Ez+IUwy(OWvRqtFB^v_#7tKS?!N^z%DTV zS6l3ZMX8(r=P+LArxSWp;vHn0R|UAkFBM0YKuA0W zqrm;*A(u^DyYk7<@+7Mxn(VBNm4>A+p52U$smVD#Z`L%$4+3`Ddq9gWzp*m7nXlS5 zPaKJvaJ~`XQz2E&`%raRy1hp1*NoB!A^nQ`?8nsY%E>-b@;L6OVQVv5N%Wnl6B3SL z8%PyZ#n&t2UcL6zu^MFKsmU|`jH6It!uKOHPg+HumkX4+9y@5&+eV?17D*vu6>Q)+ z^V)%m4q8Kz`KrRmD=T?WWoNHjQ_;$-)T7-`gM3$Oh=gM9!;5bX)0T;~25!yq&d1xF z5dFnLyiI@>SsIM?4j#u9nw?@ z!P+ilbS~l8=aA}v+zIFP!v&w|xb;fKzMYaAAB@~6XMJp(^zyg7D?rRGBT?e@2HVp* zqgpgXJK!oNRV=@Mf)?VGo-QrpD$)8IUf3Do%V-8zS>h_Q;|5o*)l34z!LeOlt>fL< zr4u6hW6ABl<>}2mobC+2-FYAP0599}elDB3neb@%_H~m0ufCsINwmy!Og9P`gp*>hylq`3~J3ZtaZJzR|c@ zyO_;Fh*)(zhsoq8TYb>!8q0WEh37_Yb+-2RR(#oSJNV0u+HEE`bt1Mq?(vEhH`SZ; zi6N{5V?6DOVLV=I;FT%Abh%4b>nUgN21IwB$h?fQx?Sq}@Ognp;xX;ZUK^_i5X{jP zDFZ+t?p}&GEpO)1^{ch{Uz%UfW!DunDIZyNy|_A>_9`P`R)b@CD>Wp%;`fe1yrqQS zc${$Ku!XuAgJN)P?Qb^C|)CZJ!JLFO7vXfRoB#pYXeLLFiLR`bb_MRTQ`>s%M zjv%2756Nz~dq4VcXuFHJU2-9gRUi$1_1=4c2hGn{5?XR6C^Jo{Ge~~NlyT$*i@u_y zES;)@t(kKFZELx2%)*)+HQs_i zZluR4)>qKiiNiZ{5WNr4Mjs2d1a*}8r+03RwYsw_QxK7!=Nq|h@_Fri5}O{A9IbLs z&(DoOV*;*S%wERU@tFWdP7IvYsNYm+v9lw~-gr-#scK%ECS5z9h$C>+e{!-rl_1}>KlvZoyuz9Q literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline.png b/iosApp/iosApp/Assets.xcassets/tab_view_house.imageset/house_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..052759d0d5ac8855392f134c408e679e97d8b83b GIT binary patch literal 5885 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 literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Contractor/ContractorCard.swift b/iosApp/iosApp/Contractor/ContractorCard.swift index 3f87043..5a70f59 100644 --- a/iosApp/iosApp/Contractor/ContractorCard.swift +++ b/iosApp/iosApp/Contractor/ContractorCard.swift @@ -8,15 +8,15 @@ struct ContractorCard: View { var body: some View { HStack(spacing: AppSpacing.md) { // Avatar - ZStack { - Circle() - .fill(Color.appPrimary.opacity(0.1)) - .frame(width: 56, height: 56) - - Image(systemName: "person.fill") - .font(.title2) - .foregroundColor(Color.appPrimary) - } +// ZStack { +// Circle() +// .fill(Color.appPrimary.opacity(0.1)) +// .frame(width: 56, height: 56) +// +// Image(systemName: "person.fill") +// .font(.title2) +// .foregroundColor(Color.appPrimary) +// } // Content VStack(alignment: .leading, spacing: AppSpacing.xxs) { diff --git a/iosApp/iosApp/Contractor/ContractorFormSheet.swift b/iosApp/iosApp/Contractor/ContractorFormSheet.swift index 30c1ee8..3689ae5 100644 --- a/iosApp/iosApp/Contractor/ContractorFormSheet.swift +++ b/iosApp/iosApp/Contractor/ContractorFormSheet.swift @@ -428,10 +428,12 @@ struct ContractorFormSheet: View { // Set residence if contractor has one if let residenceId = contractor.residenceId { selectedResidenceId = residenceId.int32Value - // Try to find residence name from loaded residences - if let residences = residenceViewModel.myResidences?.residences, - let residence = residences.first(where: { $0.id == residenceId.int32Value }) { - selectedResidenceName = residence.name + if let selectedResidenceId { + ComposeApp.ResidenceViewModel().getResidence(id: selectedResidenceId, onResult: { result in + if let success = result as? ApiResultSuccess { + self.selectedResidenceName = success.data?.name + } + }) } } diff --git a/iosApp/iosApp/Documents/Components/DocumentCard.swift b/iosApp/iosApp/Documents/Components/DocumentCard.swift index b98ff5e..50172e4 100644 --- a/iosApp/iosApp/Documents/Components/DocumentCard.swift +++ b/iosApp/iosApp/Documents/Components/DocumentCard.swift @@ -27,14 +27,18 @@ struct DocumentCard: View { var body: some View { HStack(spacing: AppSpacing.md) { // Document Icon - ZStack { - RoundedRectangle(cornerRadius: 8) - .fill(typeColor.opacity(0.1)) - .frame(width: 56, height: 56) - + VStack { Image(systemName: typeIcon) .font(.system(size: 24)) .foregroundColor(typeColor) + .background(content: { + RoundedRectangle(cornerRadius: 8) + .fill(typeColor.opacity(0.1)) + .frame(width: 56, height: 56) + }) + .padding(AppSpacing.md) + + Spacer() } VStack(alignment: .leading, spacing: 4) { diff --git a/iosApp/iosApp/Login/LoginView.swift b/iosApp/iosApp/Login/LoginView.swift index 1993954..89a0163 100644 --- a/iosApp/iosApp/Login/LoginView.swift +++ b/iosApp/iosApp/Login/LoginView.swift @@ -53,12 +53,7 @@ struct LoginView: View { VStack(spacing: AppSpacing.lg) { // App Icon with gradient ZStack { - Circle() - .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) - .frame(width: 100, height: 100) - .shadow(color: Color.appPrimary.opacity(0.3), radius: 20, y: 10) - - Image(systemName: "house.fill") + Image("icon") .font(.system(size: 50, weight: .semibold)) .foregroundStyle(.white) } diff --git a/iosApp/iosApp/MainTabView.swift b/iosApp/iosApp/MainTabView.swift index b0ba183..1aca547 100644 --- a/iosApp/iosApp/MainTabView.swift +++ b/iosApp/iosApp/MainTabView.swift @@ -13,7 +13,7 @@ struct MainTabView: View { } .id(refreshID) .tabItem { - Label("Residences", systemImage: "house.fill") + Label("Residences", image: "tab_view_house") } .tag(0) .accessibilityIdentifier(AccessibilityIdentifiers.Navigation.residencesTab) diff --git a/iosApp/iosApp/Profile/NotificationPreferencesView.swift b/iosApp/iosApp/Profile/NotificationPreferencesView.swift index e0eb20e..b94bbf4 100644 --- a/iosApp/iosApp/Profile/NotificationPreferencesView.swift +++ b/iosApp/iosApp/Profile/NotificationPreferencesView.swift @@ -152,8 +152,16 @@ struct NotificationPreferencesView: View { .foregroundColor(Color.appTextSecondary) } } icon: { - Image(systemName: "house.fill") - .foregroundColor(Color.appPrimary) + Image("house_outline") + .resizable() + .frame(width: 22, height: 22) + .foregroundColor(Color.appTextOnPrimary) + .background(content: { + RoundedRectangle(cornerRadius: AppRadius.sm) + .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) + .frame(width: 22, height: 22) + .shadow(color: Color.appPrimary.opacity(0.3), radius: 6, y: 3) + }) } } .tint(Color.appPrimary) diff --git a/iosApp/iosApp/Profile/ProfileTabView.swift b/iosApp/iosApp/Profile/ProfileTabView.swift index e93446d..752b179 100644 --- a/iosApp/iosApp/Profile/ProfileTabView.swift +++ b/iosApp/iosApp/Profile/ProfileTabView.swift @@ -14,26 +14,26 @@ struct ProfileTabView: View { var body: some View { List { - Section { - HStack { - Image(systemName: "person.circle.fill") - .resizable() - .frame(width: 60, height: 60) - .foregroundColor(Color.appPrimary) - - VStack(alignment: .leading, spacing: 4) { - Text("User Profile") - .font(.headline) - .foregroundColor(Color.appTextPrimary) - - Text("Manage your account") - .font(.caption) - .foregroundColor(Color.appTextSecondary) - } - } - .padding(.vertical, 8) - .listRowBackground(Color.appBackgroundSecondary) - } +// Section { +// HStack { +// Image(systemName: "person.circle.fill") +// .resizable() +// .frame(width: 60, height: 60) +// .foregroundColor(Color.appPrimary) +// +// VStack(alignment: .leading, spacing: 4) { +// Text("User Profile") +// .font(.headline) +// .foregroundColor(Color.appTextPrimary) +// +// Text("Manage your account") +// .font(.caption) +// .foregroundColor(Color.appTextSecondary) +// } +// } +// .padding(.vertical, 8) +// .listRowBackground(Color.appBackgroundSecondary) +// } Section("Account") { Button(action: { diff --git a/iosApp/iosApp/Subviews/Auth/LoginHeader.swift b/iosApp/iosApp/Subviews/Auth/LoginHeader.swift index 23a494c..919d415 100644 --- a/iosApp/iosApp/Subviews/Auth/LoginHeader.swift +++ b/iosApp/iosApp/Subviews/Auth/LoginHeader.swift @@ -3,7 +3,7 @@ import SwiftUI struct LoginHeader: View { var body: some View { VStack(spacing: 8) { - Image(systemName: "house.fill") + Image("icon") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 80, height: 80) diff --git a/iosApp/iosApp/Subviews/Common/OverviewCard.swift b/iosApp/iosApp/Subviews/Common/OverviewCard.swift index 4d11f06..e702535 100644 --- a/iosApp/iosApp/Subviews/Common/OverviewCard.swift +++ b/iosApp/iosApp/Subviews/Common/OverviewCard.swift @@ -29,7 +29,7 @@ struct OverviewCard: View { // Stats Grid HStack(spacing: AppSpacing.md) { StatView( - icon: "house.fill", + icon: "house_outline", value: "\(summary.totalResidences)", label: "Properties", color: Color.appPrimary diff --git a/iosApp/iosApp/Subviews/Common/StatView.swift b/iosApp/iosApp/Subviews/Common/StatView.swift index 4b87be0..ff55df3 100644 --- a/iosApp/iosApp/Subviews/Common/StatView.swift +++ b/iosApp/iosApp/Subviews/Common/StatView.swift @@ -13,9 +13,22 @@ struct StatView: View { .fill(color.opacity(0.1)) .frame(width: 48, height: 48) - Image(systemName: icon) - .font(.system(size: 22, weight: .semibold)) - .foregroundColor(color) + if icon == "house_outline" { + Image("house_outline") + .resizable() + .frame(width: 22, height: 22) + .foregroundColor(Color.appTextOnPrimary) + .background(content: { + RoundedRectangle(cornerRadius: AppRadius.sm) + .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) + .frame(width: 22, height: 22) + .shadow(color: Color.appPrimary.opacity(0.3), radius: 6, y: 3) + }) + } else { + Image(systemName: icon) + .font(.system(size: 22, weight: .semibold)) + .foregroundColor(color) + } } Text(value) diff --git a/iosApp/iosApp/Subviews/Residence/PropertyHeaderCard.swift b/iosApp/iosApp/Subviews/Residence/PropertyHeaderCard.swift index 8f53c4f..be8558d 100644 --- a/iosApp/iosApp/Subviews/Residence/PropertyHeaderCard.swift +++ b/iosApp/iosApp/Subviews/Residence/PropertyHeaderCard.swift @@ -7,9 +7,20 @@ struct PropertyHeaderCard: View { var body: some View { VStack(alignment: .leading, spacing: 16) { HStack { - Image(systemName: "house.fill") - .font(.title2) - .foregroundColor(Color.appPrimary) + VStack { + Image("house_outline") + .resizable() + .frame(width: 38, height: 38) + .foregroundColor(Color.appTextOnPrimary) + .background(content: { + RoundedRectangle(cornerRadius: AppRadius.sm) + .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) + .frame(width: 38, height: 38) + .shadow(color: Color.appPrimary.opacity(0.3), radius: 6, y: 3) + }) + + Spacer() + } VStack(alignment: .leading, spacing: 4) { Text(residence.name) diff --git a/iosApp/iosApp/Subviews/Residence/ResidenceCard.swift b/iosApp/iosApp/Subviews/Residence/ResidenceCard.swift index c049ae3..7598352 100644 --- a/iosApp/iosApp/Subviews/Residence/ResidenceCard.swift +++ b/iosApp/iosApp/Subviews/Residence/ResidenceCard.swift @@ -3,29 +3,33 @@ import ComposeApp struct ResidenceCard: View { let residence: ResidenceResponse - + var body: some View { VStack(alignment: .leading, spacing: AppSpacing.md) { // Header with property type icon HStack(spacing: AppSpacing.sm) { - ZStack { - RoundedRectangle(cornerRadius: AppRadius.sm) - .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) + VStack { + Image("house_outline") + .resizable() .frame(width: 44, height: 44) - .shadow(color: Color.appPrimary.opacity(0.3), radius: 6, y: 3) - - Image(systemName: "house.fill") - .font(.system(size: 20, weight: .semibold)) .foregroundColor(Color.appTextOnPrimary) + .background(content: { + RoundedRectangle(cornerRadius: AppRadius.sm) + .fill(LinearGradient(colors: [Color.appPrimary, Color.appPrimary.opacity(0.8)], startPoint: .topLeading, endPoint: .bottomTrailing)) + .frame(width: 44, height: 44) + .shadow(color: Color.appPrimary.opacity(0.3), radius: 6, y: 3) + }) + .padding([.trailing], AppSpacing.md) + + Spacer() } - + VStack(alignment: .leading, spacing: AppSpacing.xxs) { Text(residence.name) .font(.title3.weight(.semibold)) .fontWeight(.bold) .foregroundColor(Color.appTextPrimary) -// .lineLimit(1) - + if let propertyTypeName = residence.propertyTypeName { Text(propertyTypeName) .font(.caption.weight(.medium)) @@ -34,21 +38,26 @@ struct ResidenceCard: View { .tracking(0.5) } } - + Spacer() - + if residence.isPrimary { - ZStack { - Circle() - .fill(Color.appAccent.opacity(0.2)) - .frame(width: 32, height: 32) + VStack { Image(systemName: "star.fill") .font(.system(size: 14, weight: .bold)) .foregroundColor(Color.appAccent) + .background(content: { + Circle() + .fill(Color.appAccent.opacity(0.2)) + .frame(width: 32, height: 32) + }) + .padding(AppSpacing.md) + + Spacer() } } } - + // Address VStack(alignment: .leading, spacing: AppSpacing.xxs) { if !residence.streetAddress.isEmpty { @@ -61,7 +70,7 @@ struct ResidenceCard: View { .foregroundColor(Color.appTextSecondary) } } - + if !residence.city.isEmpty || !residence.stateProvince.isEmpty { HStack(spacing: AppSpacing.xxs) { Image(systemName: "location.fill") @@ -74,13 +83,13 @@ struct ResidenceCard: View { } } .padding(.vertical, AppSpacing.xs) - + Divider() - + // Fully dynamic task stats from API - show first 3 categories HStack(spacing: AppSpacing.sm) { let displayCategories = Array(residence.taskSummary.categories.prefix(3)) - + ForEach(displayCategories, id: \.name) { category in TaskStatChip( icon: category.icons.ios, diff --git a/iosApp/iosApp/Subviews/Residence/SummaryCard.swift b/iosApp/iosApp/Subviews/Residence/SummaryCard.swift index 2e5c7e1..65bfeae 100644 --- a/iosApp/iosApp/Subviews/Residence/SummaryCard.swift +++ b/iosApp/iosApp/Subviews/Residence/SummaryCard.swift @@ -17,7 +17,7 @@ struct SummaryCard: View { HStack(spacing: 20) { SummaryStatView( - icon: "house.fill", + icon: "house_outline", value: "\(summary.totalResidences)", label: "Properties" ) diff --git a/iosApp/iosApp/Subviews/Residence/SummaryStatView.swift b/iosApp/iosApp/Subviews/Residence/SummaryStatView.swift index f78b5d1..ef9a50c 100644 --- a/iosApp/iosApp/Subviews/Residence/SummaryStatView.swift +++ b/iosApp/iosApp/Subviews/Residence/SummaryStatView.swift @@ -28,7 +28,7 @@ struct SummaryStatView: View { #Preview { HStack(spacing: 20) { SummaryStatView( - icon: "house.fill", + icon: "house_outline", value: "3", label: "Properties" )