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={ +
+ +
+ } > -
- @@ -98,7 +105,7 @@ export function CalendarComponent() {
-

{getDateArray(year(), month(),startDay()).month} {getDateArray(year(), month(), startDay()).year}

+

{getDateArray(year(), month(), startDay()).month} {getDateArray(year(), month(), startDay()).year}

+
) } \ 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 ( +
+
+
+ +
+ 1. Schritt + + + +
+ +
+ + +
+
+ +
+ 2. Schritt + + + +
+ +
+ ) +} \ No newline at end of file