native macOS codings agent orchestrator
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #122 from supabitapp/add-workrow-github-status

Add PR status ring to worktree rows

authored by

khoi and committed by
GitHub
11e6d6e5 b42213e3

+46 -8
+9 -4
supacode/Features/Repositories/Views/PullRequestStatusButton.swift
··· 12 12 } label: { 13 13 HStack(spacing: 6) { 14 14 if let checkBreakdown = model.checkBreakdown { 15 + PullRequestBadgeView( 16 + text: model.badgeText, 17 + color: model.badgeColor 18 + ) 15 19 PullRequestChecksRingView(breakdown: checkBreakdown) 20 + } else { 21 + PullRequestBadgeView( 22 + text: model.badgeText, 23 + color: model.badgeColor 24 + ) 16 25 } 17 - PullRequestBadgeView( 18 - text: model.badgeText, 19 - color: model.badgeColor 20 - ) 21 26 if let detailText = model.detailText { 22 27 Text(detailText) 23 28 }
+37 -4
supacode/Features/Repositories/Views/WorktreeRow.swift
··· 33 33 state: pullRequestState, 34 34 number: pullRequestNumber 35 35 ) 36 + let pullRequestCheckBreakdown: PullRequestCheckBreakdown? = { 37 + guard let rollup = displayPullRequest?.statusCheckRollup else { 38 + return nil 39 + } 40 + guard !rollup.checks.isEmpty else { 41 + return nil 42 + } 43 + guard pullRequestState != "MERGED" else { 44 + return nil 45 + } 46 + return PullRequestCheckBreakdown(checks: rollup.checks) 47 + }() 36 48 let pullRequestHelp = PullRequestBadgeStyle.helpText(state: pullRequestState, url: pullRequestURL) 37 49 HStack(alignment: .center) { 38 50 ZStack { ··· 82 94 text: pullRequestBadgeStyle.text, 83 95 color: pullRequestBadgeStyle.color, 84 96 help: pullRequestHelp, 85 - url: pullRequestURL 97 + url: pullRequestURL, 98 + checkBreakdown: pullRequestCheckBreakdown 86 99 ) 87 100 } 88 101 if let shortcutHint { ··· 92 105 } 93 106 94 107 @ViewBuilder 95 - private func pullRequestBadge(text: String, color: Color, help: String, url: URL?) -> some View { 108 + private func pullRequestBadge( 109 + text: String, 110 + color: Color, 111 + help: String, 112 + url: URL?, 113 + checkBreakdown: PullRequestCheckBreakdown? 114 + ) -> some View { 96 115 if let url { 97 116 Button { 98 117 openURL(url) 99 118 } label: { 100 - PullRequestBadgeView(text: text, color: color) 119 + pullRequestBadgeContent(text: text, color: color, checkBreakdown: checkBreakdown) 101 120 } 102 121 .buttonStyle(.plain) 103 122 .help(help) 104 123 } else { 105 - PullRequestBadgeView(text: text, color: color) 124 + pullRequestBadgeContent(text: text, color: color, checkBreakdown: checkBreakdown) 106 125 .help(help) 126 + } 127 + } 128 + 129 + @ViewBuilder 130 + private func pullRequestBadgeContent( 131 + text: String, 132 + color: Color, 133 + checkBreakdown: PullRequestCheckBreakdown? 134 + ) -> some View { 135 + HStack(spacing: 6) { 136 + PullRequestBadgeView(text: text, color: color) 137 + if let checkBreakdown { 138 + PullRequestChecksRingView(breakdown: checkBreakdown) 139 + } 107 140 } 108 141 } 109 142 }