fix: type erase some components for reduced compile-time recursion

This commit is contained in:
alphafetus committed 2026-01-05 18:10:31 -05:00
1 parent a2f69a83c2
commit 6891a192c1
3 files changed
+13 -15

No files matched your search

+11 -13
View File
@@ -1,8 +1,6 @@
use crate::common::ValueType; use crate::common::ValueType;
use crate::components::{CheckboxList, OutlinedTextField, RadioList, Row, Select, TextFieldType}; use crate::components::{CheckboxList, OutlinedTextField, RadioList, Row, Select, TextFieldType};
use leptos::either::EitherOf5; use leptos::prelude::*;
use leptos::prelude::RwSignal;
use leptos::{IntoView, view};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::HashMap; use std::collections::HashMap;
@@ -32,7 +30,7 @@ impl InputType {
view! { view! {
{match self { {match self {
InputType::Text(member, label, placeholder, required) => InputType::Text(member, label, placeholder, required) =>
EitherOf5::A(view! { view! {
<Row> <Row>
<OutlinedTextField <OutlinedTextField
label = label.clone() label = label.clone()
@@ -42,9 +40,9 @@ impl InputType {
required = required required = required
/> />
</Row> </Row>
}), }.into_any(),
InputType::Number(member, label, placeholder, required) => InputType::Number(member, label, placeholder, required) =>
EitherOf5::B(view! { view! {
<OutlinedTextField <OutlinedTextField
label = label.clone() label = label.clone()
placeholder = placeholder.clone() placeholder = placeholder.clone()
@@ -53,9 +51,9 @@ impl InputType {
input_type = TextFieldType::Number input_type = TextFieldType::Number
required = required required = required
/> />
}), }.into_any(),
InputType::Checkbox(member, label, options, required) => InputType::Checkbox(member, label, options, required) =>
EitherOf5::C(view! { view! {
<CheckboxList <CheckboxList
label = label.clone() label = label.clone()
items = options.clone() items = options.clone()
@@ -63,9 +61,9 @@ impl InputType {
data_map = data_map data_map = data_map
required = required required = required
/> />
}), }.into_any(),
InputType::Radio(member, label, options, required) => InputType::Radio(member, label, options, required) =>
EitherOf5::D(view! { view! {
<RadioList <RadioList
label = label.clone() label = label.clone()
data_member = member.clone() data_member = member.clone()
@@ -73,9 +71,9 @@ impl InputType {
items = options.clone() items = options.clone()
required = required required = required
/> />
}), }.into_any(),
InputType::Select(member, label, options, required) => InputType::Select(member, label, options, required) =>
EitherOf5::E(view! { view! {
<Select <Select
label = label.clone() label = label.clone()
value_list = options.clone() value_list = options.clone()
@@ -83,7 +81,7 @@ impl InputType {
data_map = data_map data_map = data_map
required = required required = required
/> />
}) }.into_any()
}} }}
} }
} }
+1 -1
View File
@@ -355,5 +355,5 @@ pub fn HomePage() -> impl IntoView {
</Suspense> </Suspense>
</Authenticated> </Authenticated>
</AuthLoaded> </AuthLoaded>
} }.into_any()
} }
+1 -1
View File
@@ -567,5 +567,5 @@ fn ScholarshipForm(
</Suspense> </Suspense>
</Show> </Show>
</Panel> </Panel>
} }.into_any()
} }