diff --git a/Anytype/Sources/PresentationLayer/Modules/Membership/TierSelection/MembershipTierSelectionView.swift b/Anytype/Sources/PresentationLayer/Modules/Membership/TierSelection/MembershipTierSelectionView.swift index 0634bce741..e636ef102e 100644 --- a/Anytype/Sources/PresentationLayer/Modules/Membership/TierSelection/MembershipTierSelectionView.swift +++ b/Anytype/Sources/PresentationLayer/Modules/Membership/TierSelection/MembershipTierSelectionView.swift @@ -48,6 +48,7 @@ struct MembershipTierSelectionView: View { case .appStore(let product): MembershipNameSheetView(tier: model.tierToDisplay, anyName: model.userMembership.anyName, product: product, onSuccessfulPurchase: model.onSuccessfulPurchase) case .external(let info): + // TODO: Add proper wording StandardButton("More info", style: .primaryLarge) { openURL(info.paymentUrl) }.padding() diff --git a/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/SpaceSettingsViewModel.swift b/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/SpaceSettingsViewModel.swift index 1259bc819f..c8129a973c 100644 --- a/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/SpaceSettingsViewModel.swift +++ b/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/SpaceSettingsViewModel.swift @@ -165,10 +165,12 @@ final class SpaceSettingsViewModel: ObservableObject { anytypeAssert(owner.isNotNil, "Could not find owner for space)", info: ["SpaceView": participantSpaceView.debugDescription]) if let owner { + let displayName = owner.globalName.isNotEmpty ? owner.globalName : owner.identity + info.append( - SettingsInfoModel(title: creatorDetails.name, subtitle: owner.globalName, onTap: { [weak self] in + SettingsInfoModel(title: creatorDetails.name, subtitle: displayName, onTap: { [weak self] in guard let self else { return } - UIPasteboard.general.string = owner.globalName + UIPasteboard.general.string = displayName snackBarData = .init(text: Loc.copiedToClipboard(creatorDetails.name), showSnackBar: true) }) ) diff --git a/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/Views/SettingsInfoBlockView.swift b/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/Views/SettingsInfoBlockView.swift index a06218c2db..5c93db54f9 100644 --- a/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/Views/SettingsInfoBlockView.swift +++ b/Anytype/Sources/PresentationLayer/SpaceSettings/SpaceSettings/Views/SettingsInfoBlockView.swift @@ -17,19 +17,26 @@ struct SettingsInfoBlockView: View { let model: SettingsInfoModel var body: some View { + Button { + model.onTap?() + } label: { + label + } + .disabled(model.onTap.isNil) + } + + var label: some View { VStack(alignment: .leading, spacing: 4) { AnytypeText(model.title, style: .uxTitle1Semibold) .foregroundColor(.Text.primary) HStack { AnytypeText(model.subtitle, style: .previewTitle2Regular) .foregroundColor(.Text.primary) + .multilineTextAlignment(.leading) Spacer() - if let onTap = model.onTap { + if model.onTap.isNotNil { Image(asset: .X24.copy) .foregroundColor(.Button.active) - .onTapGesture { - onTap() - } } } } @@ -37,3 +44,22 @@ struct SettingsInfoBlockView: View { .frame(maxWidth: .infinity, alignment: .leading) } } + +#Preview { + VStack { + SettingsInfoBlockView( + model: SettingsInfoModel( + title: "Description", + subtitle: "Setting without action", + onTap: nil + ) + ) + SettingsInfoBlockView( + model: SettingsInfoModel( + title: "AnytypeId", + subtitle: "Setting with action", + onTap: { } + ) + ) + }.padding() +}