This commit is contained in:
Bianca Fürstenau 2025-02-09 09:01:59 +01:00
parent 96033b4b9f
commit 9609a80f7f
4 changed files with 120 additions and 93 deletions

View file

@ -12,7 +12,11 @@ struct AppState {
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
enum Store { enum Store {
Aldi, Aldi,
Edeka,
Dm,
Lidl,
Rewe, Rewe,
Tegut,
} }
impl TryFrom<&str> for Store { impl TryFrom<&str> for Store {
@ -21,7 +25,11 @@ impl TryFrom<&str> for Store {
fn try_from(s: &str) -> Result<Self, Self::Error> { fn try_from(s: &str) -> Result<Self, Self::Error> {
match s { match s {
"aldi" => Ok(Store::Aldi), "aldi" => Ok(Store::Aldi),
"edeka" => Ok(Store::Edeka),
"dm" => Ok(Store::Dm),
"lidl" => Ok(Store::Lidl),
"rewe" => Ok(Store::Rewe), "rewe" => Ok(Store::Rewe),
"tegut" => Ok(Store::Tegut),
_ => Err(()), _ => Err(()),
} }
} }
@ -31,7 +39,11 @@ impl ToSql for Store {
fn to_sql(&self) -> rusqlite::Result<ToSqlOutput<'_>> { fn to_sql(&self) -> rusqlite::Result<ToSqlOutput<'_>> {
match self { match self {
Store::Aldi => 0.to_sql(), Store::Aldi => 0.to_sql(),
Store::Rewe => 1.to_sql(), Store::Edeka => 1.to_sql(),
Store::Dm => 2.to_sql(),
Store::Lidl => 3.to_sql(),
Store::Rewe => 4.to_sql(),
Store::Tegut => 5.to_sql(),
} }
} }
} }

View file

@ -64,7 +64,7 @@
/> />
</button> </button>
</form> </form>
<p id="cnt-msg"></p>
</main> </main>
<p id="cnt-msg"></p>
</body> </body>
</html> </html>

View file

@ -7,13 +7,8 @@ let cntMsgEl;
// greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value }); // greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value });
//} //}
async function aldi() { async function swap(s) {
await invoke("swap", { store: "aldi" }); invoke("swap", { store: s });
cntMsgEl.textContent = await invoke("count", {});
}
async function rewe() {
invoke("swap", { store: "rewe" });
cntMsgEl.textContent = await invoke("count", {}); cntMsgEl.textContent = await invoke("count", {});
} }
@ -21,10 +16,26 @@ window.addEventListener("DOMContentLoaded", () => {
cntMsgEl = document.querySelector("#cnt-msg"); cntMsgEl = document.querySelector("#cnt-msg");
document.querySelector("#aldi-form").addEventListener("submit", (e) => { document.querySelector("#aldi-form").addEventListener("submit", (e) => {
e.preventDefault(); e.preventDefault();
aldi(); swap("aldi");
});
document.querySelector("#edeka-form").addEventListener("submit", (e) => {
e.preventDefault();
swap("edeka");
});
document.querySelector("#dm-form").addEventListener("submit", (e) => {
e.preventDefault();
swap("dm");
});
document.querySelector("#lidl-form").addEventListener("submit", (e) => {
e.preventDefault();
swap("lidl");
}); });
document.querySelector("#rewe-form").addEventListener("submit", (e) => { document.querySelector("#rewe-form").addEventListener("submit", (e) => {
e.preventDefault(); e.preventDefault();
rewe(); swap("rewe");
});
document.querySelector("#tegut-form").addEventListener("submit", (e) => {
e.preventDefault();
swap("tegut");
}); });
}); });

View file

@ -15,24 +15,30 @@
} }
.container { .container {
margin: 0; margin: auto;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: center; flex-wrap: wrap;
justify-content: space-around;
text-align: center; text-align: center;
gap: 3mm;
} }
.logo { .logo {
margin: auto;
padding: 0em 0em; padding: 0em 0em;
will-change: filter; will-change: filter;
transition: 0.75s; transition: 0.75s;
max-height: 2cm; max-height: 100%;
width: 3cm; max-width: 100%;
width: 100%;
} }
.row { .column {
display: flex; display: flex;
justify-content: center; justify-content: center;
flex: 1;
margin: auto;
} }
a { a {
@ -50,7 +56,9 @@ h1 {
} }
button { button {
width: 3.5cm; margin: auto;
flex: 1;
min-width: 3.5cm;
height: 2.5cm; height: 2.5cm;
border-radius: 8px; border-radius: 8px;
border: 1px solid transparent; border: 1px solid transparent;
@ -81,10 +89,6 @@ button {
outline: none; outline: none;
} }
#greet-input {
margin-right: 5px;
}
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
:root { :root {
color: #f6f6f6; color: #f6f6f6;