Newer
Older
import DropDownFilter from "../components/DropDownFilter";

Karsch Lukas
committed
import {useEffect, useState} from "react";
import useGrowbrosFetcher from "../utils/useGrowbrosFetcher";

Karsch Lukas
committed
import {Plant} from "../utils/schemas";
import {IBackendConnector} from "../utils/IBackendConnector";
import PlantsOverview from "../components/PlantsOverview";
function Garten() {
Blersch Lara
committed
const [plants, setPlantsInGarden] = useState<Plant[]>([]);
const [error, setError] = useState({});
Blersch Lara
committed
const [currentSort, setCurrentSort] = useState<string>("")
Blersch Lara
committed
const bc: IBackendConnector = useGrowbrosFetcher();
Blersch Lara
committed
useEffect(() => {
Blersch Lara
committed
(async () => {
const result = await bc.getGardenEntries();
if (result.err) {
setError(result.err);
} else {
setPlantsInGarden(result.value!);
}
})();
}, [currentSort]);
Blersch Lara
committed
const handleClearGarden = async () => {
if (confirm("Möchtest du wirklich alle Pflanzen aus deinem Garten entfernen?" + "\n" +
"Diese Aktion kann nicht rückgängig gemacht werden.")) {
useEffect(() => {
Blersch Lara
committed
(async () => {
const result = await bc.clearGarden();
if (result.err) {
setError(result.err);
} else {
setPlantsInGarden(result.value!);
}
})();
}, []);
Blersch Lara
committed
}
}
const handleSortOptions = async (selectedOption: string) => {
switch (selectedOption) {
case "neueste zuerst":
setCurrentSort("createdAt");
break;
case "als nächstes anpflanzbar":
setCurrentSort("plantDate");
break;
case "als nächstes erntbar":
setCurrentSort("harvestDate");
break;
default:
setCurrentSort("");
}
}
Blersch Lara
committed
return (
<>
<div style={{padding: "20px"}}>
<h2>Dein Garten</h2>
<DropDownFilter
filterOnChange={handleSortOptions}
topic={"Sortierung der Pflanzen im Garten"}
options={[
"neueste zuerst",
"als nächstes anpflanzbar",
"als nächstes erntbar",
]}
/>
<button onClick={handleClearGarden}>Garten leeren</button>
</div>
<PlantsOverview plants={plants}/>
</>
);
}
Blersch Lara
committed
Blersch Lara
committed
/*return (
Blersch Lara
committed
<>
<div>
<h2>Deine Wunschliste</h2>
<DropDownFilter
topic={"Sortierung der Pflanzen im Garten"}
options={[
"neueste zuerst",
"als nächstes anpflanzbar",
"als nächstes erntbar",
]}
filterOnChange={handleSortOptions}
/>
<button onClick={handleClearGarden}>Garten leeren</button>
</div>
{error ? (
<p>Error fetching data</p>
) : (
<ul style={{display: "flex", gap: "1rem", width: "100%"}}>
{plants?.map((plant) => (
<PlantCard plant={plant} key={plant.id}/>
))}
</ul>
)}
</>
Blersch Lara
committed
);*/
Blersch Lara
committed
export default Garten;