Skip to content

feat: add progress bar detail updates#890

Open
zamderax wants to merge 1 commit intotuist:mainfrom
zamderax:feat/progress-bar-details
Open

feat: add progress bar detail updates#890
zamderax wants to merge 1 commit intotuist:mainfrom
zamderax:feat/progress-bar-details

Conversation

@zamderax
Copy link
Copy Markdown
Contributor

@zamderax zamderax commented Feb 1, 2026

Summary

  • add ProgressBarUpdate to attach optional detail text to progress updates
  • keep the Double-based progress bar API by mapping to ProgressBarUpdate
  • update example/docs and add coverage for detail rendering

Testing

  • mise run cli:test
  • mise run build

@zamderax zamderax requested a review from a team as a code owner February 1, 2026 05:43
@zamderax zamderax requested review from cschmatzler and fortmarek and removed request for a team February 1, 2026 05:43
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 1, 2026
@zamderax zamderax changed the title Add progress bar detail updates feat: add progress bar detail updates Feb 1, 2026
@dosubot dosubot Bot added the enhancement New feature or request label Feb 1, 2026
zamderax added a commit to wendylabsinc/Noora that referenced this pull request Feb 2, 2026
successMessage: String?,
errorMessage: String?,
renderer: Rendering,
task: @escaping (@escaping (ProgressBarUpdate) -> Void) async throws -> V
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this conflict with the other overloads in practical use?

Comment on lines +314 to +316
successMessage: String?,
errorMessage: String?,
renderer: Rendering,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These three can have default arguments. Which would remove the need for two overloads

Comment on lines +1361 to +1388
public func progressBarStep<V>(
message: String,
task: @escaping (@escaping (ProgressBarUpdate) -> Void) async throws -> V
) async throws -> V {
try await progressBarStep(
message: message,
successMessage: nil,
errorMessage: nil,
renderer: Renderer(),
task: task
)
}

public func progressBarStep<V>(
message: String,
successMessage: String?,
errorMessage: String?,
task: @escaping (@escaping (ProgressBarUpdate) -> Void) async throws -> V
) async throws -> V {
try await progressBarStep(
message: message,
successMessage: successMessage,
errorMessage: errorMessage,
renderer: Renderer(),
task: task
)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 2 can be removed if you use default arguments

@pepicrft
Copy link
Copy Markdown
Contributor

@zamderax could you include a gif/video showing the UI of the work?


```swift
try await Noora().progressStep(
try await Noora().progressBarStep(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean progressStep is a deprecated API? Are we going to maintain both? If so, I find it a bit confusing as a consumer of the API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants