import { A, useLocation, useNavigate } from "@solidjs/router"; import { createSignal, For, JSX, Match, onMount, Switch } from "solid-js"; import SettingIcon from "./icons/SettingIcon"; import HomeIcon from "./icons/HomeIcon"; import ArchiveIcon from "./icons/ArchiveIcon"; import ClockIcon from "./icons/ClockIcon"; import supabase from "./utils/supabase"; import { Histori } from "./types/Histori"; import { Pengaturan } from "./types/Pengaturan"; import BarsIcon from "./icons/BarsIcon"; import AdjusmentIcon from "./icons/AdjusmentIcon"; export default function (props: JSX.HTMLAttributes) { const menus = [ { path: "/", title: "Dashboard", icon: HomeIcon, }, { path: "/pengujian", title: "Pengujian", icon: ArchiveIcon, }, { path: "/histori", title: "Histori", icon: ClockIcon, }, { path: "/kontrol", title: "Kontrol", icon: AdjusmentIcon, }, { path: "/pengaturan", title: "Pengaturan", icon: SettingIcon, }, ]; const [lastHistori, setLastHistori] = createSignal(null); const [canNavigate, setCanNavigate] = createSignal(false); const [showSidebar, setShowSidebar] = createSignal(false); const [pengaturan, setPengaturan] = createSignal(); const location = useLocation(); const navigate = useNavigate(); const getLastHistori = async () => { const { data } = await supabase .from("histori_fermentasi") .select("*") .limit(1) .eq("selesai", false) .order("created_at", { ascending: false }); if (!!data) { setLastHistori(data[0]); } }; const deleteAllData = async () => { await supabase.from("pengaturan").update({ running: false }).eq("id", 1); await supabase.from("kondisi_tapai").delete().neq("id", "0"); await supabase .from("realtime_data") .update({ kadar_gas: 0, kelembaban: 0, suhu: 0, created_time: 0, }) .eq("id", 1); setLastHistori(null); window.alert("Aksi berhasil dilakukan"); window.location.reload(); }; const saveHistori = async () => { const auto = pengaturan()?.auto; const suhu_min = pengaturan()?.suhu_min; const suhu_max = pengaturan()?.suhu_max; const rentang_suhu = auto ? suhu_min + " - " + suhu_max : "-"; await supabase .from("histori_fermentasi") .update({ selesai: true, rentang_suhu, }) .eq("id", lastHistori()?.id); await deleteAllData(); }; const noSaveHistori = async () => { await supabase .from("histori_fermentasi") .delete() .eq("id", lastHistori()?.id); await deleteAllData(); }; const checkStatusDevice = async () => { await getLastHistori(); if (!lastHistori()) { const lastData1: any = await new Promise(async (res) => { const { data } = await supabase .from("realtime_data") .select("created_time") .eq("id", 1); setTimeout(() => { res(data); }, 10000); }); const { data: lastData2 } = await supabase .from("realtime_data") .select("created_time") .eq("id", 1); // const lastData1: any = await new Promise(async (res) => { // const { data } = await supabase // .from("kondisi_tapai") // .select("created_time") // .order("created_time", { ascending: false }) // .limit(1); // setTimeout(() => { // res(data); // }, 10000); // }); // const { data: lastData2 } = await supabase // .from("kondisi_tapai") // .select("created_time") // .order("created_time", { ascending: false }) // .limit(1); if (lastData1![0] == lastData2![0]) { alert("Device offline!"); } else if (lastData1![0].created_time == lastData2![0].created_time) { alert("Device offline!"); } await checkStatusDevice(); } }; const checkPengaturan = async () => { const { data } = await supabase.from("pengaturan").select("*").limit(1); if (data) { const item: Pengaturan = data[0]; setPengaturan(item); if (!item.running) { if (location.pathname != "/") { navigate("/"); } } else { setCanNavigate(true); await checkStatusDevice(); } } }; const toggleSidebar = () => { setShowSidebar(!showSidebar()); }; onMount(async () => { await checkPengaturan(); }); return (
{(item) => ( {item.title} )}
{props.children}
Pemberitahuan
Fermentasi tapai telah dilakukan dengan hasil{" "} {lastHistori()?.berhasil ? "sukses" : "gagal"} . Sistem akan melakukan beberapa aksi yaitu:
  • menghapus data-data terkait dengan proses fermentasi yang telah dilakukan.
  • data-data yang dihapus termasuk suhu, kelembaban, dan kadar gas selama fermentasi.
Simpan hasil fermentasi ke histori?
); }