From 239d04c854d218f973dc0ee71f7a6b75fb399ad4 Mon Sep 17 00:00:00 2001 From: Mattia Righetti Date: Sun, 5 Nov 2023 00:47:57 +0100 Subject: [PATCH] fix: fix host url and link button for yc links --- .../UserInterfaceState.xcuserstate | Bin 57499 -> 60360 bytes HNReader/View/ItemCell.swift | 30 +++++++++++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/HNReader.xcodeproj/project.xcworkspace/xcuserdata/mattrighetti.xcuserdatad/UserInterfaceState.xcuserstate b/HNReader.xcodeproj/project.xcworkspace/xcuserdata/mattrighetti.xcuserdatad/UserInterfaceState.xcuserstate index 5d2fa1c4966e48ee1762dbbeb637c862abd0a769..bf2b819093d3dca603f3b780d6092feb699d21cd 100644 GIT binary patch delta 12141 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 BnyCN) delta 10724 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 M*B^ZUDvR|01Kfc>`Tzg` diff --git a/HNReader/View/ItemCell.swift b/HNReader/View/ItemCell.swift index 73b3400..03cca1d 100644 --- a/HNReader/View/ItemCell.swift +++ b/HNReader/View/ItemCell.swift @@ -7,6 +7,11 @@ import SwiftUI +func nullableString(_ s: String?) -> String { + guard let s = s else { return "" } + return s +} + struct ItemCell: View { var itemId: Int let itemDownloader: ItemDownloader @@ -26,20 +31,22 @@ struct ItemCell: View { .font(.custom("IBMPlexSerif-Bold", size: 17)) .redactIfNull(item) - Text(item?.urlHost ?? String(repeating: "-", count: 30)) - .font(.custom("IBMPlexSerif-Light", size: 12)) - .redactIfNull(item) + if let url = item?.urlHost { + Text(url) + .font(.custom("IBMPlexSerif-Light", size: 12)) + .redactIfNull(item) + } HStack { - Text(item?.scoreString ?? String(repeating: "-", count: 3)) + Text(nullableString(item?.scoreString)) .font(.custom("IBMPlexSerif-SemiBold", size: 12)) .redactIfNull(item) - Text("Posted by \(item?.by ?? "?")") + Text("Posted by \(nullableString(item?.by))") .font(.custom("IBMPlexSerif-Regular", size: 12)) .redactIfNull(item) - Text("\(item?.timeStringRepresentation ?? String(repeating: "-", count: 3))") + Text("\(nullableString(item?.timeStringRepresentation))") .font(.custom("IBMPlexSerif-Regular", size: 12)) .redactIfNull(item) @@ -85,24 +92,23 @@ struct ItemCell: View { Label(title: {}, icon: { Image(systemName: "arrow.up.right") }) - .foregroundStyle(.primary) + .foregroundStyle(item?.url != nil ? .primary : .tertiary) .padding() } .frame(width: 50, height: 50) .onHover { isHovered in + guard item?.url == nil else { return } DispatchQueue.main.async { if (isHovered) { - NSCursor.pointingHand.push() + NSCursor.operationNotAllowed.push() } else { NSCursor.pop() } } } .onTapGesture { - if let item = item { - guard let url = URL(string: item.url!) else { return } - NSWorkspace.shared.open(url) - } + guard let url = item?.url, let url = URL(string: url) else { return } + NSWorkspace.shared.open(url) } }.padding(.leading) }