Skip to content

Add ultra basic support for the SubMessage-based polls feature  #3205

@timabbott

Description

@timabbott

Zulip has an experimental "polls" feature, which uses the special SubMessage table in the database for its storage (https://zulip.readthedocs.io/en/latest/subsystems/widgets.html#poll-todo-lists-and-games). You can create one on web by sending a message with /poll as the content. The UI is currently pretty janky; we have a separate issue on web (zulip/zulip#11010) for improving that.

The polls feature has been getting a decent amount of interest from folks who want it in Zulip Cloud, so we need to take steps to make them display in a not-totally broken fashion on mobile.

Structurally, the widgets / submessage feature has some important properties for mobile: The API only sends and receives JSON, via submessage events (or the .submessage field on a message object fetched from the server). The client is completely responsible (and empowered) to render the data as it pleases, as well as enabling UI.

In terms of staging, I think there's a few levels of mobile-side support for this widget (or any other widget for that matter, though the others are more prototypes and don't have a lot of demand so we shouldn't worry about them).

  • First, mobile can literally look for messages with a poll submessage/widget entry as the most immediate hack to detect and say "This message is a poll, which is not supported on mobile yet.".
  • From there, it can process the data from those events properly, and do a basically textual rendering of the poll results, so you can at least understand the message.
  • And then from there we could work on rendering the results and turning on UI to actually participate in the poll from your device.

Metadata

Metadata

Assignees

Labels

@zulip/sharedGood spots to share code with the webappP1 high-prioritywebapp parityFeatures that exist in the webapp that we need to port to mobile. We aren't aiming for full parity.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions