Show more info in repositories list#4770
Conversation
and call it periodically in the background
also run after `getAll` to init repo list with additional repo info
|
🙌:sparkles: Really liking how this came out!
I'm not too concerned about this. For what it's worth, the blue dot is ambiguous enough that it could mean almost anything; and in fact, I'd love to hear your thoughts on having a tooltip for the blue dot that says something along the lines of "There are uncommitted changes in this repository"
🙈Yup, that looks pretty crowded! I wonder we can condense the text down to something like "The currently checked out branch is commits behind [and/or ahead] of its tracked branch" I chatted with @ampinsk and she thought of a couple of ways to improve the notification dot (which I pushed to a branch named Here's what changed:
There's a few styling issues happening (specifically when the background color of the list item is blue), but I can address those myself and wouldn't consider those blockers to this PR |
app/src/ui/app.tsx
Outdated
| }, | ||
| { timeout: ReadyDelay } | ||
| ) | ||
| const interval = 1000 * 60 * 5 |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
app/src/lib/stores/app-store.ts
Outdated
| targetRepo?: Repository | ||
| ): Promise<ReadonlyArray<Repository>> { | ||
| for (const repo of repositories) { | ||
| if (!targetRepo || targetRepo.id === repo.id) { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
app/src/lib/stores/app-store.ts
Outdated
| if (!targetRepo || targetRepo.id === repo.id) { | ||
| await this.withAuthenticatingUser(repo, async (repo, account) => { | ||
| const gitStore = this.getGitStore(repo) | ||
| repo.setAheadBehind(gitStore.aheadBehind) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
app/src/lib/stores/app-store.ts
Outdated
| this.repositories = repositories | ||
| this.repositories = await this.repositoriesStore | ||
| .getAll() | ||
| .then(repos => this.getRefreshedRepositories(repos)) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
app/src/lib/stores/app-store.ts
Outdated
| repo.setAheadBehind(gitStore.aheadBehind) | ||
| await gitStore.fetch(account, true) | ||
| const status = await gitStore.loadStatus() | ||
| if (status) { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
`changedFiles` and `aheadBehind` are public and can be set directly without the need for also having a function defined!
|
@donokuda @ampinsk I love the tweaks you made! Pulled them into this working branch already. :)
Instead of a catch-all tooltip, I experimented with splitting it up into three tooltips: 1 for the blue dot, 1 for repo name (what we currently have), and 1 for the arrows. Hopefully that will be less crowded and will clarify what each indicator means. What do you think? |
Sorry, this comment slipped under my radar 🙈, but I like this approach! 👍 |
|
@vanessayuenn we were chatting about this PR yesterday in Slack but here's the two other things to think about aside from the shape of the app state that we've been wrestling with:
|
iAmWillShepherd
left a comment
There was a problem hiding this comment.
Just one question
| { timeout: ReadyDelay } | ||
| ) | ||
|
|
||
| window.setInterval(() => { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
| })) | ||
| } | ||
|
|
||
| public recordRepoClicked(repoHasIndicator: boolean): Promise<void> { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.




Hi all! This PR adds some indicators on the repositories list view to provide more context & information (whether there are uncommited changes, and/or unsynced upstream/local commits) about the respective repo. This is in response to the issues raised by various users as summarized in the roll-up issue (resolves #2259).
All & any feedback is welcome, but there are a few things I specifically would like to hear your thoughts on: