Skip to main content

euv_ui/component/virtual_list/view/
impl.rs

1use crate::*;
2
3use std::rc::Rc;
4
5/// Implementation of default configuration for virtual list.
6impl Default for EuvVirtualListConfig {
7    /// Returns a default configuration with sensible defaults.
8    ///
9    /// The default id is "virtual-list-default". For multiple instances,
10    /// always provide unique ids.
11    ///
12    /// # Returns
13    ///
14    /// - `EuvVirtualListConfig` - Default configuration with 1000 items, 44px height, and 5 overscan items.
15    fn default() -> Self {
16        Self {
17            id: String::from("virtual-list-default"),
18            total_count: 1000,
19            item_height: 44,
20            overscan_count: 5,
21        }
22    }
23}
24
25/// Implementation of default props for virtual list.
26impl Default for EuvVirtualListProps {
27    /// Returns default props with empty callbacks.
28    ///
29    /// # Returns
30    ///
31    /// - `EuvVirtualListProps` - Default props with default config and empty item renderer.
32    fn default() -> Self {
33        Self {
34            config: EuvVirtualListConfig::default(),
35            item_renderer: Rc::new(|_: usize| VirtualNode::Empty),
36            on_scroll: None,
37            on_visible_range_change: None,
38        }
39    }
40}