This makes the issue list behave the same way as patch list. We don't change
the filter, just reload the issue list so that the new issue state is properly
reflected in the list.
We decide during onboarding to display different things based on the
error code received from the backend.
Due to the new `InvokeError` type we lost this `error.code` string.
This patch moves the revision list from the tab bar drop-down to a sidebar
on wide screens and above the current revision on narrow screens. This
way all revisions are visible at all times.
We also move and nest the revision reviews into that list so that one
can see whether there's anything actionable at a glance.
Other tweaks:
- added comment counts to revisions and reviews
- displayed unresolved comment thread counts per review
- swapped icons for accepted/rejected and neutral reviews to avoid clashing
with resolved/unresolved comment icons
- made label and assignee sections more compact with hover-triggered "+" buttons
- added author and status sections to the sidebar
- enabled patch state changes from the title bar
- made "Review revision" the primary action and "Checkout patch" secondary
- added "Draft" label to draft patches
- capitalized all badges for consistent UI text
While a patch review is still in draft mode we should allow it to be
changed to no verdict or an empty summary.
The validation logic being taken care of by the `Publish draft` button.
Reviews are locally persisted but only published to the network by an
explicit user action.
- [ ] Delete line comments on draft reviews
[squash] Sort imports, separate type imports into own section
In case of an outdated cobs cache we display a banner on top of the
patch or issue listing, to allow users to rebuild the cobs cache of a
repo similar to running `rad patch cache`
After rebuilding we fetch the issues or patches from the start.
Small caveat with patches:
The banner can only be shown after a user fetched all patches from the
backend, so we are sure we tried to fetch all of them.