PreRelease v2
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import { auth } from "@clerk/nextjs/server";
|
||||
import { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Contracts | LexiChain",
|
||||
description: "Upload, manage, and analyze your financial contracts with LexiChain's AI.",
|
||||
};
|
||||
|
||||
export default async function ContactsLayout({
|
||||
children,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
"use client";
|
||||
|
||||
import { ContractUploadForm } from "@/components/views/dashboard/contract-upload-form";
|
||||
import { EmptyContractsState } from "@/components/views/dashboard/empty-contracts-state";
|
||||
import { ContractsList } from "@/components/views/dashboard/contracts-list";
|
||||
import { ContactsHeader } from "@/components/views/dashboard/contacts-header";
|
||||
import { ContractUploadForm } from "@/features/contracts/components/forms/contract-upload-form";
|
||||
import { EmptyContractsState } from "@/features/contracts/components/list/empty-contracts-state";
|
||||
import { ContractsList } from "@/features/contracts/components/list/contracts-list";
|
||||
import { ContactsHeader } from "@/components/layout/contacts-header";
|
||||
import { useState, useEffect } from "react";
|
||||
import { getContracts } from "@/lib/actions/contract.action";
|
||||
import { getContracts } from "@/features/contracts/api/contract.action";
|
||||
import { Card } from "@/components/ui/card";
|
||||
|
||||
export default function ContactsPage() {
|
||||
|
||||
@@ -19,13 +19,14 @@ import {
|
||||
} from "lucide-react";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { getStatsAction } from "@/lib/actions/stats.action";
|
||||
import { checkDeadlineNotifications } from "@/lib/actions/notification.action";
|
||||
import {
|
||||
ContractStatusChart,
|
||||
ContractTypeChart,
|
||||
TrendChart,
|
||||
} from "@/components/views/dashboard/charts";
|
||||
import { getStatsAction } from "@/features/analytics/api/stats.action";
|
||||
import { checkDeadlineNotifications } from "@/features/notifications/api/notification.action";
|
||||
import dynamic from "next/dynamic";
|
||||
|
||||
// Dynamically import heavy charting libraries to dramatically improve initial load and rendering time
|
||||
const ContractStatusChart = dynamic(() => import("@/features/analytics/components/charts").then(mod => mod.ContractStatusChart), { ssr: false, loading: () => <div className="h-full w-full animate-pulse bg-muted/30 rounded-lg"></div> });
|
||||
const ContractTypeChart = dynamic(() => import("@/features/analytics/components/charts").then(mod => mod.ContractTypeChart), { ssr: false, loading: () => <div className="h-full w-full animate-pulse bg-muted/30 rounded-lg"></div> });
|
||||
const TrendChart = dynamic(() => import("@/features/analytics/components/charts").then(mod => mod.TrendChart), { ssr: false, loading: () => <div className="h-full w-full animate-pulse bg-muted/30 rounded-lg"></div> });
|
||||
|
||||
interface DashboardStats {
|
||||
totalContracts: number;
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import { auth } from "@clerk/nextjs/server";
|
||||
import { redirect } from "next/navigation";
|
||||
import { DashboardNavigation } from "@/components/views/dashboard/navigation";
|
||||
import { DashboardNavigation } from "@/components/layout/navigation";
|
||||
import { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Dashboard | LexiChain Contract Intelligence",
|
||||
description: "View and manage your AI-processed financial contracts, analytics, and metrics in real time.",
|
||||
};
|
||||
|
||||
export default async function DashboardLayout({
|
||||
children,
|
||||
|
||||
Reference in New Issue
Block a user