Implement full-screen monthly calendar UI

Added a comprehensive monthly calendar component with modern styling:
- Full monthly view with proper date calculations
- Current day highlighting and navigation
- Responsive design for all screen sizes
- Event indicator support for future integration
- Takes up most of screen space as requested

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Connor Johnstone
2025-08-28 16:42:19 -04:00
parent b7b351416d
commit f6fa745775
4 changed files with 371 additions and 68 deletions

View File

@@ -1,7 +1,8 @@
use yew::prelude::*;
use yew_router::prelude::*;
use gloo_storage::{LocalStorage, Storage};
use crate::components::{Login, Register};
use crate::components::{Login, Register, Calendar};
use std::collections::HashMap;
#[derive(Clone, Routable, PartialEq)]
enum Route {
@@ -104,37 +105,12 @@ pub fn App() -> Html {
#[function_component]
fn CalendarView() -> Html {
let counter = use_state(|| 0);
let onclick = {
let counter = counter.clone();
move |_| {
let value = *counter + 1;
counter.set(value);
}
};
// Sample events for demonstration
let events = HashMap::new();
html! {
<div class="calendar-view">
<h2>{"Welcome to your Calendar!"}</h2>
<p>{"You are now authenticated and can access your calendar."}</p>
// Temporary counter demo - will be replaced with calendar functionality
<div class="demo-section">
<h3>{"Demo Counter"}</h3>
<button {onclick}>{ "Click me!" }</button>
<p>{ format!("Counter: {}", *counter) }</p>
</div>
<div class="calendar-placeholder">
<p>{"Calendar functionality will be implemented here."}</p>
<p>{"This will include:"}</p>
<ul>
<li>{"Calendar view with events"}</li>
<li>{"Integration with CalDAV server"}</li>
<li>{"Event creation and editing"}</li>
<li>{"Synchronization with Baikal server"}</li>
</ul>
</div>
<Calendar events={events} />
</div>
}
}