From 34d69be960dc0cdd5c66b12e2bbf312813e824a6 Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 27 Sep 2024 20:55:03 +0300 Subject: [PATCH] Tasks (#175) * tasks * task input * fixed jazz things * create new task ui * feat: simple feature flag --------- Co-authored-by: marshennikovaolga Co-authored-by: Aslam H --- bun.lockb | Bin 487416 -> 498464 bytes web/app/(pages)/tasks/page.tsx | 15 ++ web/app/actions.ts | 13 + .../custom/sidebar/partial/task-section.tsx | 149 +++++++++++ web/components/custom/sidebar/sidebar.tsx | 28 +- web/components/routes/task/TaskForm.tsx | 114 ++++++++ web/components/routes/task/TaskItem.tsx | 26 ++ web/components/routes/task/TaskList.tsx | 23 ++ web/components/routes/task/TaskRoute.tsx | 33 +++ web/lib/schema/index.ts | 7 +- web/lib/schema/tasks.ts | 12 + web/middleware.ts | 3 +- web/package.json | 252 +++++++++--------- 13 files changed, 533 insertions(+), 142 deletions(-) create mode 100644 web/app/(pages)/tasks/page.tsx create mode 100644 web/components/custom/sidebar/partial/task-section.tsx create mode 100644 web/components/routes/task/TaskForm.tsx create mode 100644 web/components/routes/task/TaskItem.tsx create mode 100644 web/components/routes/task/TaskList.tsx create mode 100644 web/components/routes/task/TaskRoute.tsx create mode 100644 web/lib/schema/tasks.ts diff --git a/bun.lockb b/bun.lockb index 69ef0f39632a76c99619b241e7556d27f099ecfb..dc8827a85c0f586201454dcedc088ce0855b8284 100755 GIT binary patch delta 84325 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 delta 78888 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 nG!XKUA888LMZ-G7#DCHb)KQo8*d>z)4x+J0$1 diff --git a/web/app/(pages)/tasks/page.tsx b/web/app/(pages)/tasks/page.tsx new file mode 100644 index 00000000..cabad9b4 --- /dev/null +++ b/web/app/(pages)/tasks/page.tsx @@ -0,0 +1,15 @@ +import { TaskRoute } from "@/components/routes/task/TaskRoute" +import { currentUser } from "@clerk/nextjs/server" +import { notFound } from "next/navigation" +import { get } from "ronin" + +export default async function TaskPage() { + const user = await currentUser() + const flag = await get.featureFlag.with.name("TASK") + + if (!user?.emailAddresses.some(email => flag?.emails.includes(email.emailAddress))) { + notFound() + } + + return +} diff --git a/web/app/actions.ts b/web/app/actions.ts index 14795825..42f598f6 100644 --- a/web/app/actions.ts +++ b/web/app/actions.ts @@ -10,6 +10,19 @@ import { ZSAError } from "zsa" const MAX_FILE_SIZE = 1 * 1024 * 1024 const ALLOWED_FILE_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"] +export const getFeatureFlag = authedProcedure + .input( + z.object({ + name: z.string() + }) + ) + .handler(async ({ input }) => { + const { name } = input + const flag = await get.featureFlag.with.name(name) + + return { flag } + }) + export const sendFeedback = authedProcedure .input( z.object({ diff --git a/web/components/custom/sidebar/partial/task-section.tsx b/web/components/custom/sidebar/partial/task-section.tsx new file mode 100644 index 00000000..203100f7 --- /dev/null +++ b/web/components/custom/sidebar/partial/task-section.tsx @@ -0,0 +1,149 @@ +import Link from "next/link" +import { usePathname } from "next/navigation" +import { cn } from "@/lib/utils" +import { ListOfTasks } from "@/lib/schema/tasks" +import { LaIcon } from "../../la-icon" +import { useEffect, useState } from "react" +import { useAuth, useUser } from "@clerk/nextjs" +import { getFeatureFlag } from "@/app/actions" + +export const TaskSection: React.FC<{ pathname: string }> = ({ pathname }) => { + const me = { root: { tasks: [{ id: "1", title: "Test Task" }] } } + + const taskCount = me?.root.tasks?.length || 0 + const isActive = pathname === "/tasks" + + const [isFetching, setIsFetching] = useState(false) + const [isFeatureActive, setIsFeatureActive] = useState(false) + const { isLoaded, isSignedIn } = useAuth() + const { user } = useUser() + + useEffect(() => { + async function checkFeatureFlag() { + setIsFetching(true) + + if (isLoaded && isSignedIn) { + const [data, err] = await getFeatureFlag({ name: "TASK" }) + + if (err) { + console.error(err) + setIsFetching(false) + return + } + + if (user?.emailAddresses.some(email => data.flag?.emails.includes(email.emailAddress))) { + setIsFeatureActive(true) + } + setIsFetching(false) + } + } + + checkFeatureFlag() + }, [isLoaded, isSignedIn, user]) + + if (!isLoaded || !isSignedIn) { + return
Loading...
+ } + + if (!me) return null + + if (!isFeatureActive) { + return null + } + + return ( +
+ + {isFetching ? ( +
Fetching tasks...
+ ) : ( + + )} +
+ ) +} + +interface TaskSectionHeaderProps { + taskCount: number + isActive: boolean +} + +const TaskSectionHeader: React.FC = ({ taskCount, isActive }) => ( +
+ +

+ Tasks + {taskCount > 0 && {taskCount}} +

+ +
+ //
+ // + //
+) + +interface ListProps { + tasks: ListOfTasks +} + +const List: React.FC = ({ tasks }) => { + const pathname = usePathname() + + return ( +
+ +
+ ) +} + +interface ListItemProps { + label: string + href: string + count: number + isActive: boolean +} + +const ListItem: React.FC = ({ label, href, count, isActive }) => ( +
+
+ +
+ +

{label}

+
+ + {count > 0 && ( + {count} + )} +
+
+) diff --git a/web/components/custom/sidebar/sidebar.tsx b/web/components/custom/sidebar/sidebar.tsx index 64a4f9ae..b1f70df1 100644 --- a/web/components/custom/sidebar/sidebar.tsx +++ b/web/components/custom/sidebar/sidebar.tsx @@ -13,6 +13,7 @@ import { LinkSection } from "./partial/link-section" import { PageSection } from "./partial/page-section" import { TopicSection } from "./partial/topic-section" import { ProfileSection } from "./partial/profile-section" +import { TaskSection } from "./partial/task-section" import { useAccountOrGuest } from "@/lib/providers/jazz-provider" import { LaIcon } from "../la-icon" @@ -114,21 +115,20 @@ const SidebarContent: React.FC = React.memo(() => { const pathname = usePathname() return ( - <> - ) }) diff --git a/web/components/routes/task/TaskForm.tsx b/web/components/routes/task/TaskForm.tsx new file mode 100644 index 00000000..990170a7 --- /dev/null +++ b/web/components/routes/task/TaskForm.tsx @@ -0,0 +1,114 @@ +"use client" +import { useState, useEffect, useRef } from "react" +import { motion, AnimatePresence } from "framer-motion" +import { ListOfTasks, Task } from "@/lib/schema/tasks" +import { Input } from "@/components/ui/input" +import { Button } from "@/components/ui/button" +import { useAccount } from "@/lib/providers/jazz-provider" +import { LaIcon } from "@/components/custom/la-icon" +import { Checkbox } from "@/components/ui/checkbox" +import { format } from "date-fns" + +interface TaskFormProps {} + +export const TaskForm: React.FC = ({}) => { + const [title, setTitle] = useState("") + const [inputVisible, setInputVisible] = useState(false) + const { me } = useAccount({ root: {} }) + const inputRef = useRef(null) + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault() + if (title.trim()) { + if (me?.root?.tasks === undefined) { + if (!me) return + me.root.tasks = ListOfTasks.create([], { owner: me }) + } + + const newTask = Task.create( + { + title, + description: "", + status: "todo", + createdAt: new Date() + // updatedAt: new Date() + }, + { owner: me._owner } + ) + me.root.tasks?.push(newTask) + resetForm() + } + } + + const resetForm = () => { + setTitle("") + setInputVisible(false) + } + + const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === "Escape") { + resetForm() + } else if (e.key === "Backspace" && title.trim() === "") { + resetForm() + } + } + + useEffect(() => { + if (inputVisible && inputRef.current) { + inputRef.current.focus() + } + }, [inputVisible]) + + const formattedDate = format(new Date(), "EEE, MMMM do, yyyy") + + return ( +
+ + {!inputVisible ? ( + + + + ) : ( + +
+ {}} /> + setTitle(e.target.value)} + onKeyDown={handleKeyDown} + // placeholder="Task title" + /> +
+
+ {formattedDate} +
+
+ )} +
+
+ ) +} diff --git a/web/components/routes/task/TaskItem.tsx b/web/components/routes/task/TaskItem.tsx new file mode 100644 index 00000000..e4fd058c --- /dev/null +++ b/web/components/routes/task/TaskItem.tsx @@ -0,0 +1,26 @@ +import { Task } from "@/lib/schema/tasks" +import { Checkbox } from "@/components/ui/checkbox" +import { format } from "date-fns" + +interface TaskItemProps { + task: Task + onUpdateTask: (taskId: string, updates: Partial) => void +} + +export const TaskItem: React.FC = ({ task, onUpdateTask }) => { + const statusChange = (checked: boolean) => { + onUpdateTask(task.id, { status: checked ? "done" : "todo" }) + } + + const formattedDate = format(new Date(task.createdAt), "EEE, MMMM do, yyyy") + + return ( +
  • +
    + +

    {task.title}

    +
    + {formattedDate} +
  • + ) +} diff --git a/web/components/routes/task/TaskList.tsx b/web/components/routes/task/TaskList.tsx new file mode 100644 index 00000000..8478dae3 --- /dev/null +++ b/web/components/routes/task/TaskList.tsx @@ -0,0 +1,23 @@ +import React from "react" +import { ListOfTasks, Task } from "@/lib/schema/tasks" +import { TaskItem } from "./TaskItem" + +interface TaskListProps { + tasks?: ListOfTasks + onUpdateTask: (taskId: string, updates: Partial) => void +} + +export const TaskList: React.FC = ({ tasks, onUpdateTask }) => { + return ( +
      + {tasks?.map( + task => + task?.id && ( +
    • + +
    • + ) + )} +
    + ) +} diff --git a/web/components/routes/task/TaskRoute.tsx b/web/components/routes/task/TaskRoute.tsx new file mode 100644 index 00000000..a2efe5ec --- /dev/null +++ b/web/components/routes/task/TaskRoute.tsx @@ -0,0 +1,33 @@ +"use client" + +import { useAccount } from "@/lib/providers/jazz-provider" +import { Task } from "@/lib/schema/tasks" +import { TaskList } from "./TaskList" +import { TaskForm } from "./TaskForm" +import { LaIcon } from "@/components/custom/la-icon" + +export const TaskRoute: React.FC = () => { + const { me } = useAccount({ root: { tasks: [] } }) + const tasks = me?.root.tasks + console.log(tasks, "tasks here") + + const updateTask = (taskId: string, updates: Partial) => { + if (me?.root?.tasks) { + const taskIndex = me.root.tasks.findIndex(task => task?.id === taskId) + if (taskIndex !== -1) { + Object.assign(me.root.tasks[taskIndex]!, updates) + } + } + } + + return ( +
    +
    + +

    Current Tasks

    +
    + + +
    + ) +} diff --git a/web/lib/schema/index.ts b/web/lib/schema/index.ts index 12ebd60e..8b15d634 100644 --- a/web/lib/schema/index.ts +++ b/web/lib/schema/index.ts @@ -12,6 +12,7 @@ import { CoMap, co, Account, Profile } from "jazz-tools" import { PersonalPageLists } from "./personal-page" import { PersonalLinkLists } from "./personal-link" import { ListOfTopics } from "./master/topic" +import { ListOfTasks } from "./tasks" declare module "jazz-tools" { interface Profile { @@ -32,6 +33,8 @@ export class UserRoot extends CoMap { topicsWantToLearn = co.ref(ListOfTopics) topicsLearning = co.ref(ListOfTopics) topicsLearned = co.ref(ListOfTopics) + + tasks = co.ref(ListOfTasks) } export class LaAccount extends Account { @@ -59,7 +62,9 @@ export class LaAccount extends Account { topicsWantToLearn: ListOfTopics.create([], { owner: this }), topicsLearning: ListOfTopics.create([], { owner: this }), - topicsLearned: ListOfTopics.create([], { owner: this }) + topicsLearned: ListOfTopics.create([], { owner: this }), + + tasks: ListOfTasks.create([], { owner: this }) }, { owner: this } ) diff --git a/web/lib/schema/tasks.ts b/web/lib/schema/tasks.ts new file mode 100644 index 00000000..f96b8df9 --- /dev/null +++ b/web/lib/schema/tasks.ts @@ -0,0 +1,12 @@ +import { co, CoList, CoMap, Encoders } from "jazz-tools" + +export class Task extends CoMap { + title = co.string + description = co.optional.string + status = co.literal("todo", "in_progress", "done") + createdAt = co.encoded(Encoders.Date) + // updatedAt = co.encoded(Encoders.Date) + completedAt = co.optional.encoded(Encoders.Date) +} + +export class ListOfTasks extends CoList.Of(co.ref(Task)) {} diff --git a/web/middleware.ts b/web/middleware.ts index 9081e846..32be843a 100644 --- a/web/middleware.ts +++ b/web/middleware.ts @@ -10,7 +10,8 @@ const ROUTE_PATTERNS = { "/search(.*)", "/settings(.*)", "/tauri(.*)", - "/onboarding(.*)" + "/onboarding(.*)", + "/tasks(.*)" ] } diff --git a/web/package.json b/web/package.json index 0135be5a..ae4a70da 100644 --- a/web/package.json +++ b/web/package.json @@ -1,128 +1,128 @@ { - "name": "web", - "version": "0.1.0", - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint", - "test": "jest" - }, - "dependencies": { - "@clerk/nextjs": "^5.6.0", - "@dnd-kit/core": "^6.1.0", - "@dnd-kit/modifiers": "^7.0.0", - "@dnd-kit/sortable": "^8.0.0", - "@hookform/resolvers": "^3.9.0", - "@nothing-but/force-graph": "^0.9.5", - "@nothing-but/utils": "^0.16.0", - "@omit/react-confirm-dialog": "^1.1.5", - "@omit/react-fancy-switch": "^0.1.3", - "@radix-ui/react-alert-dialog": "^1.1.1", - "@radix-ui/react-avatar": "^1.1.0", - "@radix-ui/react-checkbox": "^1.1.1", - "@radix-ui/react-context-menu": "^2.2.1", - "@radix-ui/react-dialog": "^1.1.1", - "@radix-ui/react-dismissable-layer": "^1.1.0", - "@radix-ui/react-dropdown-menu": "^2.1.1", - "@radix-ui/react-focus-scope": "^1.1.0", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-popover": "^1.1.1", - "@radix-ui/react-scroll-area": "^1.1.0", - "@radix-ui/react-select": "^2.1.1", - "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.0", - "@radix-ui/react-toggle": "^1.1.0", - "@radix-ui/react-toggle-group": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.2", - "@sentry/nextjs": "^8.30.0", - "@tanstack/react-virtual": "^3.10.8", - "@tiptap/core": "^2.7.2", - "@tiptap/extension-blockquote": "^2.7.2", - "@tiptap/extension-bold": "^2.7.2", - "@tiptap/extension-bullet-list": "^2.7.2", - "@tiptap/extension-code": "^2.7.2", - "@tiptap/extension-code-block-lowlight": "^2.7.2", - "@tiptap/extension-color": "^2.7.2", - "@tiptap/extension-document": "^2.7.2", - "@tiptap/extension-dropcursor": "^2.7.2", - "@tiptap/extension-focus": "^2.7.2", - "@tiptap/extension-gapcursor": "^2.7.2", - "@tiptap/extension-hard-break": "^2.7.2", - "@tiptap/extension-heading": "^2.7.2", - "@tiptap/extension-history": "^2.7.2", - "@tiptap/extension-horizontal-rule": "^2.7.2", - "@tiptap/extension-image": "^2.7.2", - "@tiptap/extension-italic": "^2.7.2", - "@tiptap/extension-link": "^2.7.2", - "@tiptap/extension-list-item": "^2.7.2", - "@tiptap/extension-ordered-list": "^2.7.2", - "@tiptap/extension-paragraph": "^2.7.2", - "@tiptap/extension-placeholder": "^2.7.2", - "@tiptap/extension-strike": "^2.7.2", - "@tiptap/extension-task-item": "^2.7.2", - "@tiptap/extension-task-list": "^2.7.2", - "@tiptap/extension-text": "^2.7.2", - "@tiptap/extension-typography": "^2.7.2", - "@tiptap/pm": "^2.7.2", - "@tiptap/react": "^2.7.2", - "@tiptap/starter-kit": "^2.7.2", - "@tiptap/suggestion": "^2.7.2", - "axios": "^1.7.7", - "cheerio": "1.0.0", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.1", - "cmdk": "^1.0.0", - "date-fns": "^3.6.0", - "framer-motion": "^11.5.6", - "geist": "^1.3.1", - "jazz-browser-auth-clerk": "0.8.0", - "jazz-react": "0.8.0", - "jazz-react-auth-clerk": "0.8.0", - "jazz-tools": "0.8.0", - "jotai": "^2.10.0", - "lowlight": "^3.1.0", - "lucide-react": "^0.429.0", - "next": "14.2.10", - "next-themes": "^0.3.0", - "nuqs": "^1.19.1", - "query-string": "^9.1.0", - "react": "^18.3.1", - "react-day-picker": "^8.10.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.53.0", - "react-textarea-autosize": "^8.5.3", - "ronin": "^4.3.1", - "slugify": "^1.6.6", - "sonner": "^1.5.0", - "streaming-markdown": "^0.0.14", - "tailwind-merge": "^2.5.2", - "tailwindcss-animate": "^1.0.7", - "vaul": "^0.9.4", - "zod": "^3.23.8", - "zsa": "^0.6.0", - "zsa-react": "^0.2.3" - }, - "devDependencies": { - "@ronin/learn-anything": "0.0.0-3452357373461", - "@testing-library/jest-dom": "^6.5.0", - "@testing-library/react": "^16.0.1", - "@types/jest": "^29.5.13", - "@types/node": "^22.5.5", - "@types/react": "^18.3.8", - "@types/react-dom": "^18.3.0", - "dotenv": "^16.4.5", - "eslint": "^8.57.1", - "eslint-config-next": "14.2.5", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "postcss": "^8.4.47", - "prettier-plugin-tailwindcss": "^0.6.6", - "tailwindcss": "^3.4.12", - "ts-jest": "^29.2.5", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" - } + "name": "web", + "version": "0.1.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "test": "jest" + }, + "dependencies": { + "@clerk/nextjs": "^5.6.0", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/modifiers": "^7.0.0", + "@dnd-kit/sortable": "^8.0.0", + "@hookform/resolvers": "^3.9.0", + "@nothing-but/force-graph": "^0.9.5", + "@nothing-but/utils": "^0.16.0", + "@omit/react-confirm-dialog": "^1.1.5", + "@omit/react-fancy-switch": "^0.1.3", + "@radix-ui/react-alert-dialog": "^1.1.1", + "@radix-ui/react-avatar": "^1.1.0", + "@radix-ui/react-checkbox": "^1.1.1", + "@radix-ui/react-context-menu": "^2.2.1", + "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-dismissable-layer": "^1.1.0", + "@radix-ui/react-dropdown-menu": "^2.1.1", + "@radix-ui/react-focus-scope": "^1.1.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-popover": "^1.1.1", + "@radix-ui/react-scroll-area": "^1.1.0", + "@radix-ui/react-select": "^2.1.1", + "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-switch": "^1.1.0", + "@radix-ui/react-toggle": "^1.1.0", + "@radix-ui/react-toggle-group": "^1.1.0", + "@radix-ui/react-tooltip": "^1.1.2", + "@sentry/nextjs": "^8.31.0", + "@tanstack/react-virtual": "^3.10.8", + "@tiptap/core": "^2.7.2", + "@tiptap/extension-blockquote": "^2.7.2", + "@tiptap/extension-bold": "^2.7.2", + "@tiptap/extension-bullet-list": "^2.7.2", + "@tiptap/extension-code": "^2.7.2", + "@tiptap/extension-code-block-lowlight": "^2.7.2", + "@tiptap/extension-color": "^2.7.2", + "@tiptap/extension-document": "^2.7.2", + "@tiptap/extension-dropcursor": "^2.7.2", + "@tiptap/extension-focus": "^2.7.2", + "@tiptap/extension-gapcursor": "^2.7.2", + "@tiptap/extension-hard-break": "^2.7.2", + "@tiptap/extension-heading": "^2.7.2", + "@tiptap/extension-history": "^2.7.2", + "@tiptap/extension-horizontal-rule": "^2.7.2", + "@tiptap/extension-image": "^2.7.2", + "@tiptap/extension-italic": "^2.7.2", + "@tiptap/extension-link": "^2.7.2", + "@tiptap/extension-list-item": "^2.7.2", + "@tiptap/extension-ordered-list": "^2.7.2", + "@tiptap/extension-paragraph": "^2.7.2", + "@tiptap/extension-placeholder": "^2.7.2", + "@tiptap/extension-strike": "^2.7.2", + "@tiptap/extension-task-item": "^2.7.2", + "@tiptap/extension-task-list": "^2.7.2", + "@tiptap/extension-text": "^2.7.2", + "@tiptap/extension-typography": "^2.7.2", + "@tiptap/pm": "^2.7.2", + "@tiptap/react": "^2.7.2", + "@tiptap/starter-kit": "^2.7.2", + "@tiptap/suggestion": "^2.7.2", + "axios": "^1.7.7", + "cheerio": "1.0.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "date-fns": "^3.6.0", + "framer-motion": "^11.5.6", + "geist": "^1.3.1", + "jazz-browser-auth-clerk": "0.8.0", + "jazz-react": "0.8.0", + "jazz-react-auth-clerk": "0.8.0", + "jazz-tools": "0.8.0", + "jotai": "^2.10.0", + "lowlight": "^3.1.0", + "lucide-react": "^0.429.0", + "next": "14.2.10", + "next-themes": "^0.3.0", + "nuqs": "^1.19.2", + "query-string": "^9.1.0", + "react": "^18.3.1", + "react-day-picker": "^8.10.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.0", + "react-textarea-autosize": "^8.5.3", + "ronin": "^4.3.1", + "slugify": "^1.6.6", + "sonner": "^1.5.0", + "streaming-markdown": "^0.0.14", + "tailwind-merge": "^2.5.2", + "tailwindcss-animate": "^1.0.7", + "vaul": "^0.9.4", + "zod": "^3.23.8", + "zsa": "^0.6.0", + "zsa-react": "^0.2.3" + }, + "devDependencies": { + "@ronin/learn-anything": "^0.0.0-3453250405724", + "@testing-library/jest-dom": "^6.5.0", + "@testing-library/react": "^16.0.1", + "@types/jest": "^29.5.13", + "@types/node": "^22.6.1", + "@types/react": "^18.3.8", + "@types/react-dom": "^18.3.0", + "dotenv": "^16.4.5", + "eslint": "^8.57.1", + "eslint-config-next": "14.2.5", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "postcss": "^8.4.47", + "prettier-plugin-tailwindcss": "^0.6.6", + "tailwindcss": "^3.4.13", + "ts-jest": "^29.2.5", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + } }