From a1261b2169015d3020c1868bcce0ad9328bbe48c Mon Sep 17 00:00:00 2001 From: Chop <28534054+RChopin@users.noreply.github.com> Date: Mon, 2 Jun 2025 23:41:49 +0200 Subject: [PATCH] Refactor Project Tasks and Task Templates pages with new UI components - Introduced PageContainer and PageHeader components for consistent layout. - Added SearchBar and FilterBar components for improved task filtering and searching. - Implemented LoadingState component for better loading indication. - Updated ProjectTasksPage to utilize new components and enhance user experience. - Refactored TaskTemplatesPage to use PageContainer and PageHeader for better structure. - Created FilterBar component to manage filter options dynamically. - Added SearchBar component for searching tasks with clear functionality. - Introduced States component for loading and error states. --- src/app/contracts/page.js | 189 ++++------ src/app/page.js | 585 +++++++++++++++-------------- src/app/projects/[id]/page.js | 358 +++++++++--------- src/app/projects/page.js | 356 +++++++----------- src/app/tasks/page.js | 565 +++++++++++++--------------- src/app/tasks/templates/page.js | 151 ++++---- src/components/ui/FilterBar.js | 30 ++ src/components/ui/PageContainer.js | 11 + src/components/ui/PageHeader.js | 15 + src/components/ui/SearchBar.js | 86 +++++ src/components/ui/States.js | 113 ++++++ 11 files changed, 1283 insertions(+), 1176 deletions(-) create mode 100644 src/components/ui/FilterBar.js create mode 100644 src/components/ui/PageContainer.js create mode 100644 src/components/ui/PageHeader.js create mode 100644 src/components/ui/SearchBar.js create mode 100644 src/components/ui/States.js diff --git a/src/app/contracts/page.js b/src/app/contracts/page.js index 7ee221d..ed221e0 100644 --- a/src/app/contracts/page.js +++ b/src/app/contracts/page.js @@ -5,6 +5,11 @@ import Link from "next/link"; import { Card, CardHeader, CardContent } from "@/components/ui/Card"; import Button from "@/components/ui/Button"; import Badge from "@/components/ui/Badge"; +import PageContainer from "@/components/ui/PageContainer"; +import PageHeader from "@/components/ui/PageHeader"; +import SearchBar from "@/components/ui/SearchBar"; +import FilterBar from "@/components/ui/FilterBar"; +import { LoadingState } from "@/components/ui/States"; export default function ContractsMainPage() { const [contracts, setContracts] = useState([]); @@ -162,37 +167,75 @@ export default function ContractsMainPage() { }; if (loading) { return ( -
Ładowanie umów...
-- Zarządzaj swoimi umowami i kontraktami -
-- Overview of your projects and tasks -
-- Total Projects -
-- {stats.totalProjects} -
+ {loading ? ( ++ Total Projects +
++ {stats.totalProjects} +
+- Active Projects -
-- {stats.activeProjects} -
++ Active Projects +
++ {stats.activeProjects} +
+- Pending Tasks -
-- {stats.pendingTasks} -
++ Pending Tasks +
++ {stats.pendingTasks} +
+- Completed Tasks -
-- {stats.completedTasks} -
++ Completed Tasks +
++ {stats.completedTasks} +
+No projects yet.
+ + + ++ {project.city} • Due: {project.finish_date} +
+No projects yet.
- - - -- {project.city} • Due: {project.finish_date} -
-+ Create a new project +
- Create a new project -
+ ++ Add a new contract +
+- Add a new contract -
+ ++ Create task template +
+- Create task template -
-Project not found.
@@ -29,7 +30,7 @@ export default async function ProjectViewPage({ params }) {{project.city}
-{project.address}
-{project.plot}
-{project.district}
-{project.unit}
-{project.finish_date}
-{project.wp}
-{project.investment_number}
-{project.contact}
-{project.notes}
-{project.contract_number}
-{project.contract_name}
-{project.customer}
-{project.investor}
-No notes yet.
+{project.city}
{n.note_date}
-{n.note}
-{project.address}
+{project.plot}
+{project.district}
+{project.unit}
+{project.finish_date}
+{project.wp}
+{project.investment_number}
+{project.contact}
+{project.notes}
{project.contract_number}
+{project.contract_name}
+{project.customer}
+{project.investor}
+No notes yet.
+{n.note_date}
+{n.note}
+Manage and track your projects
-Loading tasks...
-- Monitor and manage tasks across all projects -
-- Total Tasks -
-- {statusCounts.all} -
-Pending
-- {statusCounts.pending} -
-- In Progress -
-- {statusCounts.in_progress} -
-Completed
-- {statusCounts.completed} -
-