diff --git a/src/App.tsx b/src/App.tsx
index 3a63364..a1ac4a9 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,13 +1,45 @@
import type { Component } from 'solid-js';
+import { createStore } from 'solid-js/store'
+
import logo from './logo.svg';
import styles from './App.module.css';
import { CalendarComponent } from './Calendar';
+import { DiaryComponent } from './Diary';
+import { ProgressComponent } from './Progress';
+
+export const [store, setStore] = createStore({
+ calendarClick: new Date(),
+ localDate: Date.now(),
+ userCount: 3,
+ users: [
+ {
+ id: 0,
+ username: "felix909",
+ location: "England",
+ loggedIn: false,
+ },
+ {
+ id: 1,
+ username: "tracy634",
+ location: "Canada",
+ loggedIn: true,
+ },
+ {
+ id: 2,
+ username: "johny123",
+ location: "India",
+ loggedIn: true,
+ },
+ ],
+ })
const App: Component = () => {
return (
<>
+
+
>
);
diff --git a/src/Calendar.tsx b/src/Calendar.tsx
index ab2003a..3cc4d06 100644
--- a/src/Calendar.tsx
+++ b/src/Calendar.tsx
@@ -1,12 +1,12 @@
import { For, createSignal, Show } from 'solid-js';
-
+import { store, setStore } from './App';
function getDateArray(year: number, month: number, startday: number) {
//Das bedeutet Montag im englischen Wochenformat.
const startTagDerWoche = startday;
const offsetZumEnglischenSonntag = (7 - startTagDerWoche);
const wochenTagDesErsten = (new Date(year, month, 1).getDay() + offsetZumEnglischenSonntag) % 7;
- const wochenTage = [{"dayname":"So", "dayInWeekArr":0}, {"dayname":"Mo", "dayInWeekArr":1}, {"dayname":"Di", "dayInWeekArr":2}, {"dayname":"Mi", "dayInWeekArr":3}, {"dayname":"Do", "dayInWeekArr":4}, {"dayname":"Fr", "dayInWeekArr":5}, {"dayname":"Sa", "dayInWeekArr":6}];
+ const wochenTage = [{ "dayname": "So", "dayInWeekArr": 0 }, { "dayname": "Mo", "dayInWeekArr": 1 }, { "dayname": "Di", "dayInWeekArr": 2 }, { "dayname": "Mi", "dayInWeekArr": 3 }, { "dayname": "Do", "dayInWeekArr": 4 }, { "dayname": "Fr", "dayInWeekArr": 5 }, { "dayname": "Sa", "dayInWeekArr": 6 }];
const monatsNamen = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
const wochenTageNachAnfangsTag = [];
for (let i = startTagDerWoche; i < startTagDerWoche + 7; i++) {
@@ -18,17 +18,18 @@ function getDateArray(year: number, month: number, startday: number) {
} else {
const vorMonatTage = new Date(year, month, 0).getDate();
for (let i = wochenTagDesErsten - 1; i >= 0; i--) {
- const tagObj = { "value": vorMonatTage - i, "enabled": false }
+ const tagObj = { "value": vorMonatTage - i, "enabled": false, "date": new Date() }
tage.push(tagObj);
}
}
for (let i = 1; i <= new Date(year, month + 1, 0).getDate(); i++) {
- const tagObj = { "value": i, "enabled": true }
+ console.log(i);
+ const tagObj = { "value": i, "enabled": true, "date": new Date(year, month, i, 10,0) }
tage.push(tagObj);
}
let nextDay = 1;
for (let i = tage.length; i < 42; i++) {
- const tagObj = { "value": nextDay, "enabled": false }
+ const tagObj = { "value": nextDay, "enabled": false, "date": new Date() }
tage.push(tagObj);
nextDay++;
}
@@ -36,11 +37,11 @@ function getDateArray(year: number, month: number, startday: number) {
}
export function CalendarComponent() {
- const [month, setMonth] = createSignal(0);
- const [year, setYear] = createSignal(2025);
- const [startDay, setStartday] = createSignal(1);
+ const [month, setMonth] = createSignal(new Date(store.localDate).getMonth());
+ const [year, setYear] = createSignal(new Date(store.localDate).getFullYear());
+ const [startDay, setStartday] = createSignal(new Date(store.localDate).getDate());
- let onclickDayOfWeekHeader = (day : number) => {
+ let onclickDayOfWeekHeader = (day: number) => {
setStartday(day);
}
@@ -53,6 +54,14 @@ export function CalendarComponent() {
setMonth(month() + 1);
};
+ let onclickDayOfMonth = (day: Date) => {
+ setStore("calendarClick", day);
+ }
+
+ let getSelectedDay = () => {
+ return store.calendarClick.getDate();
+ }
+
let onclickPrevMonth = () => {
if (month() <= 0) {
setMonth(11);
@@ -66,7 +75,7 @@ export function CalendarComponent() {
- {(day) => }
+ {(day) => }
{(day) =>
-
-
- }
-
-
+ fallback={
+
+
+
+ }
>
-
-
)
}
\ No newline at end of file
diff --git a/src/Diary.tsx b/src/Diary.tsx
new file mode 100644
index 0000000..7694d1e
--- /dev/null
+++ b/src/Diary.tsx
@@ -0,0 +1,10 @@
+import { store, setStore } from './App';
+export function DiaryComponent(){
+ return (
+ <>
+
+ {store.calendarClick.toUTCString()}
+
+ >
+ );
+}
\ No newline at end of file
diff --git a/src/Progress.tsx b/src/Progress.tsx
new file mode 100644
index 0000000..9ee0374
--- /dev/null
+++ b/src/Progress.tsx
@@ -0,0 +1,51 @@
+export function ProgressComponent() {
+ return (
+
+ )
+}
\ No newline at end of file