From 4f3c834f4d13a20b62b0537c81f8af5bfc0c5fcb Mon Sep 17 00:00:00 2001 From: Isrem_ <32309148+isaacdemeers@users.noreply.github.com> Date: Tue, 10 Dec 2024 14:49:15 +0100 Subject: [PATCH 1/2] Gett --- pwa/app/gettingstarted/page.tsx | 65 ++++++++++++++++++++++++++++++++- pwa/package.json | 1 + 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/pwa/app/gettingstarted/page.tsx b/pwa/app/gettingstarted/page.tsx index 9c90fbb..dc7b196 100644 --- a/pwa/app/gettingstarted/page.tsx +++ b/pwa/app/gettingstarted/page.tsx @@ -1,8 +1,69 @@ +"use client" + +import { + Carousel, + CarouselContent, + CarouselItem, + CarouselNext, + CarouselPrevious, +} from "@/components/ui/carousel"; +import { abhayalibre, inter } from "@/lib/fonts"; +import Link from "next/link"; export default function Page() { + const features = [ + { + title: "Calendrier Partagé", + description: "Créez et partagez des événements avec vos amis, votre famille ou vos collègues.", + icon: "📅" + }, + { + title: "Planification Simplifiée", + description: "Trouvez facilement le meilleur moment pour vos réunions et événements.", + icon: "✨" + }, + { + title: "Notifications", + description: "Recevez des rappels pour ne jamais manquer un événement important.", + icon: "🔔" + }, + { + title: "Synchronisation", + description: "Synchronisez vos événements sur tous vos appareils.", + icon: "🔄" + } + ]; + + return ( +
+ +

PlanIt

+ +

PlanIt est un calendrier partagé pour planifier vos événements simplement et efficacement.

+ +
+ + + {features.map((feature, index) => ( + + + + ))} + + + + +
+
+ ); +} + +function FeatureCard({ title, description, icon }: { title: string, description: string, icon: string }) { return ( -
-

PlanIt est un calendrier partagé pour planifier vos événements.

+
+
{icon}
+

{title}

+

{description}

); } \ No newline at end of file diff --git a/pwa/package.json b/pwa/package.json index ca9f148..0253e9e 100755 --- a/pwa/package.json +++ b/pwa/package.json @@ -36,6 +36,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^4.1.0", + "embla-carousel-react": "^8.5.1", "formik": "^2.4.6", "isomorphic-unfetch": "^4.0.2", "lucide-react": "^0.452.0", From de492757869d3276b42757da1ab1913ec3fd145c Mon Sep 17 00:00:00 2001 From: Isrem_ <32309148+isaacdemeers@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:20:03 +0100 Subject: [PATCH 2/2] Fix --- package-lock.json | 44 +++++++++++++ package.json | 1 + pnpm-lock.yaml | 60 +++++++++++++++++ pwa/app/gettingstarted/page.tsx | 83 ++++++++---------------- pwa/public/images/bg.svg | 13 ++++ pwa/public/images/f1.svg | 3 + pwa/public/images/f2.svg | 3 + pwa/public/images/f3.svg | 3 + pwa/public/images/f4.svg | 3 + pwa/src/components/calendar/calendar.tsx | 14 ++-- 10 files changed, 163 insertions(+), 64 deletions(-) create mode 100644 pnpm-lock.yaml create mode 100644 pwa/public/images/bg.svg create mode 100644 pwa/public/images/f1.svg create mode 100644 pwa/public/images/f2.svg create mode 100644 pwa/public/images/f3.svg create mode 100644 pwa/public/images/f4.svg diff --git a/package-lock.json b/package-lock.json index b3cffcf..56ec2ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,14 +5,58 @@ "packages": { "": { "dependencies": { + "framer-motion": "^11.13.5", "gsap": "^3.12.5" } }, + "node_modules/framer-motion": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.13.5.tgz", + "integrity": "sha512-rArI0zPU9VkpS3Wt0J7dmRxAFUWtzPWoSofNQAP0UO276CmJ+Xlf5xN19GMw3w2QsdrS2sU+0+Q2vtuz4IEZaw==", + "license": "MIT", + "dependencies": { + "motion-dom": "^11.13.0", + "motion-utils": "^11.13.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/gsap": { "version": "3.12.5", "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.5.tgz", "integrity": "sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==", "license": "Standard 'no charge' license: https://gsap.com/standard-license. Club GSAP members get more: https://gsap.com/licensing/. Why GreenSock doesn't employ an MIT license: https://gsap.com/why-license/" + }, + "node_modules/motion-dom": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.13.0.tgz", + "integrity": "sha512-Oc1MLGJQ6nrvXccXA89lXtOqFyBmvHtaDcTRGT66o8Czl7nuA8BeHAd9MQV1pQKX0d2RHFBFaw5g3k23hQJt0w==" + }, + "node_modules/motion-utils": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.13.0.tgz", + "integrity": "sha512-lq6TzXkH5c/ysJQBxgLXgM01qwBH1b4goTPh57VvZWJbVJZF/0SB31UWEn4EIqbVPf3au88n2rvK17SpDTja1A==" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" } } } diff --git a/package.json b/package.json index fe49a72..911b4ee 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "framer-motion": "^11.13.5", "gsap": "^3.12.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..802e1e8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,60 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + framer-motion: + specifier: ^11.13.5 + version: 11.13.5 + gsap: + specifier: ^3.12.5 + version: 3.12.5 + +packages: + + framer-motion@11.13.5: + resolution: {integrity: sha512-rArI0zPU9VkpS3Wt0J7dmRxAFUWtzPWoSofNQAP0UO276CmJ+Xlf5xN19GMw3w2QsdrS2sU+0+Q2vtuz4IEZaw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + gsap@3.12.5: + resolution: {integrity: sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==} + + motion-dom@11.13.0: + resolution: {integrity: sha512-Oc1MLGJQ6nrvXccXA89lXtOqFyBmvHtaDcTRGT66o8Czl7nuA8BeHAd9MQV1pQKX0d2RHFBFaw5g3k23hQJt0w==} + + motion-utils@11.13.0: + resolution: {integrity: sha512-lq6TzXkH5c/ysJQBxgLXgM01qwBH1b4goTPh57VvZWJbVJZF/0SB31UWEn4EIqbVPf3au88n2rvK17SpDTja1A==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + +snapshots: + + framer-motion@11.13.5: + dependencies: + motion-dom: 11.13.0 + motion-utils: 11.13.0 + tslib: 2.8.1 + + gsap@3.12.5: {} + + motion-dom@11.13.0: {} + + motion-utils@11.13.0: {} + + tslib@2.8.1: {} diff --git a/pwa/app/gettingstarted/page.tsx b/pwa/app/gettingstarted/page.tsx index dc7b196..36b6995 100644 --- a/pwa/app/gettingstarted/page.tsx +++ b/pwa/app/gettingstarted/page.tsx @@ -1,69 +1,38 @@ "use client" -import { - Carousel, - CarouselContent, - CarouselItem, - CarouselNext, - CarouselPrevious, -} from "@/components/ui/carousel"; -import { abhayalibre, inter } from "@/lib/fonts"; +import Image from "next/image" +import Background from "@images/bg.svg" +import { useEffect } from "react"; +import { Button } from "@/components/ui/button"; import Link from "next/link"; export default function Page() { - const features = [ - { - title: "Calendrier Partagé", - description: "Créez et partagez des événements avec vos amis, votre famille ou vos collègues.", - icon: "📅" - }, - { - title: "Planification Simplifiée", - description: "Trouvez facilement le meilleur moment pour vos réunions et événements.", - icon: "✨" - }, - { - title: "Notifications", - description: "Recevez des rappels pour ne jamais manquer un événement important.", - icon: "🔔" - }, - { - title: "Synchronisation", - description: "Synchronisez vos événements sur tous vos appareils.", - icon: "🔄" - } - ]; - return ( -
- -

PlanIt

- -

PlanIt est un calendrier partagé pour planifier vos événements simplement et efficacement.

+ const steps = [ + { title: "Créer un événement", description: "Créez un événement pour commencer à planifier vos événements." }, + { title: "Inviter des amis", description: "Invitez vos amis à l'événement pour les encourager à venir." }, + { title: "Suivre l'avancée", description: "Suivez l'avancée de l'événement et les invitations envoyées." }, + ] + -
- - - {features.map((feature, index) => ( - - - + return ( +
+ Background +
+
+
    + {steps.map((step, index) => ( +
  • + +
  • ))} - - - - +
+ +
-
+ ); } -function FeatureCard({ title, description, icon }: { title: string, description: string, icon: string }) { - return ( -
-
{icon}
-

{title}

-

{description}

-
- ); -} \ No newline at end of file diff --git a/pwa/public/images/bg.svg b/pwa/public/images/bg.svg new file mode 100644 index 0000000..691d157 --- /dev/null +++ b/pwa/public/images/bg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/pwa/public/images/f1.svg b/pwa/public/images/f1.svg new file mode 100644 index 0000000..c908953 --- /dev/null +++ b/pwa/public/images/f1.svg @@ -0,0 +1,3 @@ + + + diff --git a/pwa/public/images/f2.svg b/pwa/public/images/f2.svg new file mode 100644 index 0000000..12b6bee --- /dev/null +++ b/pwa/public/images/f2.svg @@ -0,0 +1,3 @@ + + + diff --git a/pwa/public/images/f3.svg b/pwa/public/images/f3.svg new file mode 100644 index 0000000..c4da642 --- /dev/null +++ b/pwa/public/images/f3.svg @@ -0,0 +1,3 @@ + + + diff --git a/pwa/public/images/f4.svg b/pwa/public/images/f4.svg new file mode 100644 index 0000000..ad4f29f --- /dev/null +++ b/pwa/public/images/f4.svg @@ -0,0 +1,3 @@ + + + diff --git a/pwa/src/components/calendar/calendar.tsx b/pwa/src/components/calendar/calendar.tsx index a83c0a5..6906324 100644 --- a/pwa/src/components/calendar/calendar.tsx +++ b/pwa/src/components/calendar/calendar.tsx @@ -23,21 +23,21 @@ const randomColor = () => { // Add this function before the Calendar component function transformEvents(events: any[]) { - console.log(events); + console.log("Events before transform:", events); // Pour debug return events.map(event => ({ - id: event.id, + id: event.eventId || event.id, // Utiliser eventId ou id s'il existe title: event.title, - start: event.datestart.replace(' ', 'T'), // Convert "2024-11-26 08:39:00" to "2024-11-26T08:39:00" + start: event.datestart.replace(' ', 'T'), end: event.dateend.replace(' ', 'T'), - color: '#475569', // Slate 600 - extendedProps: { // Store additional properties + color: '#475569', + extendedProps: { description: event.description, location: event.location, maxparticipant: event.maxparticipant, sharelink: event.sharelink, img: event.img, isPublic: event.isPublic, - id: event.id + id: event.eventId || event.id // Ajouter aussi l'ID dans extendedProps } })); } @@ -192,7 +192,7 @@ export function Calendar() { }; let event = { - id: info.event.extendedProps.id, + id: info.event.id || info.event.extendedProps.id, // Utiliser l'ID de l'événement ou celui dans extendedProps title: info.event.title, image: info.event.extendedProps.img, location: info.event.extendedProps.location,