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)]
enum Store {
Aldi,
Edeka,
Dm,
Lidl,
Rewe,
Tegut,
}
impl TryFrom<&str> for Store {
@ -21,7 +25,11 @@ impl TryFrom<&str> for Store {
fn try_from(s: &str) -> Result<Self, Self::Error> {
match s {
"aldi" => Ok(Store::Aldi),
"edeka" => Ok(Store::Edeka),
"dm" => Ok(Store::Dm),
"lidl" => Ok(Store::Lidl),
"rewe" => Ok(Store::Rewe),
"tegut" => Ok(Store::Tegut),
_ => Err(()),
}
}
@ -31,7 +39,11 @@ impl ToSql for Store {
fn to_sql(&self) -> rusqlite::Result<ToSqlOutput<'_>> {
match self {
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

@ -1,70 +1,70 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="styles.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tauri App</title>
<script type="module" src="/main.js" defer></script>
</head>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="styles.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tauri App</title>
<script type="module" src="/main.js" defer></script>
</head>
<body>
<main class="container">
<form class="column" id="aldi-form">
<button type="submit">
<img
src="/assets/aldi.svg"
class="logo"
alt="ALDI-Süd-Logo"
/>
</button>
</form>
<form class="column" id="edeka-form">
<button type="submit">
<img
src="/assets/edeka.svg"
class="logo"
alt="Edeka-Logo"
/>
</button>
</form>
<form class="column" id="dm-form">
<button type="submit">
<img
src="/assets/dm.svg"
class="logo"
alt="dm-Logo"
/>
</button>
</form>
<form class="column" id="lidl-form">
<button type="submit">
<img
src="/assets/lidl.svg"
class="logo"
alt="Lidl-Logo"
/>
</button>
</form>
<form class="column" id="rewe-form">
<button type="submit">
<img
src="/assets/rewe.svg"
class="logo"
alt="Rewe-Logo"
/>
</button>
</form>
<form class="column" id="tegut-form">
<button type="submit">
<img
src="/assets/tegut.svg"
class="logo"
alt="Tegut-Logo"
/>
</button>
</form>
<p id="cnt-msg"></p>
</main>
</body>
<body>
<main class="container">
<form class="column" id="aldi-form">
<button type="submit">
<img
src="/assets/aldi.svg"
class="logo"
alt="ALDI-Süd-Logo"
/>
</button>
</form>
<form class="column" id="edeka-form">
<button type="submit">
<img
src="/assets/edeka.svg"
class="logo"
alt="Edeka-Logo"
/>
</button>
</form>
<form class="column" id="dm-form">
<button type="submit">
<img
src="/assets/dm.svg"
class="logo"
alt="dm-Logo"
/>
</button>
</form>
<form class="column" id="lidl-form">
<button type="submit">
<img
src="/assets/lidl.svg"
class="logo"
alt="Lidl-Logo"
/>
</button>
</form>
<form class="column" id="rewe-form">
<button type="submit">
<img
src="/assets/rewe.svg"
class="logo"
alt="Rewe-Logo"
/>
</button>
</form>
<form class="column" id="tegut-form">
<button type="submit">
<img
src="/assets/tegut.svg"
class="logo"
alt="Tegut-Logo"
/>
</button>
</form>
</main>
<p id="cnt-msg"></p>
</body>
</html>

View file

@ -7,24 +7,35 @@ let cntMsgEl;
// greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value });
//}
async function aldi() {
await invoke("swap", { store: "aldi" });
cntMsgEl.textContent = await invoke("count", {});
}
async function rewe() {
invoke("swap", { store: "rewe" });
async function swap(s) {
invoke("swap", { store: s });
cntMsgEl.textContent = await invoke("count", {});
}
window.addEventListener("DOMContentLoaded", () => {
cntMsgEl = document.querySelector("#cnt-msg");
document.querySelector("#aldi-form").addEventListener("submit", (e) => {
e.preventDefault();
aldi();
});
document.querySelector("#rewe-form").addEventListener("submit", (e) => {
e.preventDefault();
rewe();
});
cntMsgEl = document.querySelector("#cnt-msg");
document.querySelector("#aldi-form").addEventListener("submit", (e) => {
e.preventDefault();
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) => {
e.preventDefault();
swap("rewe");
});
document.querySelector("#tegut-form").addEventListener("submit", (e) => {
e.preventDefault();
swap("tegut");
});
});

View file

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