Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| efad019538 | |||
| 87421ba2c1 | |||
| 1c0b8afee1 | |||
| df44163cb1 | |||
| bb09e4e2e3 | |||
| 1e852ebe19 | |||
| e876f6d88a | |||
| c0fda72f09 | |||
| 58ef12a4e3 | |||
| 195df9ab56 | |||
| 30d13c3ecc | |||
| 9f050d5e70 | |||
| 2d347eb078 | |||
| af292d62dc | |||
| ddf7bca905 | |||
| 5ac2221e1b | |||
| e1095b0228 |
@@ -3,6 +3,7 @@
|
|||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
import MediaAbout from '@/components/sections/about/MediaAbout';
|
||||||
|
|
||||||
interface FooterProps {
|
interface FooterProps {
|
||||||
brandName?: string;
|
brandName?: string;
|
||||||
@@ -34,11 +35,12 @@ const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navIte
|
|||||||
export default function AboutPage() {
|
export default function AboutPage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{name: "Home", id: "home", href: "/"},
|
{name: "Home", id: "home", href: "/"},
|
||||||
{name: "About us", id: "about", href: "/about"},
|
{name: "About us", id: "about-us", href: "/about"},
|
||||||
|
{name: "Services", id: "services", href: "/services"},
|
||||||
{name: "Products", id: "products", href: "/products"},
|
{name: "Products", id: "products", href: "/products"},
|
||||||
{name: "Achievements", id: "achievements", href: "/portfolio"},
|
{name: "Achievements", id: "achievements", href: "/portfolio"},
|
||||||
{name: "News", id: "news", href: "/portfolio"},
|
{name: "News", id: "news", href: "/portfolio"},
|
||||||
{name: "Contact us", id: "contact", href: "/contact"}
|
{name: "Contact us", id: "contact-us", href: "/contact"}
|
||||||
];
|
];
|
||||||
|
|
||||||
const navbarProps = {
|
const navbarProps = {
|
||||||
@@ -62,13 +64,20 @@ export default function AboutPage() {
|
|||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
||||||
</div>
|
</div>
|
||||||
{/*
|
|
||||||
Due to an empty sectionRegistry, no sections can be rendered on this page.
|
<main>
|
||||||
This site will only display the Navbar and Footer.
|
<div id="about-section" data-section="about-section">
|
||||||
*/}
|
<MediaAbout
|
||||||
<main className="min-h-[calc(10vh)] flex items-center justify-center">
|
title="Dedicated to Innovation and Excellence"
|
||||||
<h1 className="text-3xl md:text-5xl font-bold text-center">About Nexsoft Australia</h1>
|
description="At Nexsoft Australia, we are a passionate team committed to transforming ideas into cutting-edge software solutions. With years of experience and a deep understanding of modern technology trends, we empower businesses to achieve their goals through robust, scalable, and user-friendly applications. Our focus is on delivering exceptional value and fostering long-term partnerships."
|
||||||
|
imageSrc="https://picsum.photos/seed/aboutcompany/1920/1080?_wi=1"
|
||||||
|
imageAlt="Team collaborating"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
ariaLabel="About Our Company Section"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
|
|||||||
168
src/app/contact/page.tsx
Normal file
168
src/app/contact/page.tsx
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
|
import Input from '@/components/form/Input';
|
||||||
|
import Link from "next/link";
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
interface FooterProps {
|
||||||
|
brandName?: string;
|
||||||
|
navItems: Array<{ name: string; href: string; }>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navItems }) => {
|
||||||
|
return (
|
||||||
|
<footer className="w-full py-8 bg-card text-foreground border-t border-accent mt-16">
|
||||||
|
<div className="mx-auto px-4 md:px-6 max-w-7xl flex flex-col md:flex-row justify-between items-center gap-4">
|
||||||
|
<div className="text-lg font-bold">
|
||||||
|
{brandName}
|
||||||
|
</div>
|
||||||
|
<nav className="flex flex-wrap justify-center gap-6">
|
||||||
|
{navItems.map((item) => (
|
||||||
|
<Link key={item.href} href={item.href} className="text-foreground hover:text-primary-cta">
|
||||||
|
{item.name}
|
||||||
|
</Link>
|
||||||
|
))}
|
||||||
|
</nav>
|
||||||
|
<div className="text-sm text-foreground/80">
|
||||||
|
© {new Date().getFullYear()} {brandName}. All rights reserved.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export default function ContactPage() {
|
||||||
|
const [name, setName] = useState('');
|
||||||
|
const [email, setEmail] = useState('');
|
||||||
|
const [message, setMessage] = useState('');
|
||||||
|
|
||||||
|
const navItems = [
|
||||||
|
{name: "Home", id: "home", href: "/"},
|
||||||
|
{name: "About us", id: "about", href: "/about"},
|
||||||
|
{name: "Products", id: "products", href: "/products"},
|
||||||
|
{name: "Achievements", id: "achievements", href: "/portfolio"},
|
||||||
|
{name: "News", id: "news", href: "/portfolio"},
|
||||||
|
{name: "Contact us", id: "contact", href: "/contact"}
|
||||||
|
];
|
||||||
|
|
||||||
|
const navbarProps = {
|
||||||
|
brandName: "Nexsoft Australia", navItems: navItems,
|
||||||
|
button: {text: "Get a Quote", href: "/contact"}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSubmit = (e: React.FormEvent) => {
|
||||||
|
e.preventDefault();
|
||||||
|
// Handle form submission logic here
|
||||||
|
console.log({ name, email, message });
|
||||||
|
alert('Message sent successfully!');
|
||||||
|
setName('');
|
||||||
|
setEmail('');
|
||||||
|
setMessage('');
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-magnetic"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="largeSmall"
|
||||||
|
background="blurBottom"
|
||||||
|
cardStyle="gradient-radial"
|
||||||
|
primaryButtonStyle="primary-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="normal"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
||||||
|
</div>
|
||||||
|
<main className="min-h-[calc(100vh-16rem)] flex flex-col items-center p-8 bg-background">
|
||||||
|
<h1 className="text-4xl md:text-6xl font-bold text-center mb-12 text-foreground">Contact Us</h1>
|
||||||
|
|
||||||
|
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 w-full max-w-6xl">
|
||||||
|
<section className="bg-card p-8 rounded-lg shadow-lg flex flex-col border border-accent">
|
||||||
|
<h2 className="text-3xl font-semibold mb-6 text-foreground">Send us a Message</h2>
|
||||||
|
<form onSubmit={handleSubmit} className="space-y-6 flex-grow flex flex-col">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="name" className="block text-sm font-medium text-foreground mb-2">
|
||||||
|
Name
|
||||||
|
</label>
|
||||||
|
<Input
|
||||||
|
id="name"
|
||||||
|
value={name}
|
||||||
|
onChange={setName}
|
||||||
|
placeholder="Your Name"
|
||||||
|
required
|
||||||
|
className="w-full p-3 rounded-md bg-background border border-accent text-foreground focus:ring-primary-cta focus:border-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="email" className="block text-sm font-medium text-foreground mb-2">
|
||||||
|
Email
|
||||||
|
</label>
|
||||||
|
<Input
|
||||||
|
id="email"
|
||||||
|
type="email"
|
||||||
|
value={email}
|
||||||
|
onChange={setEmail}
|
||||||
|
placeholder="your@example.com"
|
||||||
|
required
|
||||||
|
className="w-full p-3 rounded-md bg-background border border-accent text-foreground focus:ring-primary-cta focus:border-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="flex-grow flex flex-col">
|
||||||
|
<label htmlFor="message" className="block text-sm font-medium text-foreground mb-2">
|
||||||
|
Message
|
||||||
|
</label>
|
||||||
|
<textarea
|
||||||
|
id="message"
|
||||||
|
value={message}
|
||||||
|
onChange={(e) => setMessage(e.target.value)}
|
||||||
|
placeholder="Your message"
|
||||||
|
rows={6}
|
||||||
|
required
|
||||||
|
className="w-full p-3 rounded-md bg-background border border-accent text-foreground focus:ring-primary-cta focus:border-primary-cta flex-grow resize-y"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="w-full bg-primary-cta text-white font-bold py-3 px-6 rounded-md hover:opacity-90 transition-opacity"
|
||||||
|
>
|
||||||
|
Send Message
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section className="bg-card p-8 rounded-lg shadow-lg flex flex-col border border-accent">
|
||||||
|
<h2 className="text-3xl font-semibold mb-6 text-foreground">Find Us on the Map</h2>
|
||||||
|
<div className="relative h-96 w-full rounded-md overflow-hidden flex-grow">
|
||||||
|
<iframe
|
||||||
|
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3153.284728033604!2d144.96305731531634!3d-37.81627957975191!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6ad642b58897811f%3A0xf63a7f8b9e6e8a0!2sFederation%20Square!5e0!3m2!1sen!2sau!4v1678901234567!5m2!1sen!2sau"
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
style={{ border: 0 }}
|
||||||
|
allowFullScreen={true}
|
||||||
|
loading="lazy"
|
||||||
|
referrerPolicy="no-referrer-when-downgrade"
|
||||||
|
title="Google Maps Location"
|
||||||
|
className="absolute inset-0"
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
<div className="mt-6 text-foreground">
|
||||||
|
<p className="font-semibold">Our Address:</p>
|
||||||
|
<p>123 Business Street, Suite 400</p>
|
||||||
|
<p>Melbourne, VIC 3000</p>
|
||||||
|
<p>Australia</p>
|
||||||
|
<p className="mt-4 font-semibold">Phone: <Link href="tel:+61-3-1234-5678" className="text-primary-cta hover:underline">+61 3 1234 5678</Link></p>
|
||||||
|
<p className="font-semibold">Email: <Link href="mailto:info@nexsoft.com.au" className="text-primary-cta hover:underline">info@nexsoft.com.au</Link></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -62,14 +62,39 @@ export default function PortfolioPage() {
|
|||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
||||||
</div>
|
</div>
|
||||||
{/*
|
<main className="min-h-[calc(100vh-16rem)] flex flex-col items-center justify-center p-8 bg-background">
|
||||||
Due to an empty sectionRegistry, no sections can be rendered on this page.
|
<h1 className="text-4xl md:text-6xl font-bold text-center mb-8 text-foreground">Our Portfolio</h1>
|
||||||
This site will only display the Navbar and Footer.
|
<p className="text-lg text-center max-w-3xl text-foreground/80">
|
||||||
*/}
|
Explore a selection of our recent projects and client success stories.
|
||||||
<main className="min-h-[calc(10vh)] flex items-center justify-center">
|
</p>
|
||||||
<h1 className="text-3xl md:text-5xl font-bold text-center">Our Portfolio & News</h1>
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mt-12 w-full max-w-6xl">
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Alpha</h3>
|
||||||
|
<p className="text-foreground/80">A cutting-edge web application for data visualization.</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Beta</h3>
|
||||||
|
<p className="text-foreground/80">Mobile app development for a leading e-commerce brand.</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Gamma</h3>
|
||||||
|
<p className="text-foreground/80">Enterprise-level CRM system integration and customization.</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Delta</h3>
|
||||||
|
<p className="text-foreground/80">Cloud infrastructure migration and optimization.</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Epsilon</h3>
|
||||||
|
<p className="text-foreground/80">AI-powered analytics platform development.</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card p-6 rounded-lg shadow-lg border border-accent">
|
||||||
|
<h3 className="text-xl font-semibold mb-2 text-foreground">Project Zeta</h3>
|
||||||
|
<p className="text-foreground/80">Custom blockchain solution for secure transactions.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
102
src/app/services/page.tsx
Normal file
102
src/app/services/page.tsx
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
|
import Link from "next/link";
|
||||||
|
import FeatureCardTwentyFour from '@/components/sections/feature/FeatureCardTwentyFour';
|
||||||
|
|
||||||
|
interface FooterProps {
|
||||||
|
brandName?: string;
|
||||||
|
navItems: Array<{ name: string; href: string; }>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navItems }) => {
|
||||||
|
return (
|
||||||
|
<footer className="w-full py-8 bg-card text-foreground border-t border-accent mt-16">
|
||||||
|
<div className="mx-auto px-4 md:px-6 max-w-7xl flex flex-col md:flex-row justify-between items-center gap-4">
|
||||||
|
<div className="text-lg font-bold">
|
||||||
|
{brandName}
|
||||||
|
</div>
|
||||||
|
<nav className="flex flex-wrap justify-center gap-6">
|
||||||
|
{navItems.map((item) => (
|
||||||
|
<Link key={item.href} href={item.href} className="text-foreground hover:text-primary-cta">
|
||||||
|
{item.name}
|
||||||
|
</Link>
|
||||||
|
))}
|
||||||
|
</nav>
|
||||||
|
<div className="text-sm text-foreground/80">
|
||||||
|
© {new Date().getFullYear()} {brandName}. All rights reserved.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function ServicesPage() {
|
||||||
|
const navItems = [
|
||||||
|
{name: "Home", id: "home", href: "/"},
|
||||||
|
{name: "About us", id: "about-us", href: "/about"},
|
||||||
|
{name: "Services", id: "services", href: "/services"},
|
||||||
|
{name: "Products", id: "products", href: "/products"},
|
||||||
|
{name: "Achievements", id: "achievements", href: "/portfolio"},
|
||||||
|
{name: "News", id: "news", href: "/portfolio"},
|
||||||
|
{name: "Contact us", id: "contact-us", href: "/contact"}
|
||||||
|
];
|
||||||
|
|
||||||
|
const navbarProps = {
|
||||||
|
brandName: "Nexsoft Australia", navItems: navItems,
|
||||||
|
button: {text: "Get a Quote", href: "/contact"}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-magnetic"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="largeSmall"
|
||||||
|
background="blurBottom"
|
||||||
|
cardStyle="gradient-radial"
|
||||||
|
primaryButtonStyle="primary-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="normal"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay {...navbarProps} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div id="services-section" data-section="services-section">
|
||||||
|
<FeatureCardTwentyFour
|
||||||
|
title="Our Comprehensive Services"
|
||||||
|
description="We offer a wide array of professional services tailored to meet your unique business requirements. From initial concept to deployment and ongoing support, we're with you every step of the way."
|
||||||
|
animationType="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
ariaLabel="Our Services Section"
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "web-development", title: "Web Development", author: "Our Team", description: "Modern, responsive websites and web applications tailored to your business needs.", tags: ["Frontend", "Backend", "Full-Stack"],
|
||||||
|
imageSrc: "https://picsum.photos/seed/webdev/800/600?_wi=1", imageAlt: "Web Development"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "mobile-app-development", title: "Mobile App Development", author: "Our Team", description: "Custom iOS and Android applications designed for exceptional user experience and performance.", tags: ["iOS", "Android", "Cross-Platform"],
|
||||||
|
imageSrc: "https://picsum.photos/seed/mobileapp/800/600?_wi=1", imageAlt: "Mobile App Development"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "cloud-solutions", title: "Cloud Solutions", author: "Our Team", description: "Scalable and secure cloud infrastructure, migration, and management services.", tags: ["AWS", "Azure", "GCP"],
|
||||||
|
imageSrc: "https://picsum.photos/seed/cloud/800/600?_wi=1", imageAlt: "Cloud Solutions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "ai-ml", title: "AI & Machine Learning", author: "Our Team", description: "Harnessing data for intelligent insights, automation, and predictive analytics.", tags: ["Data Science", "Automation", "Predictive"],
|
||||||
|
imageSrc: "https://picsum.photos/seed/ai/800/600?_wi=1", imageAlt: "AI & Machine Learning"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<Footer brandName="Nexsoft Australia" navItems={navItems} />
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user