feat: redesign powerby
This commit is contained in:
@@ -11,6 +11,7 @@ import { Loader2, CheckCircle2, MapPin, Navigation, Milestone } from "lucide-rea
|
|||||||
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
||||||
import { DataTable } from "@/components/data-table"
|
import { DataTable } from "@/components/data-table"
|
||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
import {
|
import {
|
||||||
fetchProjects,
|
fetchProjects,
|
||||||
fetchPackagesByProject,
|
fetchPackagesByProject,
|
||||||
@@ -341,12 +342,7 @@ export default function CreateLocationPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-8 text-center">
|
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import {
|
|||||||
type PackageUpdate
|
type PackageUpdate
|
||||||
} from "@/lib/api"
|
} from "@/lib/api"
|
||||||
import { toast } from "sonner"
|
import { toast } from "sonner"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
|
|
||||||
export default function CreatePackagePage() {
|
export default function CreatePackagePage() {
|
||||||
const [packages, setPackages] = useState<PackageType[]>([])
|
const [packages, setPackages] = useState<PackageType[]>([])
|
||||||
@@ -245,12 +246,7 @@ export default function CreatePackagePage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-8 text-center">
|
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { DataTable } from "@/components/data-table"
|
|||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
import { createProject, fetchProjects, updateProject, deleteProject, type ProjectCreate, type Project, type ProjectUpdate } from "@/lib/api"
|
import { createProject, fetchProjects, updateProject, deleteProject, type ProjectCreate, type Project, type ProjectUpdate } from "@/lib/api"
|
||||||
import { toast } from "sonner"
|
import { toast } from "sonner"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
|
|
||||||
export default function CreateProjectPage() {
|
export default function CreateProjectPage() {
|
||||||
const [projects, setProjects] = useState<Project[]>([])
|
const [projects, setProjects] = useState<Project[]>([])
|
||||||
@@ -226,12 +227,7 @@ export default function CreateProjectPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-8 text-center">
|
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
@@ -393,7 +389,7 @@ export default function CreateProjectPage() {
|
|||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={isSubmitting || !name.trim()}
|
disabled={isSubmitting || !name.trim()}
|
||||||
className="flex-1 bg-gradient-to-r from-blue-500 via-indigo-500 to-blue-700 hover:bg-blue-600 text-white"
|
className="flex-1 bg-linear-to-r from-blue-500 via-indigo-500 to-blue-700 hover:bg-blue-600 text-white"
|
||||||
>
|
>
|
||||||
{isSubmitting ? (
|
{isSubmitting ? (
|
||||||
<span className="flex items-center gap-2">
|
<span className="flex items-center gap-2">
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import {
|
|||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { Filter } from "lucide-react";
|
import { Filter } from "lucide-react";
|
||||||
import { DashboardSkeleton } from "@/components/dashboard/dashboard-skeleton"
|
import { DashboardSkeleton } from "@/components/dashboard/dashboard-skeleton"
|
||||||
|
import { PoweredBy } from "@/components/powered-by";
|
||||||
|
|
||||||
const API_URL = process.env.NEXT_PUBLIC_API_URL;
|
const API_URL = process.env.NEXT_PUBLIC_API_URL;
|
||||||
|
|
||||||
@@ -609,12 +610,7 @@ export default function DashboardPage() {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-8 text-center">
|
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -211,6 +211,9 @@ body[data-scroll-locked] {
|
|||||||
.heading-blue-gradient {
|
.heading-blue-gradient {
|
||||||
@apply bg-linear-to-r from-blue-400 to-blue-600 bg-clip-text text-transparent;
|
@apply bg-linear-to-r from-blue-400 to-blue-600 bg-clip-text text-transparent;
|
||||||
}
|
}
|
||||||
|
.powered-blue-gradient {
|
||||||
|
@apply bg-linear-to-b from-[#225999] to-[#56A5FF] bg-clip-text text-transparent;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-blue-gradient {
|
.btn-blue-gradient {
|
||||||
@apply text-white bg-linear-to-r from-blue-400 to-blue-600 hover:bg-linear-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium transition-all duration-200;
|
@apply text-white bg-linear-to-r from-blue-400 to-blue-600 hover:bg-linear-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium transition-all duration-200;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import { NavigationMenu } from "@/components/navigation-menu"
|
import { NavigationMenu } from "@/components/navigation-menu"
|
||||||
import { DashboardMap } from "@/components/dashboard/dashboard-map"
|
import { DashboardMap } from "@/components/dashboard/dashboard-map"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
|
|
||||||
export default function MapPage() {
|
export default function MapPage() {
|
||||||
return (
|
return (
|
||||||
@@ -41,12 +42,7 @@ export default function MapPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-8 text-center">
|
|
||||||
<p className="text-sm text-muted-foreground">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { SidebarNavigation } from "@/components/sidebar-navigation"
|
|||||||
import { type SessionContext, saveSession } from "@/lib/api"
|
import { type SessionContext, saveSession } from "@/lib/api"
|
||||||
import { TrendingUp } from "lucide-react"
|
import { TrendingUp } from "lucide-react"
|
||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
|
|
||||||
const ProjectSelectionSection = dynamic(
|
const ProjectSelectionSection = dynamic(
|
||||||
() => import("@/components/project-selection-section").then(mod => mod.ProjectSelectionSection),
|
() => import("@/components/project-selection-section").then(mod => mod.ProjectSelectionSection),
|
||||||
@@ -44,12 +45,7 @@ export default function NewAnalysisPage() {
|
|||||||
<ProjectSelectionSection onSelectionComplete={handleSelectionComplete} />
|
<ProjectSelectionSection onSelectionComplete={handleSelectionComplete} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-12 text-center">
|
|
||||||
<p className="text-sm text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { Loader2, TrendingUp } from "lucide-react"
|
|||||||
import VideoPlayerSection from "@/components/video-player-section"
|
import VideoPlayerSection from "@/components/video-player-section"
|
||||||
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
import {
|
import {
|
||||||
type SessionContext,
|
type SessionContext,
|
||||||
loadSession,
|
loadSession,
|
||||||
@@ -167,6 +168,7 @@ export default function VideoResultsPage() {
|
|||||||
projectId={session?.projectId || undefined}
|
projectId={session?.projectId || undefined}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
<PoweredBy />
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/com
|
|||||||
import { Loader2, TrendingUp } from "lucide-react"
|
import { Loader2, TrendingUp } from "lucide-react"
|
||||||
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
import {
|
import {
|
||||||
type SessionContext,
|
type SessionContext,
|
||||||
loadSession,
|
loadSession,
|
||||||
@@ -224,11 +225,7 @@ export default function VideoProcessingPage() {
|
|||||||
</div>
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<div className="mt-4 text-center">
|
<PoweredBy />
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@
|
|||||||
import { Loader2, TrendingUp } from "lucide-react"
|
import { Loader2, TrendingUp } from "lucide-react"
|
||||||
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
import { SidebarNavigation } from "@/components/sidebar-navigation"
|
||||||
import { PageHeader } from "@/components/page-header"
|
import { PageHeader } from "@/components/page-header"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
import {
|
import {
|
||||||
type SessionContext,
|
type SessionContext,
|
||||||
loadSession,
|
loadSession,
|
||||||
@@ -358,12 +359,7 @@ export default function UploadPage() {
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
{/* Footer */}
|
<PoweredBy />
|
||||||
<div className="mt-4 text-center">
|
|
||||||
<p className="text-xs text-gray-400 dark:text-gray-500">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import {
|
|||||||
MapPin,
|
MapPin,
|
||||||
Map
|
Map
|
||||||
} from "lucide-react"
|
} from "lucide-react"
|
||||||
|
import { PoweredBy } from "@/components/powered-by"
|
||||||
|
|
||||||
interface NavItem {
|
interface NavItem {
|
||||||
title: string
|
title: string
|
||||||
@@ -140,11 +141,8 @@ export function NavigationMenu() {
|
|||||||
})}
|
})}
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{/* Footer */}
|
<div className="absolute bottom-4 left-4 right-4">
|
||||||
<div className="absolute bottom-4 left-4 right-4 text-center">
|
<PoweredBy />
|
||||||
<p className="text-xs text-gray-400">
|
|
||||||
Sentient Geeks Pvt. Ltd.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</SheetContent>
|
</SheetContent>
|
||||||
</Sheet>
|
</Sheet>
|
||||||
|
|||||||
18
components/powered-by.tsx
Normal file
18
components/powered-by.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import Image from "next/image"
|
||||||
|
|
||||||
|
export function PoweredBy() {
|
||||||
|
return (
|
||||||
|
<div className="mt-8 flex items-center justify-center gap-2 transition-opacity duration-300">
|
||||||
|
<span className="font-medium powered-blue-gradient">
|
||||||
|
Powered by
|
||||||
|
</span>
|
||||||
|
<Image
|
||||||
|
src="/sg.svg"
|
||||||
|
alt="Sentient Geeks"
|
||||||
|
width={130}
|
||||||
|
height={20}
|
||||||
|
className="fill-blue-500"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
9
public/sg.svg
Normal file
9
public/sg.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 42 KiB |
Reference in New Issue
Block a user