Skip to content

Commit

Permalink
Merge pull request #18 from dgarciah98/dev
Browse files Browse the repository at this point in the history
Add some frontend features
  • Loading branch information
dgarciah98 authored Oct 25, 2023
2 parents b1b3bea + 02695ed commit 17a8391
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 24 deletions.
2 changes: 2 additions & 0 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link data-trunk rel="copy-file" href="../common/assets/Montserrat-Bold.ttf">

</head>
<body>
Expand Down
11 changes: 7 additions & 4 deletions frontend/src/component/card_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use common::{
use wasm_bindgen_futures::spawn_local;
use yew::prelude::*;

use crate::component::{bg_buttons::BackgroundButtons, color_buttons::ColorButtons};
use crate::component::{bg_buttons::BackgroundButtons, color_buttons::ColorButtons, dl_button::DownloadButton};

#[derive(Properties, PartialEq, Debug, Clone)]
pub struct CardViewProps {
Expand All @@ -17,8 +17,8 @@ pub struct CardViewProps {
pub(crate) fn CardView(props: &CardViewProps) -> Html {
let style =
"margin-left: auto;margin-right: auto;margin-top: 2%;margin-bottom: 2%;width: 70vw;";
let bg_btn_style = "justify-content: center; align-items: center; margin-top: 2%; margin-bottom: 2%; margin-left: auto; margin-right: auto";
let color_btn_style = "justify-content: center; align-items: center; margin-bottom: 1%; margin-left: auto; margin-right: auto";
let bg_btn_style = "justify-content: center; align-items: center; margin-top: 1.3vw; margin-bottom: 2vw; margin-left: auto; margin-right: auto";
let color_btn_style = "justify-content: center; align-items: center; margin-bottom: 1vw; margin-left: auto; margin-right: auto";
let btn_class = "btn-toolbar mr-1";
let image = use_state_eq(|| "".to_owned());
let prev_bg_type = use_state_eq(|| "".to_owned());
Expand Down Expand Up @@ -142,7 +142,10 @@ pub(crate) fn CardView(props: &CardViewProps) -> Html {
}
<div class="row">
<img src={(*image).clone()} style={style} />
</div>
if !(*image).clone().is_empty() {
<DownloadButton image={(*image).clone()} />
}
</div>
</div>
}
}
17 changes: 17 additions & 0 deletions frontend/src/component/dl_button.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
use yew::{function_component, html, Html, Properties};

#[derive(Properties, PartialEq)]
pub(crate) struct DownloadButtonProps {
pub(crate) image: String
}

#[function_component]
pub(crate) fn DownloadButton(DownloadButtonProps { image }: &DownloadButtonProps) -> Html {
html! {
<div class="text-center" style="margin-top: 0.5vw; margin-bottom:4%;">
<a href={image.to_string()} download="spotify-custom-card.png">
<button style="min-width:50vw; font-size:1.8vw" class="btn btn-secondary"><i class="fa fa-download" />{" Download"}</button>
</a>
</div>
}
}
28 changes: 28 additions & 0 deletions frontend/src/component/github.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
use yew::prelude::*;

#[function_component]
pub(crate) fn Github() -> Html {
let style = "padding: 0; height: 100%; position: absolute; right: 0; margin-right: 0;";
html! {
<a class="navbar-brand navbar-right" {style} href="https://github.com/dgarciah98/custom-spotify-cards" aria-label="View source on GitHub">
<svg
width="100%"
height="100%"
viewBox="0 0 250 250"
style="fill:#151513; color:#fff;"
aria-hidden="true"
>
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
<path
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor"
style="transform-origin: 130px 106px;"
/>
<path
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor"
/>
</svg>
</a>
}
}
18 changes: 18 additions & 0 deletions frontend/src/component/home_bar.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
use yew::prelude::*;
use yew_router::prelude::Link;

use crate::{Route, component::github::Github};

#[function_component]
pub(crate) fn HomeBar() -> Html {
html! {
<nav class="navbar navbar-expand-lg sticky-top" style="background-color: #1ed760">
<div class="container-fluid">
<Github />
<Link<Route> classes={classes!("navbar-brand", "col", "text-center")} to={Route::Home}>
<h1 style="font-size: 8vmin; font-family: Montserrat">{"Custom Spotify Cards"}</h1>
</Link<Route>>
</div>
</nav>
}
}
3 changes: 3 additions & 0 deletions frontend/src/component/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ pub(crate) mod card_view;
pub(crate) mod color_buttons;
pub(crate) mod home;
pub(crate) mod text_input;
pub(crate) mod dl_button;
pub(crate) mod home_bar;
pub(crate) mod github;
2 changes: 1 addition & 1 deletion frontend/src/component/text_input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::Route;
#[function_component]
pub(crate) fn TextInput() -> Html {
let navigator = use_navigator().unwrap();
let style = "display: flex; justify-content: center; align-items: center; font-size: 3.2vmin;";
let style = "display: flex; justify-content: center; align-items: center; font-size: 3.2vmin; margin-top: 1vw;";
let class = use_state(|| "form-control".to_owned());

let onkeypress = {
Expand Down
38 changes: 19 additions & 19 deletions frontend/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ use component::text_input::TextInput;
use yew::prelude::*;
use yew_router::prelude::*;

use crate::component::home_bar::HomeBar;

#[derive(Clone, Routable, PartialEq)]
enum Route {
#[at("/:id")]
Expand All @@ -25,26 +27,24 @@ fn switch(routes: Route) -> Html {

#[function_component]
fn App() -> Html {
let font_size = "font-size: 8vmin;";
let style = "display: flex; justify-content: center; align-items: center;";
html! {
<main class="container">
<HashRouter>
<div class="row">
<div class="col text-center">
<h1 style={format!("{} {}", style, font_size)}>{ "Custom Spotify Cards" }</h1>
</div>
</div>
<section class="row">
<div class="col">
<TextInput />
</div>
</section>
<div style={style}>
<Switch<Route> render={switch} />
</div>
</HashRouter>
</main>
<main>
<HashRouter>
<div>
<HomeBar />
</div>
<div class="container">
<section class="row">
<div class="col">
<TextInput />
</div>
</section>
<div style="display: flex; justify-content: center; align-items: center;">
<Switch<Route> render={switch} />
</div>
</div>
</HashRouter>
</main>
}
}

Expand Down

0 comments on commit 17a8391

Please sign in to comment.