pib-components-dx-base 0.0.0-upstream-snapshot.2026-09-19.1

temporary fork for Politik im Blick - Dioxus components
Documentation
use dioxus::prelude::*;

use super::{
    folder_override, FolderId, MessageTag, DEFAULT_MESSAGE_FOLDER_ID, EMAIL_REPEAT_COUNT, MESSAGES,
};

#[derive(Clone, PartialEq, Store)]
pub struct MessageState {
    pub uid: String,
    pub source_index: usize,
    pub folder_id: FolderId,
    pub tags: Vec<MessageTag>,
    pub unread: bool,
    pub starred: bool,
    pub flagged: bool,
    pub snoozed: bool,
}

pub fn seed_message_states() -> Vec<MessageState> {
    (0..EMAIL_REPEAT_COUNT)
        .flat_map(|rep| {
            MESSAGES
                .iter()
                .enumerate()
                .map(move |(idx, msg)| MessageState {
                    uid: format!("{idx}#{rep}"),
                    source_index: idx,
                    folder_id: folder_override(idx).unwrap_or(DEFAULT_MESSAGE_FOLDER_ID),
                    tags: msg.tags.to_vec(),
                    unread: msg.unread,
                    starred: msg.starred,
                    flagged: msg.starred,
                    snoozed: false,
                })
        })
        .collect()
}