(
values: Memo<Vec<RcPartialEqValue>>,
set_value: Callback<RcPartialEqValue>,
selection_mode: SelectionMode,
disabled: ReadSignal<bool>,
roving_loop: ReadSignal<bool>,
open: Co
| 199 | } |
| 200 | |
| 201 | pub(crate) fn use_selectable_root( |
| 202 | values: Memo<Vec<RcPartialEqValue>>, |
| 203 | set_value: Callback<RcPartialEqValue>, |
| 204 | selection_mode: SelectionMode, |
| 205 | disabled: ReadSignal<bool>, |
| 206 | roving_loop: ReadSignal<bool>, |
| 207 | open: Controlled<bool>, |
| 208 | ) -> SelectableContext { |
| 209 | let (open, set_open) = use_controlled(open.value, open.default.cloned(), open.on_change); |
| 210 | let options: Signal<Vec<OptionState>> = use_signal(Vec::default); |
| 211 | let list_id = use_signal(|| None); |
| 212 | let collection = use_collection_provider(roving_loop); |
| 213 | let initial_focus = use_signal(|| None); |
| 214 | |
| 215 | SelectableContext { |
| 216 | open, |
| 217 | set_open, |
| 218 | values, |
| 219 | set_value, |
| 220 | selection_mode, |
| 221 | options, |
| 222 | list_id, |
| 223 | collection, |
| 224 | initial_focus, |
| 225 | disabled, |
| 226 | } |
| 227 | } |
| 228 | |
| 229 | pub(crate) fn use_selectable_option<T: Clone + PartialEq + 'static>( |
| 230 | selectable: SelectableContext, |
no test coverage detected