diff --git a/src/data/MockDreams.ts b/src/data/MockDreams.ts index 78574e5..0fe3cbd 100644 --- a/src/data/MockDreams.ts +++ b/src/data/MockDreams.ts @@ -1,7 +1,15 @@ import Dream, {type ImageInput, type TextInput} from '../types/Dream.ts'; +// Function to generate a random date between July 3rd, 2025 and July 16th, 2025 +function getRandomDateInRange() { + const start = new Date('2025-07-03T00:00:00Z'); + const end = new Date('2025-07-16T23:59:59Z'); + const randomTime = start.getTime() + Math.random() * (end.getTime() - start.getTime()); + return new Date(randomTime); +} + export const mockDreams: Dream[] = [new Dream({ - id: 1, userId: 1, title: 'Mitternachtsbibliothek', date: new Date('2025-06-30T02:15:00Z'), input: { + id: 1, userId: 1, title: 'Mitternachtsbibliothek', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich wanderte um Mitternacht in eine riesige Bibliothek, in der jedes Buch sanft leuchtete. Als ich eines aus dem Regal zog, flüsterten seine Seiten mir Geheimnisse zu.', } as TextInput, ai: { @@ -11,7 +19,7 @@ export const mockDreams: Dream[] = [new Dream({ audio: '01.mp3', } }), new Dream({ - id: 2, userId: 2, title: 'Unterwasserkonzert', date: new Date('2025-06-25T07:45:00Z'), input: { + id: 2, userId: 2, title: 'Unterwasserkonzert', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich besuchte ein Konzert unter dem Ozean. Die Musiker waren Delfine, die Melodien anklickten, während Korallenpolypen im Takt zum Rhythmus mit Licht pulsierten.', } as TextInput, ai: { @@ -20,7 +28,7 @@ export const mockDreams: Dream[] = [new Dream({ video: '02.mp4', } }), new Dream({ - id: 3, userId: 3, title: 'Wüstenzug', date: new Date('2025-05-10T04:30:00Z'), input: { + id: 3, userId: 3, title: 'Wüstenzug', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ein Dampflok-Express tuckerte über goldene Dünen unter einem violetten Himmel. Passagiere winkten, während Kamele mit Laternen neben den Schienen herliefen.', } as TextInput, ai: { @@ -29,7 +37,7 @@ export const mockDreams: Dream[] = [new Dream({ video: '03.mp4', } }), new Dream({ - id: 4, userId: 1, title: 'Schwebende Teeparty', date: new Date('2025-04-18T09:00:00Z'), input: { + id: 4, userId: 1, title: 'Schwebende Teeparty', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich saß mit Freunden auf einer Wolke zu einer Teeparty. Jede Tasse war mit Sternenstaub gefüllt, und der Himmel um uns herum schimmerte in pastelligen Regenbogenfarben.', } as TextInput, ai: { @@ -37,7 +45,7 @@ export const mockDreams: Dream[] = [new Dream({ image: '04.png' } }), new Dream({ - id: 5, userId: 2, title: 'Spiegelgarten', date: new Date('2025-03-05T23:20:00Z'), input: { + id: 5, userId: 2, title: 'Spiegelgarten', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich erkundete einen Garten aus Spiegeln, in denen jeweils eine andere Kindheitserinnerung reflektiert wurde. Als ich einen berührte, hörte ich entferntes Lachen durch das Glas hallen.', } as TextInput, ai: { @@ -46,7 +54,7 @@ export const mockDreams: Dream[] = [new Dream({ audio: '05.mp3' } }), new Dream({ - id: 6, userId: 1, title: 'Crystal Forest', date: new Date('2025-07-01T03:30:00Z'), input: { + id: 6, userId: 1, title: 'Crystal Forest', date: getRandomDateInRange(), input: { inputType: 'image', img: 'crystal_forest.jpg', imgAlt: 'A glowing forest made of crystals under a starry sky', @@ -57,7 +65,7 @@ export const mockDreams: Dream[] = [new Dream({ image: 'crystal_forest_ai.png', }, }), new Dream({ - id: 7, userId: 2, title: 'Mirror Lake', date: new Date('2025-07-02T05:15:00Z'), input: { + id: 7, userId: 2, title: 'Mirror Lake', date: getRandomDateInRange(), input: { inputType: 'image', img: 'mirror_lake.jpg', imgAlt: 'A perfectly still lake reflecting the moon and clouds', @@ -68,7 +76,7 @@ export const mockDreams: Dream[] = [new Dream({ image: 'mirror_lake_ai.png', }, }), new Dream({ - id: 8, userId: 3, title: 'Floating City', date: new Date('2025-07-03T06:50:00Z'), input: { + id: 8, userId: 3, title: 'Floating City', date: getRandomDateInRange(), input: { inputType: 'image', img: 'floating_city.jpg', imgAlt: 'A futuristic city floating above the clouds at sunrise', @@ -78,7 +86,7 @@ export const mockDreams: Dream[] = [new Dream({ image: 'floating_city_ai.png', }, }), new Dream({ - id: 9, userId: 4, title: 'Quantenreise', date: new Date('2025-07-04T01:15:00Z'), input: { + id: 9, userId: 4, title: 'Quantenreise', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich reiste durch einen Tunnel aus pulsierenden Datenströmen. Jede Berührung löste neue Realitäten aus, die sich wie Fraktale vor mir entfalteten.', } as TextInput, ai: { @@ -87,7 +95,7 @@ export const mockDreams: Dream[] = [new Dream({ video: 'quantum_journey.mp4', } }), new Dream({ - id: 10, userId: 4, title: 'Neuronales Netzwerk', date: new Date('2025-07-05T02:30:00Z'), input: { + id: 10, userId: 4, title: 'Neuronales Netzwerk', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich befand mich in einem riesigen neuronalen Netzwerk, wo Gedanken als leuchtende Impulse zwischen synaptischen Verbindungen tanzten. Ich konnte sie mit meinen Händen formen und lenken.', } as TextInput, ai: { @@ -96,7 +104,7 @@ export const mockDreams: Dream[] = [new Dream({ audio: 'neural_network.mp3', } }), new Dream({ - id: 11, userId: 4, title: 'Digitaler Garten', date: new Date('2025-07-06T03:45:00Z'), input: { + id: 11, userId: 4, title: 'Digitaler Garten', date: getRandomDateInRange(), input: { inputType: 'image', img: 'digital_garden.jpg', imgAlt: 'Ein Garten aus leuchtenden Codezeilen und holografischen Pflanzen', @@ -106,7 +114,7 @@ export const mockDreams: Dream[] = [new Dream({ image: 'digital_garden_ai.png', } }), new Dream({ - id: 12, userId: 4, title: 'Zeitschleife', date: new Date('2025-07-07T04:20:00Z'), input: { + id: 12, userId: 4, title: 'Zeitschleife', date: getRandomDateInRange(), input: { inputType: 'text', input: 'Ich erlebte denselben Tag immer wieder, konnte aber jedes Mal kleine Änderungen vornehmen. Mit jeder Iteration wurde die Realität komplexer und unvorhersehbarer.', } as TextInput, ai: { diff --git a/src/pages/Feed.tsx b/src/pages/Feed.tsx index 0fef1ff..d89568c 100644 --- a/src/pages/Feed.tsx +++ b/src/pages/Feed.tsx @@ -4,7 +4,7 @@ import Dream from '../types/Dream'; import type User from "../types/User.ts"; import {MockUserMap} from "../data/MockUsers.ts"; import DreamCard from "../components/DreamCard"; -import {getSortedDreamsByDate} from "../data/DreamUtils"; +import {getSortedDreamsByDate} from "../utils/DreamUtils.ts"; export default function Feed() { const sortedDreams = getSortedDreamsByDate(mockDreams); diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index b495d5f..b54545b 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -1,7 +1,7 @@ import {useState} from 'react'; import {mockDreams} from '../data/MockDreams'; import {MockUserMap} from '../data/MockUsers'; -import {getSortedDreamsByDate} from '../data/DreamUtils'; +import {getSortedDreamsByDate} from '../utils/DreamUtils.ts'; import {primaryMoodCategories, topDreamTopics} from '../data/MockDailyHighlights'; import {getAccentStyle, getBackgroundStyle, getCardStyle, getTextStyle} from '../styles/StyleUtils'; import {formatDateFull, formatDateSimple} from '../utils/DateUtils'; diff --git a/src/data/DreamUtils.ts b/src/utils/DreamUtils.ts similarity index 88% rename from src/data/DreamUtils.ts rename to src/utils/DreamUtils.ts index 4d21f3a..8fb5f67 100644 --- a/src/data/DreamUtils.ts +++ b/src/utils/DreamUtils.ts @@ -1,4 +1,4 @@ -import Dream from '../types/Dream'; +import Dream from '../types/Dream.ts'; /** * Sorts dreams by date in descending order (newest first)