feat: add feature slicing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2023-06-05 12:54:07 +02:00
parent 74a16b4d7c
commit 36e2766bb9
24 changed files with 526 additions and 41 deletions

1
src/routes/dash.rs Normal file
View File

@@ -0,0 +1 @@
pub mod home;

12
src/routes/dash/home.rs Normal file
View File

@@ -0,0 +1,12 @@
use leptos::*;
use crate::features::navbar_projects::NavbarProjects;
#[component]
pub fn DashHomePage(cx: Scope) -> impl IntoView {
view! { cx,
<div class="home-dash">
<NavbarProjects/>
</div>
}
}

View File

@@ -0,0 +1,44 @@
use leptos::*;
use uuid::Uuid;
use crate::features::navbar_projects::gen::queries::get_projects_list_view::GetProjectsListViewGetProjects;
use crate::features::navbar_projects::NavbarProjectsView;
#[component]
pub fn FeaturesView(cx: Scope) -> impl IntoView {
let projects = create_local_resource(
cx,
|| (),
|_| async {
vec![
GetProjectsListViewGetProjects {
id: Uuid::new_v4(),
name: "some-name".to_string(),
},
GetProjectsListViewGetProjects {
id: Uuid::new_v4(),
name: "some-other-name".to_string(),
},
]
},
);
let emptyProjects: Resource<(), Vec<GetProjectsListViewGetProjects>> =
create_local_resource(cx, || (), |_| async { Vec::new() });
view! { cx,
<div>
<div class="space-y-5">
<h1>"NavbarProjects"</h1>
<h2>"Projects"</h2>
<div class="feature-case">
<NavbarProjectsView projects=projects/>
</div>
<h2>"no projects"</h2>
<div class="feature-case">
<NavbarProjectsView projects=emptyProjects/>
</div>
</div>
</div>
}
}

27
src/routes/home.rs Normal file
View File

@@ -0,0 +1,27 @@
use leptos::*;
#[component]
pub fn Navbar(cx: Scope) -> impl IntoView {
view! { cx,
<div class="flex flex-row justify-between items-center bg-gray-800 p-4">
<div class="flex flex-row items-center">
<div class="text-2xl text-white font-bold">"Como - Todo"</div>
</div>
<div class="flex flex-row items-center space-x-4">
<div class="text-xl text-white font-bold cursor-pointer">
<a href="http://localhost:3001/auth/zitadel?return_url=http://localhost:3000/dash/home">
"Enter"
</a>
</div>
</div>
</div>
}
}
#[component]
pub fn HomePage(cx: Scope) -> impl IntoView {
view! { cx,
<Navbar/>
<h1 class="text-xl text-red-50">"Welcome to Leptos!"</h1>
}
}