From 27f51f9e1e43aab5f5e2060644b245040178299b Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 2 Nov 2025 11:54:28 -0500 Subject: [PATCH 1/8] feat(dashboard): added title and button container and included heading font --- src/pages/Dashboard.jsx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 30c787d..1ca11ed 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -1,9 +1,20 @@ -function Dashboard() { +import Button from "../components/Button"; + +export default function Dashboard() { return ( -
-

Dashboard Page! 🎉

+
+ {/* title and button */} +
+

Welcome Back!

+
+
+
); -} - -export default Dashboard; +} \ No newline at end of file From 0ef324e531002157c317d4cb1a8b8f4535fcbddf Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Thu, 6 Nov 2025 13:38:18 -0500 Subject: [PATCH 2/8] feat(dashboard): created responsive grid layout for tiles and added DashboardTile component with tailwind variants and props --- src/components/Dashboard/DashboardTile.jsx | 26 ++++++++++++++++++++++ src/pages/Dashboard.jsx | 18 ++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 src/components/Dashboard/DashboardTile.jsx diff --git a/src/components/Dashboard/DashboardTile.jsx b/src/components/Dashboard/DashboardTile.jsx new file mode 100644 index 0000000..907ca74 --- /dev/null +++ b/src/components/Dashboard/DashboardTile.jsx @@ -0,0 +1,26 @@ +import { tv } from "tailwind-variants/lite"; + +const tileVariants = tv({ + base: 'flex flex-col rounded-lg shadow-[0_4px_15px_rgba(0,0,0,0.25)]', + + variants: { + size: { + sm: 'h-[222px]', + lg: 'h-[340px]' + }, + span: { + 2: 'col-span-1 md:col-span-2', + 3: 'col-span-1 md:col-span-3' + }, + }, +}); + +export default function DashboardTile({ size, span, title, subtitle, imgSource, altText }){ + return ( +
+

{title}

+

{subtitle}

+ {altText} +
+ ); +} \ No newline at end of file diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 1ca11ed..9452c21 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -1,11 +1,12 @@ import Button from "../components/Button"; +import DashboardTile from "../components/Dashboard/DashboardTile"; export default function Dashboard() { return ( -
+
{/* title and button */} -
-

Welcome Back!

+
+

Welcome Back!

+ {/* card grid */} +
+ {/* row 1 */} + + + + + {/* row 2 */} + + +
); } \ No newline at end of file From dc96b7314666ff2817640aeda0e5a3f36db078af Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 9 Nov 2025 00:19:40 -0500 Subject: [PATCH 3/8] feat(dashboard): created base inner content for regular tiles with images in component, updated imported tiles in dashboard with props and imgs --- public/badge.svg | 178 +++++++++++++++++++++ public/people.svg | 30 ++++ public/pietrs.png | Bin 0 -> 46135 bytes src/components/Dashboard/DashboardTile.jsx | 10 +- src/pages/Dashboard.jsx | 39 ++++- 5 files changed, 248 insertions(+), 9 deletions(-) create mode 100644 public/badge.svg create mode 100644 public/people.svg create mode 100644 public/pietrs.png diff --git a/public/badge.svg b/public/badge.svg new file mode 100644 index 0000000..9d23566 --- /dev/null +++ b/public/badge.svg @@ -0,0 +1,178 @@ + + + + + + + + + \ No newline at end of file diff --git a/public/people.svg b/public/people.svg new file mode 100644 index 0000000..36e30c3 --- /dev/null +++ b/public/people.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/pietrs.png b/public/pietrs.png new file mode 100644 index 0000000000000000000000000000000000000000..99fc755bf688657243bf45278a53d5cd5f781067 GIT binary patch literal 46135 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≻KkO3YjIWR)@#H1|l@ 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 A;s5{u literal 0 HcmV?d00001 diff --git a/src/components/Dashboard/DashboardTile.jsx b/src/components/Dashboard/DashboardTile.jsx index 907ca74..acf05d5 100644 --- a/src/components/Dashboard/DashboardTile.jsx +++ b/src/components/Dashboard/DashboardTile.jsx @@ -1,7 +1,7 @@ import { tv } from "tailwind-variants/lite"; const tileVariants = tv({ - base: 'flex flex-col rounded-lg shadow-[0_4px_15px_rgba(0,0,0,0.25)]', + base: 'font-poppins flex flex-col justify-center items-center rounded-lg shadow-[0_4px_15px_rgba(0,0,0,0.25)]', variants: { size: { @@ -18,9 +18,11 @@ const tileVariants = tv({ export default function DashboardTile({ size, span, title, subtitle, imgSource, altText }){ return (
-

