status-indicator: Display external service validation and syncing errors
Created by: mrnugget
This extends the global status indicator with a new status message: SYNCERROR
. The message is produced whenever the initial construction of an external service "source" fails (due to invalid tokens, invalid config, etc.) or when syncing the repositories fails.
This is one of the "extension" ideas outlined here: https://github.com/sourcegraph/sourcegraph/issues/4120 And it's also better UX now that we've moved the syncing into the background, where errors could possibly disappear: https://github.com/sourcegraph/sourcegraph/issues/4357#issuecomment-499060771
Screenshot of current state:
It works as intended, but I'd love to get more feedback on the following:
- general code design regarding the problem of how to keep multiple errors around in the syncer and associate them with external services/sources (see the current
MultiSourceError
/SourceError
solution). I feel like this could maybe be cleaner. - UI: the error messages can be become quite unwieldy in the status dropdown items. Suggestions highly welcome.
Test plan: manual testing, go test
, cd web && yarn test --runInBand StatusMessagesNavItem.test.tsx