feat: implement student academic information page

This commit is contained in:
alphafetus committed 2026-02-01 12:45:56 -05:00
1 parent 75f77d5ddf
commit 8df0d10166
3 files changed
+62 -2

No files matched your search

+57
View File
@@ -0,0 +1,57 @@
use std::collections::HashMap;
use leptos::prelude::*;
use crate::components::{OutlinedTextField, TextFieldType, ValidatedForm};
#[component]
pub fn StudentAcademicsPage() -> impl IntoView {
let data_map = RwSignal::new(HashMap::new());
view! {
<div class="flex flex-1" />
<div class="flex flex-col flex-2 mt-6">
<ValidatedForm title="Academic Information" on_submit=move || {}>
<OutlinedTextField
label="Unweighted GPA:"
data_map=data_map
data_member="unweighted_gpa"
placeholder="4.0"
required=true
input_type=TextFieldType::Number
/>
<OutlinedTextField
label="Weighted GPA:"
data_map=data_map
data_member="weighted_gpa"
placeholder="4.5"
required=true
input_type=TextFieldType::Number
/>
<OutlinedTextField
label="Highest SAT Score:"
data_map=data_map
data_member="sat_score"
placeholder="1600"
required=false
input_type=TextFieldType::Number
/>
<OutlinedTextField
label="Highest ACT Score:"
data_map=data_map
data_member="act_score"
placeholder="36"
required=false
input_type=TextFieldType::Number
/>
<OutlinedTextField
label="Academic Honors:"
data_map=data_map
data_member="academic_honors"
placeholder="TBD"
required=false
input_type=TextFieldType::Text
/>
</ValidatedForm>
</div>
<div class="flex flex-1" />
}
}
+3 -1
View File
@@ -3,9 +3,11 @@ mod home_page;
mod demographics_page;
mod additional_page;
mod athletics_page;
mod academics_page;
pub use shell::*;
pub use home_page::*;
pub use demographics_page::*;
pub use additional_page::*;
pub use athletics_page::*;
pub use athletics_page::*;
pub use academics_page::*;