feat: split layout sections into components

This commit is contained in:
RizqiSyahrendra 2025-04-16 18:57:48 +07:00
parent a04f33d10c
commit da3b65f5aa
6 changed files with 1769 additions and 1723 deletions

View File

@ -1,7 +1,10 @@
import InitialScript from "@/components/InitialScript";
import InitialScript from "@/components/layouts/InitialScript";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { Metadata } from "next";
import { getDefaultMetadata } from "@/utils/metadata";
import Header from "@/components/layouts/Header";
import Footer from "@/components/layouts/Footer";
const geistSans = Geist({
variable: "--font-geist-sans",
@ -13,10 +16,10 @@ const geistMono = Geist_Mono({
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Create Next App",
description: "Generated by create next app",
};
export async function generateMetadata(): Promise<Metadata> {
const metadata = await getDefaultMetadata();
return metadata;
}
export default function RootLayout({
children,
@ -41,7 +44,37 @@ export default function RootLayout({
<link rel="stylesheet" href="css/fonts.css" />
</head>
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
<div className="ie-panel">
<a href="http://windows.microsoft.com/en-US/internet-explorer/">
<img
src="images/ie8-panel/warning_bar_0000_us.jpg"
height="42"
width="820"
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."
/>
</a>
</div>
<div className="preloader">
<div className="banter-loader">
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
</div>
</div>
<div className="page">
<Header />
{children}
<Footer />
</div>
<div className="snackbars" id="form-output-global"></div>
<InitialScript />
</body>
</html>

View File

@ -1,439 +1,6 @@
"use client";
export default function Home() {
return (
<>
<div className="ie-panel">
<a href="http://windows.microsoft.com/en-US/internet-explorer/">
<img
src="images/ie8-panel/warning_bar_0000_us.jpg"
height="42"
width="820"
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."
/>
</a>
</div>
<div className="preloader">
<div className="banter-loader">
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
<div className="banter-loader__box"></div>
</div>
</div>
<div className="page">
<header className="section page-header">
<div className="rd-navbar-wrap">
<nav
className="rd-navbar rd-navbar-classic"
data-layout="rd-navbar-fixed"
data-sm-layout="rd-navbar-fixed"
data-md-layout="rd-navbar-fixed"
data-md-device-layout="rd-navbar-fixed"
data-lg-layout="rd-navbar-static"
data-lg-device-layout="rd-navbar-fixed"
data-xl-layout="rd-navbar-static"
data-xl-device-layout="rd-navbar-static"
data-lg-stick-up-offset="46px"
data-xl-stick-up-offset="46px"
data-xxl-stick-up-offset="46px"
data-lg-stick-up="true"
data-xl-stick-up="true"
data-xxl-stick-up="true"
>
<div className="rd-navbar-aside-outer">
<div className="rd-navbar-aside">
<div
className="rd-navbar-collapse-toggle rd-navbar-fixed-element-1"
data-rd-navbar-toggle=".rd-navbar-collapse"
>
<span></span>
</div>
<ul className="rd-navbar-aside-list rd-navbar-collapse">
<li>
<div className="block-inline unit unit-spacing-xs align-items-center">
<div className="unit-left">
<span className="icon text-middle mdi mdi-phone"></span>
</div>
<div className="unit-body">
<a href="tel:#">1-800-1234-567</a>
</div>
</div>
</li>
<li>
<div className="block-inline unit unit-spacing-xs align-items-center">
<div className="unit-left">
<span className="icon text-middle mdi mdi-email-outline"></span>
</div>
<div className="unit-body">
<a href="mailto:#">info@demolink.org</a>
</div>
</div>
</li>
</ul>
<div className="rd-navbar-aside-item">
<div className="block-inline">
<button
className="unit unit-spacing-xs align-items-center"
data-rd-navbar-toggle="#navbar-login-register"
>
<span className="unit-left">
<span className="icon text-middle mdi mdi-login"></span>
</span>
<span className="unit-body">
<span>Login/Register</span>
</span>
</button>
</div>
<div className="rd-navbar-popup bg-gray-12" id="navbar-login-register">
<div className="tabs-custom tabs-horizontal tabs-line" id="navbar-tabs">
<ul className="nav nav-tabs">
<li className="nav-item" role="presentation">
<a className="nav-link active" href="#navbar-tabs-1" data-toggle="tab">
Login
</a>
</li>
<li className="nav-item" role="presentation">
<a className="nav-link" href="#navbar-tabs-2" data-toggle="tab">
Register
</a>
</li>
</ul>
<div className="tab-content">
<div className="tab-pane fade show active" id="navbar-tabs-1">
<form className="rd-form form-1">
<div className="form-wrap">
<input
className="form-input"
id="navbar-login-email"
type="email"
name="email"
data-constraints="@Email @Required"
/>
<label className="form-label" htmlFor="navbar-login-email">
E-mail
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="navbar-login-password"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="navbar-login-password">
Password
</label>
</div>
<div className="form-wrap">
<button className="button button-sm button-primary button-block" type="submit">
Sign in
</button>
</div>
</form>
</div>
<div className="tab-pane fade" id="navbar-tabs-2">
<form className="rd-form form-1">
<div className="form-wrap">
<input
className="form-input"
id="register-name"
type="text"
name="username"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-name">
Username
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-email"
type="email"
name="email"
data-constraints="@Email @Required"
/>
<label className="form-label" htmlFor="register-email">
E-mail
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-password"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-password">
Password
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-password-confirm"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-password-confirm">
Confirm Password
</label>
</div>
<div className="form-wrap">
<button className="button button-sm button-primary button-block" type="submit">
Create an Account
</button>
</div>
<div className="form-wrap">
<div className="text-decoration-lines">
<span className="text-decoration-lines-content">or enter with</span>
</div>
</div>
<div className="form-wrap">
<div className="button-group">
<a
className="button button-facebook button-icon button-icon-only"
href="#"
aria-label="Facebook"
>
<span className="icon mdi mdi mdi-facebook"></span>
</a>
<a
className="button button-twitter button-icon button-icon-only"
href="#"
aria-label="Twitter"
>
<span className="icon mdi mdi-twitter"></span>
</a>
<a
className="button button-google button-icon button-icon-only"
href="#"
aria-label="Google+"
>
<span className="icon mdi mdi-google"></span>
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="rd-navbar-main-outer">
<div className="rd-navbar-main">
<div className="rd-navbar-panel">
<button className="rd-navbar-toggle" data-rd-navbar-toggle=".rd-navbar-nav-wrap">
<span></span>
</button>
<div className="rd-navbar-brand">
<a className="brand" href="index.html">
<img
className="brand-logo-dark"
src="images/logo-default-142x41.png"
alt=""
width="142"
height="41"
srcSet="images/logo-default-284x82.png 2x"
/>
<img
className="brand-logo-light"
src="images/logo-inverse-121x61.png"
alt=""
width="121"
height="61"
srcSet="images/logo-inverse-284x82.png 2x"
/>
</a>
</div>
</div>
<div className="rd-navbar-nav-wrap">
<ul className="rd-navbar-nav">
<li className="rd-nav-item active">
<a className="rd-nav-link" href="index.html">
Home
</a>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="#">
Properties
</a>
<ul className="rd-menu rd-navbar-dropdown">
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-grid.html">
Properties Grid
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-grid-2.html">
Properties Grid 2
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-list.html">
Properties List
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="submit-property.html">
Submit property
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="single-property.html">
Single Property
</a>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="about-us.html">
About Us
</a>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="blog.html">
Blog
</a>
<ul className="rd-menu rd-navbar-dropdown">
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="blog-post.html">
Blog post
</a>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="#">
Pages
</a>
<ul className="rd-menu rd-navbar-megamenu">
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Pages 1</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="agents.html">
Agents
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="agent-single-page.html">
Agent Single Page
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="careers.html">
Careers
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="gallery.html">
Gallery
</a>
</li>
</ul>
</li>
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Pages 2</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="search-results.html">
Search results
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="coming-soon.html">
Coming Soon
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="404.html">
404
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="privacy-policy.html">
Privacy Policy
</a>
</li>
</ul>
</li>
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Elements</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="typography.html">
Typography
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="buttons.html">
Buttons
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="forms.html">
Forms
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="tabs-and-accordions.html">
Tabs and accordions
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="progress-bars.html">
Progress bars
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="tables.html">
Tables
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="grid-system.html">
Grid System
</a>
</li>
</ul>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="contact-us.html">
Contact Us
</a>
</li>
</ul>
<div className="rd-navbar-main-item">
<a className="button button-sm button-primary" href="#">
Submit property
</a>
</div>
</div>
</div>
</div>
</nav>
</div>
</header>
<section className="section">
<div className="range">
<div className="cell-xl-6_lg box-1-cell height-fill context-dark">
@ -1220,8 +787,8 @@ export default function Home() {
</time>
<div className="quote-modern-main">
<p>
We recently rented an apartment through your site, and have been looked after by James Thompson.
He provided us with utmost support on every property issue.
We recently rented an apartment through your site, and have been looked after by James Thompson. He
provided us with utmost support on every property issue.
</p>
</div>
<div className="quote-modern-meta-outer">
@ -1424,10 +991,10 @@ export default function Home() {
>
<div className="card-body">
<p>
A MyHome salesperson is more than just a sales person. They act on your behalf as your
agent, providing you with advice and guidance and doing a job helping you buy or sell a
home. While it is true they get paid for what they do, so do other professions that provide
advice, guidance.
A MyHome salesperson is more than just a sales person. They act on your behalf as your agent,
providing you with advice and guidance and doing a job helping you buy or sell a home. While
it is true they get paid for what they do, so do other professions that provide advice,
guidance.
</p>
</div>
</div>
@ -1458,10 +1025,10 @@ export default function Home() {
>
<div className="card-body">
<p>
The answer to the question is YES! There are tons of reasons why you should talk with a bank
and get pre-approved before looking at homes. First and foremost, talking with a bank before
looking at homes can help you understand exactly how much you can afford. There is no reason
to look at homes that are listed for $250,000 if you can only afford up to $200,000.
The answer to the question is YES! There are tons of reasons why you should talk with a bank and
get pre-approved before looking at homes. First and foremost, talking with a bank before looking
at homes can help you understand exactly how much you can afford. There is no reason to look at
homes that are listed for $250,000 if you can only afford up to $200,000.
</p>
</div>
</div>
@ -1494,8 +1061,8 @@ export default function Home() {
<p>
Buying a home can be a very solid investment. This being said, renting can also be a better
option for some, depending on the circumstances. The current interest rates are incredible. A
30-year FHA mortgage can be locked in at a rate of around 3.5%. Since the interest rates are
so low, it actually can be cheaper to pay a mortgage right now than paying rent.
30-year FHA mortgage can be locked in at a rate of around 3.5%. Since the interest rates are so
low, it actually can be cheaper to pay a mortgage right now than paying rent.
</p>
</div>
</div>
@ -1526,10 +1093,10 @@ export default function Home() {
>
<div className="card-body">
<p>
Of course you can, but the probability isnt very high. The same can be said about a
rent-to-own property. A common question from home buyers is whether rent-to-owns exist or
whether an owner would consider that option. They are out there, but there are somethings that
you need to know before agreeing to a rent-to-own.
Of course you can, but the probability isnt very high. The same can be said about a rent-to-own
property. A common question from home buyers is whether rent-to-owns exist or whether an owner
would consider that option. They are out there, but there are somethings that you need to know
before agreeing to a rent-to-own.
</p>
</div>
</div>
@ -1560,8 +1127,8 @@ export default function Home() {
<div className="post-default-divider"></div>
<div className="post-default-text">
<p>
Our Principal and Partner, Samuel McMillan, recently celebrated the unveiling of 568 N.
Tigertail Road, a newly-constructed estate
Our Principal and Partner, Samuel McMillan, recently celebrated the unveiling of 568 N. Tigertail
Road, a newly-constructed estate
</p>
</div>
<div className="post-default-time">
@ -1762,31 +1329,6 @@ export default function Home() {
</div>
</div>
</section>
<footer className="section footer-classic context-dark bg-gray-21">
<div className="container">
<div className="row row-10 justify-content-sm-between">
<div className="col-sm-6">
<p className="rights">
<span>MyHome</span> <span>&copy;&nbsp;</span>
<span className="copyright-year"></span>
<span>&nbsp;</span>
<a href="privacy-policy.html">Privacy Policy</a>
</p>
</div>
<div className="col-sm-6 text-sm-right">
<div className="right-1">
<a href="#">
<span className="icon mdi mdi-plus"></span>Submit Property
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<div className="snackbars" id="form-output-global"></div>
</>
);
}

View File

@ -0,0 +1,25 @@
export default function Footer() {
return (
<footer className="section footer-classic context-dark bg-gray-21">
<div className="container">
<div className="row row-10 justify-content-sm-between">
<div className="col-sm-6">
<p className="rights">
<span>MyHome</span> <span>&copy;&nbsp;</span>
<span className="copyright-year"></span>
<span>&nbsp;</span>
<a href="privacy-policy.html">Privacy Policy</a>
</p>
</div>
<div className="col-sm-6 text-sm-right">
<div className="right-1">
<a href="#">
<span className="icon mdi mdi-plus"></span>Submit Property
</a>
</div>
</div>
</div>
</div>
</footer>
);
}

View File

@ -0,0 +1,410 @@
export default function Header() {
return (
<header className="section page-header">
<div className="rd-navbar-wrap">
<nav
className="rd-navbar rd-navbar-classic"
data-layout="rd-navbar-fixed"
data-sm-layout="rd-navbar-fixed"
data-md-layout="rd-navbar-fixed"
data-md-device-layout="rd-navbar-fixed"
data-lg-layout="rd-navbar-static"
data-lg-device-layout="rd-navbar-fixed"
data-xl-layout="rd-navbar-static"
data-xl-device-layout="rd-navbar-static"
data-lg-stick-up-offset="46px"
data-xl-stick-up-offset="46px"
data-xxl-stick-up-offset="46px"
data-lg-stick-up="true"
data-xl-stick-up="true"
data-xxl-stick-up="true"
>
<div className="rd-navbar-aside-outer">
<div className="rd-navbar-aside">
<div
className="rd-navbar-collapse-toggle rd-navbar-fixed-element-1"
data-rd-navbar-toggle=".rd-navbar-collapse"
>
<span></span>
</div>
<ul className="rd-navbar-aside-list rd-navbar-collapse">
<li>
<div className="block-inline unit unit-spacing-xs align-items-center">
<div className="unit-left">
<span className="icon text-middle mdi mdi-phone"></span>
</div>
<div className="unit-body">
<a href="tel:#">1-800-1234-567</a>
</div>
</div>
</li>
<li>
<div className="block-inline unit unit-spacing-xs align-items-center">
<div className="unit-left">
<span className="icon text-middle mdi mdi-email-outline"></span>
</div>
<div className="unit-body">
<a href="mailto:#">info@demolink.org</a>
</div>
</div>
</li>
</ul>
<div className="rd-navbar-aside-item">
<div className="block-inline">
<button
className="unit unit-spacing-xs align-items-center"
data-rd-navbar-toggle="#navbar-login-register"
>
<span className="unit-left">
<span className="icon text-middle mdi mdi-login"></span>
</span>
<span className="unit-body">
<span>Login/Register</span>
</span>
</button>
</div>
<div className="rd-navbar-popup bg-gray-12" id="navbar-login-register">
<div className="tabs-custom tabs-horizontal tabs-line" id="navbar-tabs">
<ul className="nav nav-tabs">
<li className="nav-item" role="presentation">
<a className="nav-link active" href="#navbar-tabs-1" data-toggle="tab">
Login
</a>
</li>
<li className="nav-item" role="presentation">
<a className="nav-link" href="#navbar-tabs-2" data-toggle="tab">
Register
</a>
</li>
</ul>
<div className="tab-content">
<div className="tab-pane fade show active" id="navbar-tabs-1">
<form className="rd-form form-1">
<div className="form-wrap">
<input
className="form-input"
id="navbar-login-email"
type="email"
name="email"
data-constraints="@Email @Required"
/>
<label className="form-label" htmlFor="navbar-login-email">
E-mail
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="navbar-login-password"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="navbar-login-password">
Password
</label>
</div>
<div className="form-wrap">
<button className="button button-sm button-primary button-block" type="submit">
Sign in
</button>
</div>
</form>
</div>
<div className="tab-pane fade" id="navbar-tabs-2">
<form className="rd-form form-1">
<div className="form-wrap">
<input
className="form-input"
id="register-name"
type="text"
name="username"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-name">
Username
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-email"
type="email"
name="email"
data-constraints="@Email @Required"
/>
<label className="form-label" htmlFor="register-email">
E-mail
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-password"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-password">
Password
</label>
</div>
<div className="form-wrap">
<input
className="form-input"
id="register-password-confirm"
type="password"
name="password"
data-constraints="@Required"
/>
<label className="form-label" htmlFor="register-password-confirm">
Confirm Password
</label>
</div>
<div className="form-wrap">
<button className="button button-sm button-primary button-block" type="submit">
Create an Account
</button>
</div>
<div className="form-wrap">
<div className="text-decoration-lines">
<span className="text-decoration-lines-content">or enter with</span>
</div>
</div>
<div className="form-wrap">
<div className="button-group">
<a
className="button button-facebook button-icon button-icon-only"
href="#"
aria-label="Facebook"
>
<span className="icon mdi mdi mdi-facebook"></span>
</a>
<a
className="button button-twitter button-icon button-icon-only"
href="#"
aria-label="Twitter"
>
<span className="icon mdi mdi-twitter"></span>
</a>
<a
className="button button-google button-icon button-icon-only"
href="#"
aria-label="Google+"
>
<span className="icon mdi mdi-google"></span>
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="rd-navbar-main-outer">
<div className="rd-navbar-main">
<div className="rd-navbar-panel">
<button className="rd-navbar-toggle" data-rd-navbar-toggle=".rd-navbar-nav-wrap">
<span></span>
</button>
<div className="rd-navbar-brand">
<a className="brand" href="index.html">
<img
className="brand-logo-dark"
src="images/logo-default-142x41.png"
alt=""
width="142"
height="41"
srcSet="images/logo-default-284x82.png 2x"
/>
<img
className="brand-logo-light"
src="images/logo-inverse-121x61.png"
alt=""
width="121"
height="61"
srcSet="images/logo-inverse-284x82.png 2x"
/>
</a>
</div>
</div>
<div className="rd-navbar-nav-wrap">
<ul className="rd-navbar-nav">
<li className="rd-nav-item active">
<a className="rd-nav-link" href="index.html">
Home
</a>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="#">
Properties
</a>
<ul className="rd-menu rd-navbar-dropdown">
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-grid.html">
Properties Grid
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-grid-2.html">
Properties Grid 2
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="properties-list.html">
Properties List
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="submit-property.html">
Submit property
</a>
</li>
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="single-property.html">
Single Property
</a>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="about-us.html">
About Us
</a>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="blog.html">
Blog
</a>
<ul className="rd-menu rd-navbar-dropdown">
<li className="rd-dropdown-item">
<a className="rd-dropdown-link" href="blog-post.html">
Blog post
</a>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="#">
Pages
</a>
<ul className="rd-menu rd-navbar-megamenu">
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Pages 1</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="agents.html">
Agents
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="agent-single-page.html">
Agent Single Page
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="careers.html">
Careers
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="gallery.html">
Gallery
</a>
</li>
</ul>
</li>
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Pages 2</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="search-results.html">
Search results
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="coming-soon.html">
Coming Soon
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="404.html">
404
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="privacy-policy.html">
Privacy Policy
</a>
</li>
</ul>
</li>
<li className="rd-megamenu-item">
<h6 className="rd-megamenu-title">Elements</h6>
<ul className="rd-megamenu-list">
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="typography.html">
Typography
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="buttons.html">
Buttons
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="forms.html">
Forms
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="tabs-and-accordions.html">
Tabs and accordions
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="progress-bars.html">
Progress bars
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="tables.html">
Tables
</a>
</li>
<li className="rd-megamenu-list-item">
<a className="rd-megamenu-list-link" href="grid-system.html">
Grid System
</a>
</li>
</ul>
</li>
</ul>
</li>
<li className="rd-nav-item">
<a className="rd-nav-link" href="contact-us.html">
Contact Us
</a>
</li>
</ul>
<div className="rd-navbar-main-item">
<a className="button button-sm button-primary" href="#">
Submit property
</a>
</div>
</div>
</div>
</div>
</nav>
</div>
</header>
);
}

36
src/utils/metadata.ts Normal file
View File

@ -0,0 +1,36 @@
import { Metadata } from "next";
import { headers } from "next/headers";
export async function getDefaultMetadata(): Promise<Metadata> {
const headersList = await headers();
const mainUrl = headersList.get("x-main-url") ?? "";
const fullUrl = headersList.get("x-full-url") ?? "";
const siteName = headersList.get("x-site-name") ?? "";
const metaDesc = headersList.get("x-meta-desc") ?? "";
return {
metadataBase: new URL(mainUrl),
title: siteName,
description: metaDesc,
robots: {
index: true,
follow: true,
"max-image-preview": "large",
"max-snippet": -1,
"max-video-preview": -1,
},
openGraph: {
siteName,
description: metaDesc,
type: "website",
locale: "en_US",
url: fullUrl,
},
twitter: {
card: "summary_large_image",
},
alternates: {
canonical: "./",
},
};
}