To meet the requirement of a dynamic UX, each app should only be activated if the required account capabilities are advertised by the JMAP server. For the mail app, the required capability is the mail property in the account model. See the JMAP spec for details. In order to also work with older JMAP server, a fallback to the hasMail property shall be considered.
Only if the required account capability is given, the mail app should register the main navigation item and the routes. This probably requires a pup-sub event notifying subscribers once the account model with the capabilities is available.
It furthermore requires the account capabilities being exposed in the Account model provided by the jmap-client. This was requested in issue #13.
- Anna opens the webmail client
- She types her username and password at the login screen
- After successful authentication, the main navigation shows an item "Mail"
- Mike opens the webmail client
- He types his username and password at the login screen
- His account does not allow access to email (*)
- The main navigation does not contain an item "Mail"