{title}

-

{subtitle}

- {altText} +
+

{title}

+

{subtitle}

+ {altText} +
); } \ No newline at end of file diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 9452c21..633f137 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -19,13 +19,42 @@ export default function Dashboard() { {/* card grid */}
{/* row 1 */} - - - + + + {/* row 2 */} - - + +
); From 115b9a2de50d17d9946a4893ae2bce22b415d04f Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 9 Nov 2025 01:14:32 -0500 Subject: [PATCH 4/8] feat(dashboard): added image variants with Tailwind Variants to scale the image by the size of the container tile, adjusted flex properties and padding for consistent text spacing --- src/components/Dashboard/DashboardTile.jsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/Dashboard/DashboardTile.jsx b/src/components/Dashboard/DashboardTile.jsx index acf05d5..d29a7cc 100644 --- a/src/components/Dashboard/DashboardTile.jsx +++ b/src/components/Dashboard/DashboardTile.jsx @@ -1,7 +1,7 @@ import { tv } from "tailwind-variants/lite"; const tileVariants = tv({ - base: 'font-poppins flex flex-col justify-center items-center rounded-lg shadow-[0_4px_15px_rgba(0,0,0,0.25)]', + base: 'font-poppins flex flex-col justify-start py-6 px-4 rounded-lg shadow-[0_4px_15px_rgba(0,0,0,0.25)]', variants: { size: { @@ -15,13 +15,24 @@ const tileVariants = tv({ }, }); +const imgVariants = tv({ + base: 'place-self-center', + + variants: { + size: { + sm: 'w-25', + lg: 'w-50' + }, + }, +}); + export default function DashboardTile({ size, span, title, subtitle, imgSource, altText }){ return (

{title}

{subtitle}

- {altText} + {altText}
); From 622f2ad43d37fcde409155484ed61c02c8aead03 Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 9 Nov 2025 02:59:17 -0500 Subject: [PATCH 5/8] feat(dashboard): added type variant and conditional rendering for tile with data, added temp dummy data for testing --- src/components/Dashboard/DashboardTile.jsx | 26 ++++++++++++++++------ src/pages/Dashboard.jsx | 14 ++++++++++-- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/components/Dashboard/DashboardTile.jsx b/src/components/Dashboard/DashboardTile.jsx index d29a7cc..8f1a0e3 100644 --- a/src/components/Dashboard/DashboardTile.jsx +++ b/src/components/Dashboard/DashboardTile.jsx @@ -12,6 +12,10 @@ const tileVariants = tv({ 2: 'col-span-1 md:col-span-2', 3: 'col-span-1 md:col-span-3' }, + type: { + regular: '', + data: '', + }, }, }); @@ -26,14 +30,22 @@ const imgVariants = tv({ }, }); -export default function DashboardTile({ size, span, title, subtitle, imgSource, altText }){ +export default function DashboardTile({ type, size, span, title, subtitle, imgSource, altText, dataSentence }){ return ( -
-
-

{title}

-

{subtitle}

- {altText} -
+
+ {type == "data" ? ( +
+

{title}

+

{dataSentence}

+

{subtitle}

+
+ ) : ( +
+

{title}

+

{subtitle}

+ {altText} +
+ )}
); } \ No newline at end of file diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 633f137..4d6d1c8 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -1,6 +1,10 @@ import Button from "../components/Button"; import DashboardTile from "../components/Dashboard/DashboardTile"; +let daysCompleted = 0; +let daysLeft = 30 - daysCompleted; +let loginStreak = 1; + export default function Dashboard() { return (
@@ -20,14 +24,20 @@ export default function Dashboard() {
{/* row 1 */} Date: Sun, 9 Nov 2025 09:57:00 -0500 Subject: [PATCH 6/8] feat(dashboard modal): created TaskModal component with user selection button logic and close button, added temp route to journal page --- src/components/Dashboard/TaskModal.jsx | 48 ++++++++++++++++++++++++++ src/pages/Dashboard.jsx | 8 ++++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/components/Dashboard/TaskModal.jsx diff --git a/src/components/Dashboard/TaskModal.jsx b/src/components/Dashboard/TaskModal.jsx new file mode 100644 index 0000000..dfae1b3 --- /dev/null +++ b/src/components/Dashboard/TaskModal.jsx @@ -0,0 +1,48 @@ +import { useEffect, useState } from 'react'; +import Button from "../Button"; +import { IoClose } from "react-icons/io5"; + +export default function TaskModal({ isOpen, onClose}) { + const [selectedTask, setSelectedTask] = useState([]); + + // log the selectedTask after the array changes to update automatically + useEffect(() => { + console.log('Updated Tasks:', selectedTask); + }, [selectedTask]); + + function toggleTask(challenge) { + // if the clicked challenge is not selectedTask, setSelectedTask + if (!selectedTask.includes(challenge)) { + // log the selection + console.log(`${challenge} button selected!`); + setSelectedTask([...selectedTask, challenge]); + // if the clicked challenge is already in selectedTask, filter it out of selectedTask + } else { + // log the deselection + console.log(`${challenge} button deselected!`); + setSelectedTask(selectedTask.filter(item => item !== challenge)); + } + } + + if (!isOpen) return null; + + return ( +
+
+ +

Detox Challenge Options

+ {/* buttons */} +
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 4d6d1c8..de30a51 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -1,11 +1,15 @@ +import { useState } from "react"; import Button from "../components/Button"; import DashboardTile from "../components/Dashboard/DashboardTile"; +import TaskModal from "../components/Dashboard/TaskModal"; let daysCompleted = 0; let daysLeft = 30 - daysCompleted; let loginStreak = 1; export default function Dashboard() { + const [taskModalOpen, setTaskModalOpen] = useState(false); + return (
{/* title and button */} @@ -17,9 +21,11 @@ export default function Dashboard() { color='primary' label='Start a Task' className="place-items-center" + onClick={() => setTaskModalOpen(true)} />
+ setTaskModalOpen(false)} /> {/* card grid */}
{/* row 1 */} @@ -65,7 +71,7 @@ export default function Dashboard() { imgSource="/people.svg" altText="illustration of four diverse women" /> -
+
); } \ No newline at end of file From 211a7de523c2026204cc01c04fb59b32d80471ff Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 9 Nov 2025 10:23:20 -0500 Subject: [PATCH 7/8] feat(dashboard modal): Adjusted height to fit content, added remaining buttons --- src/components/Dashboard/TaskModal.jsx | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/components/Dashboard/TaskModal.jsx b/src/components/Dashboard/TaskModal.jsx index dfae1b3..1e96f06 100644 --- a/src/components/Dashboard/TaskModal.jsx +++ b/src/components/Dashboard/TaskModal.jsx @@ -28,7 +28,7 @@ export default function TaskModal({ isOpen, onClose}) { return (
-
+

Detox Challenge Options

{/* buttons */} @@ -40,6 +40,34 @@ export default function TaskModal({ isOpen, onClose}) { onClick={() => toggleTask('Practice Saying No: This task helps you set boundaries in & outside the office.')} isActive={selectedTask.includes('Practice Saying No: This task helps you set boundaries in & outside the office.')} /> +
From dadf6fa87033c318d83b8f086c51c426cdd5810c Mon Sep 17 00:00:00 2001 From: Mag <166319982+magali-la@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:21:47 -0500 Subject: [PATCH 8/8] fix(dashboard): remove className from start a task button --- src/pages/Dashboard.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index de30a51..4b10d49 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -20,7 +20,6 @@ export default function Dashboard() { size='md' color='primary' label='Start a Task' - className="place-items-center" onClick={() => setTaskModalOpen(true)} />