feat: implement most of the university page, waiting for more information

This commit is contained in:
alphafetus committed 2026-02-03 10:05:44 -05:00
1 parent 0ca00664b0
commit 06364236c5
4 files changed
+80 -1

No files matched your search

+4
View File
@@ -136,6 +136,10 @@ fn StudentRoutes() -> impl MatchNestedRoutes + Clone {
path=path!("additional/work-experience")
view=student::StudentWorkExperiencePage
/>
<Route
path=path!("additional/university")
view=student::StudentUniversityPage
/>
</ParentRoute>
}
.into_inner()
+2
View File
@@ -6,6 +6,7 @@ mod athletics_page;
mod academics_page;
mod extracurriculars_page;
mod work_experience_page;
mod university_page;
pub use shell::*;
pub use home_page::*;
@@ -15,3 +16,4 @@ pub use athletics_page::*;
pub use academics_page::*;
pub use extracurriculars_page::*;
pub use work_experience_page::*;
pub use university_page::*;
+1 -1
View File
@@ -28,7 +28,7 @@ pub fn StudentShell() -> impl IntoView {
SubTabInfo::new("Work Experience", "work-experience"),
SubTabInfo::new("Extracurriculars", "extracurriculars"),
SubTabInfo::new("University Info", "university"),
SubTabInfo::new("Parent Info", "parent-info"),
SubTabInfo::new("Family Info", "family-info"),
],
),
),
+73
View File
@@ -0,0 +1,73 @@
use leptos::prelude::*;
use std::collections::HashMap;
use crate::components::{OutlinedTextField, Select, TextFieldType, ValidatedForm};
#[component]
pub fn StudentUniversityPage() -> impl IntoView {
let data_map = RwSignal::new(HashMap::new());
// college name, state, city, zip
// major, study field, intended career, college_acceptance
view! {
<div class="flex flex-1" />
<div class="flex flex-col flex-2 mt-6">
<ValidatedForm title="University Information" on_submit=move || {}>
// Inputs here.
<OutlinedTextField
label="University Name:"
data_map=data_map
data_member="college_name"
placeholder="University of Example"
input_type=TextFieldType::Number
required=true
/>
<OutlinedTextField
label="University Street Address:"
data_map=data_map
data_member="college_city"
placeholder="123 Example Rd"
input_type=TextFieldType::Text
required=true
/>
// TODO Make this a select dropdown.
<OutlinedTextField
label="University State:"
data_map=data_map
data_member="college_state"
placeholder="The State of Panic"
input_type=TextFieldType::Text
required=true
/>
<OutlinedTextField
label="University ZIP:"
data_map=data_map
data_member="college_zip"
placeholder="12345"
input_type=TextFieldType::Number
required=true
/>
<Select
label="Have you been sent an acceptance to the university?"
data_map=data_map
data_member="college_acceptance"
required=true
value_list=vec![
"Yes".to_string(),
"No".to_string()
]
/>
// TODO Make this a select dropdown.
<OutlinedTextField
label="Chosen Major:"
data_map=data_map
data_member="major"
placeholder="Computer Science"
input_type=TextFieldType::Text
required=true
/>
</ValidatedForm>
</div>
<div class="flex flex-1" />
}
}