Skip to content

Handle avatar-URL optimization user_avatar_url_field_optional #254

@gnprice

Description

@gnprice

That is, the user_avatar_url_field_optional client capability in the Zulip API:
https://zulip.com/api/register-queue#parameter-client_capabilities

At the moment, we claim that capability in our registerQueue requests; but we don't actually implement what we need on our side in order to handle it, so we end up with missing avatars. We'll shortly flip that so that we no longer claim the capability, getting correct behavior. But then we should actually implement the logic (there's not much to it), and re-enable the optimization.

For how the implementation can work, see FallbackAvatarURL in zulip-mobile's src/utils/avatar.js. In particular see validateAndConstructInstance and get. I think we can probably do the implementation with less code than is in zulip-mobile, though.

At the moment our User.avatarUrl field gets deserialized in a way that doesn't distinguish whether the server left avatar_url out or set it to null. We'll need to distinguish those in order to handle client_gravatar (a separate issue)… but the fallback avatar URLs should work for all users. So for this issue we should be fine without that distinction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a-apiImplementing specific parts of the Zulip server APIhelp wantedperformanceSmooth and responsive UI; fixing jank, stutters, and lag

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions