11use crate :: components:: SloganButton ;
2+ use leptos:: leptos_dom:: logging;
23use leptos:: { component, prelude:: * , view, IntoView } ;
3- use leptos_router :: hooks :: use_query_map ;
4+ use leptos :: leptos_dom :: helpers :: location ;
45
56#[ component]
67pub fn Hero ( ) -> impl IntoView {
7- let query_params = use_query_map ( ) ;
8-
98 let is_in_debug_mode = cfg ! ( debug_assertions) ;
10- let uwu = Memo :: new ( move |_| query_params. with ( |params| params. get ( "uwu" ) . is_some ( ) ) ) ;
9+
10+ let ( uwu, set_uwu) = signal ( false ) ;
11+
12+ Effect :: new ( move |_| {
13+ let location = location ( ) ;
14+ set_uwu. set ( location. search ( ) . map ( |s| s. contains ( "uwu" ) ) . unwrap_or ( false ) ) ;
15+ } ) ;
1116
1217 let image_src = move || match ( is_in_debug_mode, uwu. get ( ) ) {
1318 ( true , true ) => "./assets/RustLang_uwu.png" ,
@@ -16,16 +21,16 @@ pub fn Hero() -> impl IntoView {
1621 ( false , true ) => "./RustLang_uwu.png" ,
1722 } ;
1823
24+ let class_fn = move || if !uwu. get ( ) {
25+ "grid items-center py-14 lg:py-32 px-4 gap-x-20 gap-y-10 lg:grid-cols-2 w-full"
26+ } else {
27+ "grid items-center justify-center"
28+ } ;
29+
1930 view ! {
20- <section
21- class=(
22- "grid items-center py-14 lg:py-32 px-4 gap-x-20 gap-y-10 lg:grid-cols-2 w-full" ,
23- move || !uwu. get( ) ,
24- )
25- class="grid items-center justify-center"
26- >
31+ <section class=class_fn>
2732 <figure class="w-80 mx-auto lg:w-full" >
28- { move || {
33+ { move ||
2934 if !uwu. get( ) {
3035 view! {
3136 <img
@@ -48,29 +53,23 @@ pub fn Hero() -> impl IntoView {
4853 }
4954 . into_any( )
5055 }
51- } }
56+ }
5257 </figure>
5358 <div>
54- { move || {
55- if !uwu. get( ) {
56- view! {
57- <h1 class="flex flex-col mb-4 gap-y-2" >
58- <span class="font-work-sans text-4xl font-light text-center lg:text-left" >
59- "Bienvenidos a"
60- </span>
61- <span class="font-alfa-slab text-orange-500 dark:text-orange_(pantone)-500 text-6xl sm:text-7xl lg:text-8xl text-center lg:text-left" >
62- "Rust Lang"
63- </span>
64- <span class="font-work-sans text-5xl font-semibold text-center lg:text-left" >
65- "En Español"
66- </span>
67- </h1>
68- }
69- . into_any( )
70- } else {
71- view! { <h1 class="hidden" >"UwU" </h1> } . into_any( )
72- }
73- } } <SloganButton />
59+ <Show when=move || !uwu. get( ) >
60+ <h1 class="flex flex-col mb-4 gap-y-2" >
61+ <span class="font-work-sans text-4xl font-light text-center lg:text-left" >
62+ "Bienvenidos a"
63+ </span>
64+ <span class="font-alfa-slab text-orange-500 dark:text-orange_(pantone)-500 text-6xl sm:text-7xl lg:text-8xl text-center lg:text-left" >
65+ "Rust Lang"
66+ </span>
67+ <span class="font-work-sans text-5xl font-semibold text-center lg:text-left" >
68+ "En Español"
69+ </span>
70+ </h1>
71+ </Show >
72+ <SloganButton uwu=uwu />
7473 </div>
7574 </section>
7675 }
0 commit comments