Link TODOs to issues

This commit is contained in:
Davide De Rosa 2024-10-01 15:45:25 +02:00
parent bef1d36aa4
commit f602655568
No known key found for this signature in database
GPG Key ID: A48836171C759F5E
18 changed files with 24 additions and 14 deletions

View File

@ -30,6 +30,7 @@ import PassepartoutKit
import UtilsLibrary import UtilsLibrary
extension AppData { extension AppData {
// TODO: #656, make non-static
public static func cdProfileRepository( public static func cdProfileRepository(
registry: Registry, registry: Registry,
coder: ProfileCoder, coder: ProfileCoder,

View File

@ -26,6 +26,7 @@
import Foundation import Foundation
import PassepartoutKit import PassepartoutKit
// TODO: #656, make non-static
public struct AppUI { public struct AppUI {
private init() { private init() {
} }

View File

@ -94,7 +94,7 @@ extension ProfileEditor {
ModuleType ModuleType
.allCases .allCases
.filter { .filter {
// TODO: hide manual OpenVPN/WireGuard until editable // TODO: #657, hide manual OpenVPN/WireGuard until editable
$0 != .openVPN && $0 != .wireGuard $0 != .openVPN && $0 != .wireGuard
} }
.filter { .filter {

View File

@ -28,6 +28,8 @@ import Foundation
import PassepartoutKit import PassepartoutKit
extension Issue { extension Issue {
// TODO: #656, make non-static
static func with(versionString: String, purchasedProducts: Set<AppProduct>, tunnel: Tunnel) async -> Self { static func with(versionString: String, purchasedProducts: Set<AppProduct>, tunnel: Tunnel) async -> Self {
let appLog = CommonLibrary.currentLog(parameters: Constants.shared.log) let appLog = CommonLibrary.currentLog(parameters: Constants.shared.log)
.joined(separator: "\n") .joined(separator: "\n")

View File

@ -81,7 +81,7 @@ struct Issue: Identifiable {
.replacingOccurrences(of: "$appLine", with: appLine ?? "unknown") .replacingOccurrences(of: "$appLine", with: appLine ?? "unknown")
.replacingOccurrences(of: "$osLine", with: osLine) .replacingOccurrences(of: "$osLine", with: osLine)
.replacingOccurrences(of: "$deviceLine", with: deviceLine ?? "unknown") .replacingOccurrences(of: "$deviceLine", with: deviceLine ?? "unknown")
// TODO: replace with provider later // TODO: #614, replace with provider later
.replacingOccurrences(of: "$providerName", with: "none") .replacingOccurrences(of: "$providerName", with: "none")
.replacingOccurrences(of: "$providerLastUpdate", with: "unknown") .replacingOccurrences(of: "$providerLastUpdate", with: "unknown")
.replacingOccurrences(of: "$purchasedProducts", with: purchasedProducts.map(\.rawValue).description) .replacingOccurrences(of: "$purchasedProducts", with: purchasedProducts.map(\.rawValue).description)

View File

@ -25,7 +25,7 @@
import SwiftUI import SwiftUI
// TODO: donations // TODO: #585, donations
struct DonateView: View { struct DonateView: View {
var body: some View { var body: some View {

View File

@ -32,7 +32,7 @@ extension AboutView {
var listView: some View { var listView: some View {
List { List {
Section { Section {
// TODO: donations // TODO: #585, donations
// donateLink // donateLink
linksLink linksLink
creditsLink creditsLink

View File

@ -32,7 +32,7 @@ extension AboutView {
var listView: some View { var listView: some View {
List(selection: $navigationRoute) { List(selection: $navigationRoute) {
Section { Section {
// TODO: donations // TODO: #585, donations
// donateLink // donateLink
linksLink linksLink
creditsLink creditsLink

View File

@ -29,18 +29,22 @@ import SwiftUI
import UtilsLibrary import UtilsLibrary
extension DebugLogView { extension DebugLogView {
// TODO: #656, make non-static
static func withApp(parameters: Constants.Log) -> DebugLogView { static func withApp(parameters: Constants.Log) -> DebugLogView {
DebugLogView { DebugLogView {
CommonLibrary.currentLog(parameters: parameters) CommonLibrary.currentLog(parameters: parameters)
} }
} }
// TODO: #656, make non-static
static func withTunnel(_ tunnel: Tunnel, parameters: Constants.Log) -> DebugLogView { static func withTunnel(_ tunnel: Tunnel, parameters: Constants.Log) -> DebugLogView {
DebugLogView { DebugLogView {
await tunnel.currentLog(parameters: parameters) await tunnel.currentLog(parameters: parameters)
} }
} }
// TODO: #656, make non-static
static func withURL(_ url: URL) -> DebugLogView { static func withURL(_ url: URL) -> DebugLogView {
DebugLogView { DebugLogView {
do { do {
@ -99,7 +103,7 @@ private extension DebugLogView {
.disabled(currentLines.isEmpty) .disabled(currentLines.isEmpty)
} }
// TODO: share as temporary URL (could enable email) // TODO: #658, share as temporary URL (could enable email)
// var shareButton: some View { // var shareButton: some View {
// ShareLink(item: content) // ShareLink(item: content)
// } // }

View File

@ -321,7 +321,7 @@ private extension OpenVPNView {
private extension OpenVPNView { private extension OpenVPNView {
func importConfiguration(from url: URL) { func importConfiguration(from url: URL) {
// TODO: import draft from external URL // TODO: #657, import draft from external URL
} }
} }

View File

@ -137,7 +137,7 @@ private extension WireGuardView {
private extension WireGuardView { private extension WireGuardView {
func importConfiguration(from url: URL) { func importConfiguration(from url: URL) {
// TODO: import draft from external URL // TODO: #657, import draft from external URL
} }
} }

View File

@ -35,11 +35,11 @@ struct PaywallView: View {
let feature: AppFeature let feature: AppFeature
// TODO: #424, implement payments // TODO: #585, implement payments
var body: some View { var body: some View {
Text(String(describing: feature)) Text(String(describing: feature))
.toolbar(content: toolbarContent) .toolbar(content: toolbarContent)
.navigationTitle("Purchase") .navigationTitle(Strings.Global.purchase)
} }
} }

View File

@ -348,7 +348,7 @@ struct ThemeCopiableText: View {
} label: { } label: {
ThemeImage(.copy) ThemeImage(.copy)
} }
// TODO: #584 menu, necessary to avoid cell selection // TODO: #584, necessary to avoid cell selection
.buttonStyle(.borderless) .buttonStyle(.borderless)
} }
} }

View File

@ -123,7 +123,7 @@ private extension InstalledProfileView {
ThemeImage(.tunnelToggle) ThemeImage(.tunnelToggle)
.scaleEffect(1.5, anchor: .trailing) .scaleEffect(1.5, anchor: .trailing)
} }
// TODO: #584 menu, necessary to avoid cell selection // TODO: #584, necessary to avoid cell selection
.buttonStyle(.plain) .buttonStyle(.plain)
.opacity(installedOpacity) .opacity(installedOpacity)
} }

View File

@ -37,7 +37,7 @@ struct ProfileInfoButton: View {
} label: { } label: {
ThemeImage(.info) ThemeImage(.info)
} }
// TODO: #584 menu, necessary to avoid cell selection // TODO: #584, necessary to avoid cell selection
.buttonStyle(.borderless) .buttonStyle(.borderless)
} }
} }

View File

@ -26,6 +26,7 @@
import Foundation import Foundation
import PassepartoutKit import PassepartoutKit
// TODO: #656, make non-static
public struct CommonLibrary { public struct CommonLibrary {
private init() { private init() {
} }

View File

@ -26,6 +26,7 @@
import Foundation import Foundation
import PassepartoutKit import PassepartoutKit
// TODO: #656, make non-static
extension BundleConfiguration { extension BundleConfiguration {
public enum BundleKey: String { public enum BundleKey: String {
case appStoreId case appStoreId

View File

@ -41,7 +41,7 @@ public struct LongContentView: View {
Image(systemName: copySystemImage ?? "doc.on.doc") Image(systemName: copySystemImage ?? "doc.on.doc")
} }
} }
// TODO: layout, add padding an inset, let content extend beyond safe areas // TODO: #659, add padding as inset, let content extend beyond safe areas
} }
} }