Widget item status indicator
The status indicator shows read, unread, or live state on a widget item. Use it with Chips and badges when you need live or context labels beyond the default indicator.
API reference: iOS | Android | React Native. For the widget appearance set, see Widget appearance.
When an item counts as read
Each indicator state renders text from its own text property. The default text is NEW for unread and READ for read, and you can set any string per state. The rules below determine which state an item is in, and therefore which text a viewer sees.
The SDK tracks read state per viewer in its local database. Read state does not expire: an item stays read once the viewer meets the condition for its content type, and no elapsed-time rule returns it to unread.
| Content type | Becomes read when |
|---|---|
| Stories | The viewer views the last page that doesn't set ignoreReadStatusForStory. See the story note below. |
| Moments | The viewer opens the Moment. |
| Videos | Depends on the platform. See the video note below. |
Stories
A story is read when its last page that doesn't set ignoreReadStatusForStory is read. Pages that set the flag, such as outro pages, don't gate the story's read state on their own, with these exceptions:
- When every page in the story sets
ignoreReadStatusForStory, the story is read only after all of those pages are read. - When a story has no pages, the story is unread.
Videos
Video read state differs by platform:
- iOS and Android: the video is read after playback reaches the end of the video. Partial playback stores a resume position, which doesn't mark the video read.
- Web: the video is read when playback starts.
A viewer who abandons a video partway through leaves it unread on iOS and Android, and read on Web.
Read state is one-way
Read state never reverts to unread on its own. Once an item is read for a viewer, later syncs preserve that state.
To order items by read state in a widget, see Ordering and item limits. To hide read content, see Experiences FAQ.
WidgetItemStatusIndicator
The WidgetItemStatusIndicator class allows you to customize the following properties:
| Name | Description | Type | Default value |
|---|---|---|---|
| position | Status indicator position | BlazeObjectPositioning | Bottom trailing |
| insets | Insets | Insets | Zero |
| statusTitlePadding | Status title padding | Insets | top: 4, leading: 4, bottom: 4, trailing: 4 |
| isVisible | Visibility of status indicator | Bool | true |
| liveUnreadIndicator | Live unread indicator style | WidgetItemIndicatorStyle | Default settings |
| liveReadIndicator | Live read indicator style | WidgetItemIndicatorStyle | Default settings |
| unreadIndicator | Unread indicator style | WidgetItemIndicatorStyle | Default settings |
| readIndicator | Read indicator style | WidgetItemIndicatorStyle | Default setting |
WidgetItemIndicatorStyle
The WidgetItemIndicatorStyle class allows you to customize the following properties:
| Name | Description | Type | Default value |
|---|---|---|---|
| isVisible | Indicator visibility | Bool | Varies |
| backgroundColor | Background color | UIColor | Varies |
| backgroundImage | Background image | UIImage (optional) | null |
| textStyle | Text style | BlazeWidgetItemTitleStyle | Varies |
| text | Text to display in indicator | String | Varies |
| cornerRadius | Corner radius | CGFloat | 0 |
| cornerRadiusRatio | Corner radius ratio | CGFloat | 0.5 |
WidgetItemStatusIndicator default styles
| Style | isVisible | backgroundColor | text | textStyle.font | textStyle.textColor | textStyle.numberOfLines | textStyle.alignment |
|---|---|---|---|---|---|---|---|
| liveUnread | true | red | LIVE | System, 12 | white | 1 | center |
| liveRead | true | gray | LIVE | System, 12 | white | 1 | center |
| unread | true | blue | NEW | System, 12 | white | 1 | center |
| read | false | blue | READ | System, 12 | white | 1 | center |
Updated 16 days ago
