hyle_dioxus_native/
list.rs1use dioxus::prelude::*;
2use dioxus_signals::ReadSignal;
3use indexmap::IndexMap;
4
5use hyle::{ModelResult, Row, RowItem, Source};
6use hyle_dioxus::{
7 DioxusMutationOptions, HyleAdapter, HyleSourceState,
8 use_dioxus_mutation,
9};
10
11pub fn items_to_source(model: &str, items: &[RowItem]) -> Source {
12 let rows: Vec<Row> = items.iter().map(|item| item.into_row()).collect();
13 let mut source: Source = IndexMap::new();
14 source.insert(model.to_owned(), ModelResult::many(rows));
15 source
16}
17
18pub fn use_static_adapter(source: Source) -> HyleAdapter {
19 let source_signal: ReadSignal<HyleSourceState> =
20 use_memo(move || HyleSourceState::Ready(source.clone())).into();
21 let noop = || {
22 use_dioxus_mutation(
23 |_| async { Ok::<(), String>(()) },
24 DioxusMutationOptions::default(),
25 )
26 };
27 HyleAdapter {
28 source: source_signal,
29 create: noop(),
30 update: noop(),
31 delete: noop(),
32 }
33}
34
35