diff --git a/src/app/create/page.js b/src/app/create/page.js
new file mode 100644
index 0000000..962a5e0
--- /dev/null
+++ b/src/app/create/page.js
@@ -0,0 +1,12 @@
+import Image from "next/image";
+
+import styles from "./page.module.css";
+
+export default function Create() {
+ return (
+
+ Daily Info
+ +
+
+ );
+}
diff --git a/src/app/create/page.module.css b/src/app/create/page.module.css
new file mode 100644
index 0000000..2fe26d9
--- /dev/null
+++ b/src/app/create/page.module.css
@@ -0,0 +1,3 @@
+body {
+ background: #000;
+}
diff --git a/src/app/page.js b/src/app/page.js
index 2921fa8..e8e8124 100644
--- a/src/app/page.js
+++ b/src/app/page.js
@@ -6,6 +6,7 @@ export default function Home() {
return (
Daily Info
+ +
);
}
diff --git a/src/app/page.module.css b/src/app/page.module.css
index d66a35a..768466a 100644
--- a/src/app/page.module.css
+++ b/src/app/page.module.css
@@ -18,5 +18,10 @@
text-decoration: none;
color: rgba(255, 255, 255, 0.85);
border: 1px solid rgba(200, 200, 200, 0.4);
+
+ &:last-child {
+ width: 7%;
+ margin-left: 10px;
+ }
}
}
diff --git a/src/app/todo/daily.json b/src/app/todo/daily.json
new file mode 100644
index 0000000..0fc6258
--- /dev/null
+++ b/src/app/todo/daily.json
@@ -0,0 +1,40 @@
+{
+ "List": [
+ {
+ "title": "Opening Checklist",
+ "desc": "Complete the opening checklist to ensure all equipment is operational and ready for the day.",
+ "type": "3",
+ "timeStart": "07",
+ "timeEnd": "09",
+ "textStart": "7 AM",
+ "textEnd": "9 AM"
+ },
+ {
+ "title": "Daily Maintenance Checklist",
+ "desc": "Perform daily maintenance tasks to keep equipment running smoothly.",
+ "type": "3",
+ "timeStart": "07",
+ "timeEnd": "19",
+ "textStart": "7 AM",
+ "textEnd": "7 PM"
+ },
+ {
+ "title": "Site Inspection Checklist",
+ "desc": "Conduct a thorough inspection of the site to identify any potential issues.",
+ "type": "4",
+ "timeStart": "10",
+ "timeEnd": "12",
+ "textStart": "10 AM",
+ "textEnd": "12 PM"
+ },
+ {
+ "title": "Closing Checklist",
+ "desc": "Complete the closing checklist to ensure all equipment is properly shut down for the day and ready for tomorrow.",
+ "type": "3",
+ "timeStart": "18",
+ "timeEnd": "20",
+ "textStart": "6 PM",
+ "textEnd": "8 PM"
+ }
+ ]
+}
diff --git a/src/app/todo/page.js b/src/app/todo/page.js
index 7c181c6..ee588fb 100644
--- a/src/app/todo/page.js
+++ b/src/app/todo/page.js
@@ -3,6 +3,7 @@
import { getWeatherIcon } from "@/utils/weather.js";
import Image from "next/image";
import { useEffect, useState } from "react";
+import List from "./daily.json";
import styles from "./todo.module.css";
const version = require("../../../package.json").version;
@@ -89,6 +90,42 @@ export default function WeatherPage() {
return () => clearInterval(interval);
}, [weather]);
+ const [dailyItems, setDailyItems] = useState([]);
+
+ useEffect(() => {
+ const updateDailyItems = () => {
+ const now = new Date();
+ const currentHour = now.getHours();
+
+ const filteredItems =
+ List?.List?.filter((item) => {
+ const timeStart = parseInt(item.timeStart);
+ const timeEnd = parseInt(item.timeEnd);
+
+ return currentHour >= timeStart && currentHour < timeEnd;
+ }) || [];
+
+ setDailyItems(
+ filteredItems.length > 0
+ ? filteredItems
+ : [
+ {
+ title: "N/A",
+ desc: "No reminders",
+ },
+ ],
+ );
+ };
+
+ // Initial check
+ updateDailyItems();
+
+ // Check every second
+ const interval = setInterval(updateDailyItems, 1000);
+
+ return () => clearInterval(interval);
+ }, [List]);
+
const weatherAlerts = weather?.alerts || [];
const futureForecasts = weather?.daily?.data.slice(1, 4) || [];
@@ -110,8 +147,44 @@ export default function WeatherPage() {
- Daily ToDo Rotation
- Manual ToDo List
+
+
+ Daily Reminders
+
+ {dailyItems?.map((item, index) => (
+
+
+ {item.title}
+
+
+ {item.desc}
+
+
+ {item.textStart && item.textEnd ? (
+ <>
+ {item.textStart} - {item.textEnd}
+ >
+ ) : (
+ <>
+ {item.timeStart}:00 - {item.timeEnd}
+ :00
+ >
+ )}
+
+
+ )) || "Test"}
+
+
+
+ Important Reminders
+
+
+ N/A
+
+ No Reminders
+
+
+
diff --git a/src/app/todo/todo.module.css b/src/app/todo/todo.module.css
index 7b9c2a0..2a7de6a 100644
--- a/src/app/todo/todo.module.css
+++ b/src/app/todo/todo.module.css
@@ -77,12 +77,64 @@
flex-direction: row;
.lists {
- padding: 10px;
- display: flex;
- flex: 1 1 auto;
+ flex: 1 1 100%;
border-radius: 10px;
background: #17171b;
border: 1px solid rgba(200, 200, 200, 0.2);
+
+ .listHeader {
+ margin: 5px;
+ font-size: 14pt;
+ font-weight: bold;
+ display: inline-block;
+ width: calc(100% - 24px);
+ padding: 6px 6px 4px 6px;
+ border-radius: 5px 5px 2px 2px;
+ background: rgba(255, 255, 255, 0.1);
+ border: 1px solid rgba(200, 200, 200, 0.2);
+ }
+
+ .dailyListItem {
+ padding: 5px;
+ display: block;
+ margin: 0 5px 5px 5px;
+ border-radius: 2px 2px 2px 2px;
+ background: rgba(255, 255, 255, 0.05);
+ border: 1px solid rgba(200, 200, 200, 0.1);
+
+ .listItemTitle {
+ width: 100%;
+ display: block;
+ font-size: 16pt;
+ font-weight: bold;
+ margin: 0 0 5px 0;
+ color: rgba(255, 255, 255, 0.95);
+ border-bottom: 1px solid rgba(200, 200, 200, 0.2);
+ }
+
+ .listItemDesc {
+ padding: 5px;
+ display: block;
+ font-size: 10pt;
+ margin-bottom: 5px;
+ width: calc(100% - 10px);
+ color: rgba(255, 255, 255, 0.75);
+ }
+
+ .listItemTime {
+ width: 100%;
+ font-size: 8pt;
+ display: block;
+ text-align: right;
+ padding: 5px 0 0 0;
+ color: rgba(255, 255, 255, 0.8);
+ border-top: 1px solid rgba(200, 200, 200, 0.075);
+ }
+
+ &:last-child {
+ border-radius: 2px 2px 5px 5px;
+ }
+ }
}
}
@@ -104,8 +156,8 @@
width: calc(100% - 24px);
padding: 6px 6px 4px 6px;
border-radius: 5px 5px 2px 2px;
- border: 1px solid rgba(200, 200, 200, 0.2);
background: rgba(255, 255, 255, 0.1);
+ border: 1px solid rgba(200, 200, 200, 0.2);
}
.weatherAlerts {