update
This commit is contained in:
1
src/app/error.tsx
Normal file
1
src/app/error.tsx
Normal file
@@ -0,0 +1 @@
|
||||
"use client";
|
||||
25
src/app/layout.tsx
Normal file
25
src/app/layout.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { Metadata } from 'next';
|
||||
import '../styles/sf-pro-display.css';
|
||||
import '../styles/globals.css';
|
||||
import Header from '@components/layout/Header/Header';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Nguyễn Công PC - Cửa Hàng Máy Tính PC Đồ Hoạ - PC Gaming chuyên nghiệp',
|
||||
description:
|
||||
'Mua máy tính đồ họa, PC gaming, máy tính văn phòng, laptop gaming, PC AI, Build PC, CPU, VGA, màn hình máy tính chính hãng tại Nguyễn Công PC giá rẻ nhất - Giảm giá 50%',
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html suppressHydrationWarning>
|
||||
<body>
|
||||
<Header />
|
||||
{children}
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
3
src/app/loading.tsx
Normal file
3
src/app/loading.tsx
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function Loading() {
|
||||
return <p>Loading...</p>
|
||||
}
|
||||
13
src/app/page.tsx
Normal file
13
src/app/page.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import Image from 'next/image';
|
||||
import SliderHome from '@components/layout/homepage/SliderHome';
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div className="page-hompage mt-12">
|
||||
<div className="container">
|
||||
{/* slider */}
|
||||
<SliderHome />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/components/common/BoxShowroom.tsx
Normal file
38
src/components/common/BoxShowroom.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
const BoxShowroom: React.FC = () => {
|
||||
return(
|
||||
<>
|
||||
<dialog id="boxShowroom" className="modal">
|
||||
<div className="modal-box">
|
||||
<form method="dialog">
|
||||
<button className="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
</form>
|
||||
<div className="popup-showrom-container d-block">
|
||||
<p className="group-title">HỆ THỐNG SHOWROOM</p>
|
||||
<div className="flex flex-wrap justify-between">
|
||||
|
||||
<div className="item">
|
||||
<p className="item-title">1. Hà Nội</p>
|
||||
<p>17 Hà Kế Tấn, Phường Phương Liệt, Hà Nội.</p>
|
||||
<p>Giờ làm việc: <b>08:30 - 20:30</b></p>
|
||||
<div className="map-holder js-map-holder" data-src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3132.222076725264!2d105.83522224518104!3d20.998217116862435!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3135ac7b37915991%3A0xe20876d091ded6bc!2zMTcgUC4gSMOgIEvhur8gVOG6pW4sIFBoxrDGoW5nIExp4buHdCwgVGhhbmggWHXDom4sIEjDoCBO4buZaSwgVmnhu4d0IE5hbQ!5e0!3m2!1svi!2s!4v1720509407173!5m2!1svi!2s"></div>
|
||||
</div>
|
||||
|
||||
<div className="item">
|
||||
<p className="item-title">2. Hồ Chí Minh</p>
|
||||
<p>249 Lý Thường Kiệt, Phường Phú Thọ, TP. Hồ Chí Minh</p>
|
||||
<p>Giờ làm việc: <b>08:30 - 20:30</b></p>
|
||||
<div className="map-holder js-map-holder" data-src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d15678.56730501209!2d106.66439700000001!3d10.762063!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x85a7fc3a74bcd7fd!2zTcOheSBUw61uaCBOZ3V54buFbiBDw7RuZyAxNzYgVMOibiBQaMaw4bubYw!5e0!3m2!1svi!2sus!4v1658936898247!5m2!1svi!2sus"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<label className="modal-backdrop" htmlFor="my_modal_7">Close</label>
|
||||
</dialog>
|
||||
</>
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
export default BoxShowroom;
|
||||
15
src/components/layout/Header/Header.tsx
Normal file
15
src/components/layout/Header/Header.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import HeaderSlider from './HeaderTop';
|
||||
import HeaderMid from './HeaderMid';
|
||||
import HeaderBottom from './HeaderBottom';
|
||||
|
||||
const Header: React.FC = () => {
|
||||
return (
|
||||
<div className="header">
|
||||
<HeaderSlider />
|
||||
<HeaderMid />
|
||||
<HeaderBottom />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Header;
|
||||
68
src/components/layout/Header/HeaderBottom.tsx
Normal file
68
src/components/layout/Header/HeaderBottom.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
'use client';
|
||||
import React, { useState } from 'react';
|
||||
import { FaBars } from 'react-icons/fa';
|
||||
import { menuData } from './menuData';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import HeaderBottomRight from './HeaderBottomRight';
|
||||
|
||||
const HeaderBottom: React.FC = () => {
|
||||
return (
|
||||
<>
|
||||
<div className="header-bottom">
|
||||
<div className="container flex">
|
||||
<div className="global-menu-container">
|
||||
<div className="group-title flex items-center justify-center gap-2">
|
||||
<FaBars size="16" /> <span className="text-[13px]">Danh mục sản phẩm</span>
|
||||
</div>
|
||||
|
||||
<div className="global-menu-holder">
|
||||
{menuData[0].product.all_category.map((item) => (
|
||||
<div key={item.id} className="item">
|
||||
<Link href={item.url} className="cat-1">
|
||||
<Image
|
||||
src={item.thumnail}
|
||||
className="lazy icon-menu entered"
|
||||
alt={item.title}
|
||||
width="1"
|
||||
height="1"
|
||||
/>
|
||||
<span className="cat-title line-clamp-1">{item.title}</span>
|
||||
</Link>
|
||||
|
||||
{/* Cấp 2 & Cấp 3 */}
|
||||
{item.children && item.children.length > 0 && (
|
||||
<div className="sub-menu-list">
|
||||
{item.children.map((_children2) => (
|
||||
<div className="sub-cat-2" key={_children2.id}>
|
||||
<Link href={_children2.url} className="cat-2">
|
||||
{_children2.title}
|
||||
</Link>
|
||||
{/* Cấp 3 */}
|
||||
{_children2.children && _children2.children.length > 0 && (
|
||||
<>
|
||||
{_children2.children.map((_children3) => (
|
||||
<Link key={_children3.id} href={_children3.url}>
|
||||
{_children3.title}
|
||||
</Link>
|
||||
))}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<ul className="list-category-header relative flex w-[calc(100%_-220px)] items-center justify-between gap-12">
|
||||
<HeaderBottomRight />
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default HeaderBottom;
|
||||
112
src/components/layout/Header/HeaderBottomRight.tsx
Normal file
112
src/components/layout/Header/HeaderBottomRight.tsx
Normal file
@@ -0,0 +1,112 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
import { menuData } from './menuData'; // Đảm bảo file này export menuData
|
||||
import Link from 'next/link';
|
||||
import { FaCaretDown } from 'react-icons/fa';
|
||||
|
||||
const HeaderBottomRight: React.FC = () => {
|
||||
// 1. Lọc các ID danh mục hiển thị trên Header (Cấp 1)
|
||||
const allowedIds = ['407', '408', '3300', '281', '3431', '410', '3403'];
|
||||
|
||||
// 2. Hàm lấy Icon và Title dựa theo ID
|
||||
const getCategoryInfo = (id: string) => {
|
||||
switch (id) {
|
||||
case '407':
|
||||
return { icon: 'sprite-laptop', title: 'Laptop' };
|
||||
case '408':
|
||||
return { icon: 'sprite-PC', title: 'PC' };
|
||||
case '3300':
|
||||
return { icon: 'sprite-PC', title: 'PC AI' };
|
||||
case '281':
|
||||
return { icon: 'sprite-manhinh', title: 'Màn hình' };
|
||||
case '3431':
|
||||
return { icon: 'sprite-linhkien', title: 'Linh kiện PC' };
|
||||
case '410':
|
||||
return { icon: 'sprite-phimchuot', title: 'Phím chuột ghế gear' };
|
||||
case '3403':
|
||||
return { icon: 'sprite-thietbi', title: 'Thiết bị văn phòng' };
|
||||
default:
|
||||
return { icon: '', title: '' };
|
||||
}
|
||||
};
|
||||
|
||||
// Lấy danh sách all_category từ menuData[0]
|
||||
const allCategories = menuData[0]?.product?.all_category || [];
|
||||
|
||||
return (
|
||||
<>
|
||||
{allCategories.map((item) => {
|
||||
if (!allowedIds.includes(item.id)) return null;
|
||||
|
||||
const info = getCategoryInfo(item.id);
|
||||
|
||||
return (
|
||||
<li key={item.id} className="item-category-header" data-id={item.id}>
|
||||
<Link href={item.id === '408' ? '#' : item.url} className="flex items-center gap-6">
|
||||
<i className={`sprite-more ${info.icon}`}></i>
|
||||
<span className="title-header-bottom">{info.title}</span>
|
||||
<FaCaretDown size="16" className='text-white' />
|
||||
</Link>
|
||||
|
||||
<div className="list-category-child flex justify-between">
|
||||
<div className="box-left">
|
||||
<ul className="flex flex-wrap gap-8">
|
||||
{item.isParent === '1' && (
|
||||
<>
|
||||
{item.id === '408'
|
||||
? allCategories
|
||||
.filter((c) => ['408', '3201', '1829', '3300', '3691'].includes(c.id))
|
||||
.map((child1) => (
|
||||
<li key={child1.id} className="sub-menu">
|
||||
<Link href={child1.url} className="child-lv2 block font-bold">
|
||||
{child1.title}
|
||||
</Link>
|
||||
{child1.isParent === '1' && (
|
||||
<div className="list-child-lv3 flex-column mt-10 flex">
|
||||
{child1.children?.map((child2) => (
|
||||
<Link key={child2.id} href={child2.url} className="child-lv3">
|
||||
{child2.title}
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</li>
|
||||
))
|
||||
: item.children?.map((_item_child) => (
|
||||
<li key={_item_child.id} className="sub-menu">
|
||||
<Link href={_item_child.url} className="child-lv2 block font-bold">
|
||||
{_item_child.title}
|
||||
</Link>
|
||||
{_item_child.isParent === '1' && (
|
||||
<div className="list-child-lv3 flex-column mt-10 flex">
|
||||
{_item_child.children?.map((_item_childtwo) => (
|
||||
<Link
|
||||
key={_item_childtwo.id}
|
||||
href={_item_childtwo.url}
|
||||
className="child-lv3"
|
||||
>
|
||||
{_item_childtwo.title}
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</li>
|
||||
))}
|
||||
</>
|
||||
)}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className={`box-right flex-1 product-category-${item.id}`}>
|
||||
<p className="title font-weight-700">Bán chạy nhất</p>
|
||||
<div className="list-product-bestsale" id={`product-category-${item.id}`}></div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
);
|
||||
})}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default HeaderBottomRight;
|
||||
141
src/components/layout/Header/HeaderMid.tsx
Normal file
141
src/components/layout/Header/HeaderMid.tsx
Normal file
@@ -0,0 +1,141 @@
|
||||
'use client';
|
||||
import React, { useState } from 'react';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import { FaMapMarkerAlt, FaBars } from 'react-icons/fa';
|
||||
import BoxShowroom from '@components/common/BoxShowroom';
|
||||
|
||||
const HeaderMid: React.FC = () => {
|
||||
const PopupAddress = () => {
|
||||
const modal = document.getElementById('boxShowroom') as HTMLDialogElement;
|
||||
modal?.showModal();
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="header-middle">
|
||||
<div className="container flex items-center justify-between">
|
||||
<div className="header-middle-left d-flex align-items-center">
|
||||
<Link href="/">
|
||||
<Image
|
||||
src="https://nguyencongpc.vn/media/lib/18-02-2025/logowhite-dfvefb.png"
|
||||
width="170"
|
||||
height="38"
|
||||
alt="logo"
|
||||
className="logo-header"
|
||||
/>
|
||||
</Link>
|
||||
<button className="icon-showroom flex items-center justify-center" onClick={PopupAddress}>
|
||||
<FaMapMarkerAlt size={16} />
|
||||
</button>
|
||||
</div>
|
||||
<div className="header-middle-right flex items-center">
|
||||
<div className="header-menu-category">
|
||||
<div className="box-title flex items-center justify-center gap-8">
|
||||
<FaBars size={16} />
|
||||
<p className="title-menu font-weight-500">Danh mục sản phẩm</p>
|
||||
</div>
|
||||
<div className="cau-noi"></div>
|
||||
</div>
|
||||
<div className="header-search-group">
|
||||
<form method="get" action="/tim" name="searchForm">
|
||||
<div className="box-search-input">
|
||||
<input
|
||||
type="text"
|
||||
id="js-search-box"
|
||||
name="q"
|
||||
className="form-group-input"
|
||||
placeholder="Bạn cần tìm gì?"
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
type="submit"
|
||||
id="js-search-button"
|
||||
aria-label="submit-search"
|
||||
className="search-btn-header"
|
||||
>
|
||||
<i className="sprite sprite-search-header icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div className="search-results">
|
||||
<div className="search-results-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="box-tabs-header d-flex align-items-center">
|
||||
<Link
|
||||
href="/buildpc"
|
||||
className="item-tab-header d-flex flex-column align-items-center gap-4"
|
||||
>
|
||||
<p className="icon-item-tab d-flex align-items-center justify-content-center">
|
||||
<i className="sprite sprite-buildpc-header"></i>
|
||||
</p>
|
||||
<span className="font-weight-500">Xây dựng cấu hình</span>
|
||||
</Link>
|
||||
|
||||
<Link
|
||||
href="javascript:void(0)"
|
||||
className="item-tab-header d-flex flex-column align-items-center gap-4"
|
||||
>
|
||||
<p className="icon-item-tab d-flex align-items-center justify-content-center">
|
||||
<i className="sprite sprite-lienhe-header"></i>
|
||||
</p>
|
||||
<span className="font-weight-500">Khách hàng liên hệ</span>
|
||||
</Link>
|
||||
|
||||
<Link
|
||||
href="/tin-tuc"
|
||||
className="item-tab-header d-flex flex-column align-items-center gap-4"
|
||||
>
|
||||
<p className="icon-item-tab d-flex align-items-center justify-content-center">
|
||||
<i className="sprite sprite-article-header"></i>
|
||||
</p>
|
||||
<span className="font-weight-500">Tin tức công nghệ</span>
|
||||
</Link>
|
||||
|
||||
<div id="js-header-cart" className="position-relative">
|
||||
<Link
|
||||
href="/cart"
|
||||
className="item-tab-header d-flex flex-column align-items-center gap-4"
|
||||
>
|
||||
<p className="icon-item-tab icon-cart-header d-flex align-items-center justify-content-center">
|
||||
<i className="sprite sprite-cart-header"></i>
|
||||
<u className="cart-count header-features-cart-amount">1</u>
|
||||
</p>
|
||||
<span className="font-weight-500">Giỏ hàng</span>
|
||||
</Link>
|
||||
<div className="cau-noi"></div>
|
||||
<div className="cart-ttip" id="js-cart-tooltip">
|
||||
<div className="cart-ttip-item-container"></div>
|
||||
<div className="cart-ttip-price d-flex align-items-center justify-content-end gap-6">
|
||||
<p>Tổng tiền hàng</p>
|
||||
<p id="js-header-cart-quantity" className="font-weight-500"></p>
|
||||
<p id="js-header-cart-total-price" className="font-weight-700"></p>
|
||||
</div>
|
||||
<Link
|
||||
href="/cart"
|
||||
className="cart-ttip-price-button d-flex align-items-center justify-content-center"
|
||||
>
|
||||
<p className="font-weight-700">THANH TOÁN NGAY </p>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Link
|
||||
href="/taikhoan"
|
||||
className="user-header item-tab-header d-flex flex-column align-items-center gap-4"
|
||||
>
|
||||
<p className="icon-item-tab d-flex align-items-center justify-content-center">
|
||||
<i className="sprite sprite-account-header"></i>
|
||||
</p>
|
||||
<span className="font-weight-500">Tài khoản</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<BoxShowroom />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default HeaderMid;
|
||||
63
src/components/layout/Header/HeaderTop.tsx
Normal file
63
src/components/layout/Header/HeaderTop.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
import { Swiper, SwiperSlide } from 'swiper/react';
|
||||
import { Autoplay, Navigation, Pagination } from 'swiper/modules';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
|
||||
// Định nghĩa kiểu dữ liệu cho mỗi Banner
|
||||
interface BannerItem {
|
||||
id: number;
|
||||
link: string;
|
||||
imageSrc: string;
|
||||
altText: string;
|
||||
}
|
||||
|
||||
// Dữ liệu mẫu (Bạn có thể fetch từ API)
|
||||
const BANNER_DATA: BannerItem[] = [
|
||||
{
|
||||
id: 429,
|
||||
link: '/ad.php?id=429',
|
||||
imageSrc: 'https://nguyencongpc.vn/media/banner/01_Decc0f3e158e61fabaf09a74d48e1c357bd.webp',
|
||||
altText: 'banner 1',
|
||||
},
|
||||
{
|
||||
id: 392,
|
||||
link: '/ad.php?id=392',
|
||||
imageSrc: 'https://nguyencongpc.vn/media/banner/01_Dec383fdcbc6361363bd6d14f05d2c88ee2.webp',
|
||||
altText: 'banner 2',
|
||||
},
|
||||
];
|
||||
|
||||
const HeaderSlider: React.FC = () => {
|
||||
return (
|
||||
<div className="header-top">
|
||||
<Swiper
|
||||
modules={[Autoplay, Navigation, Pagination]}
|
||||
spaceBetween={12}
|
||||
slidesPerView={1}
|
||||
loop={true}
|
||||
className="mySwiper"
|
||||
>
|
||||
{BANNER_DATA.map((banner) => (
|
||||
<SwiperSlide key={banner.id}>
|
||||
<div className="item">
|
||||
<Link href={banner.link} className="item-banner boder-radius-10">
|
||||
<Image
|
||||
src={banner.imageSrc}
|
||||
width={1909}
|
||||
height={57}
|
||||
alt={banner.altText}
|
||||
priority={true}
|
||||
className="h-auto w-full object-cover"
|
||||
/>
|
||||
</Link>
|
||||
</div>
|
||||
</SwiperSlide>
|
||||
))}
|
||||
</Swiper>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default HeaderSlider;
|
||||
4862
src/components/layout/Header/menuData.ts
Normal file
4862
src/components/layout/Header/menuData.ts
Normal file
File diff suppressed because it is too large
Load Diff
6
src/components/layout/homepage/BoxProductDeal.tsx
Normal file
6
src/components/layout/homepage/BoxProductDeal.tsx
Normal file
@@ -0,0 +1,6 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
|
||||
const BoxProductDeal: React.FC = () => {};
|
||||
|
||||
export default BoxProductDeal;
|
||||
62
src/components/layout/homepage/SliderHome.tsx
Normal file
62
src/components/layout/homepage/SliderHome.tsx
Normal file
@@ -0,0 +1,62 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
import { Swiper, SwiperSlide } from 'swiper/react';
|
||||
import { Autoplay, Navigation, Pagination } from 'swiper/modules';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import { bannerData } from './bannerData';
|
||||
|
||||
const SliderHome: React.FC = () => {
|
||||
// data banner slider
|
||||
const dataSlider = bannerData[0].homepage;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Swiper
|
||||
className="box-banner-homepage relative"
|
||||
modules={[Autoplay, Navigation, Pagination]}
|
||||
spaceBetween={12}
|
||||
slidesPerView={1}
|
||||
loop={true}
|
||||
>
|
||||
{dataSlider?.banner_slider_homepage_main?.map((banner, index) => (
|
||||
<SwiperSlide key={index}>
|
||||
<Link href={banner.desUrl} className="item-banner boder-radius-10">
|
||||
<Image
|
||||
src={banner.fileUrl}
|
||||
width={1909}
|
||||
height={57}
|
||||
alt={banner.title}
|
||||
priority={true}
|
||||
className="boder-radius-10"
|
||||
/>
|
||||
</Link>
|
||||
</SwiperSlide>
|
||||
))}
|
||||
</Swiper>
|
||||
<Swiper
|
||||
className="box-banner-under-slider"
|
||||
modules={[Autoplay, Navigation, Pagination]}
|
||||
spaceBetween={12}
|
||||
slidesPerView={2}
|
||||
loop={true}
|
||||
>
|
||||
{dataSlider?.banner_under_slider_trangchu?.map((banner, index) => (
|
||||
<SwiperSlide key={index} className="item">
|
||||
<Link href={banner.desUrl} className="item-banner boder-radius-10">
|
||||
<Image
|
||||
src={banner.fileUrl}
|
||||
width={banner.width}
|
||||
height={banner.height}
|
||||
alt={banner.title}
|
||||
className="lazy boder-radius-10"
|
||||
/>
|
||||
</Link>
|
||||
</SwiperSlide>
|
||||
))}
|
||||
</Swiper>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SliderHome;
|
||||
645
src/components/layout/homepage/bannerData.ts
Normal file
645
src/components/layout/homepage/bannerData.ts
Normal file
@@ -0,0 +1,645 @@
|
||||
import { BannerType } from "@/src/types/Banner";
|
||||
|
||||
|
||||
export const bannerData: BannerType = [
|
||||
{
|
||||
footer: {
|
||||
"banner_feedback": [
|
||||
{
|
||||
"id": "196",
|
||||
"display": "<a href=\"\/ad.php?id=196\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/14_Feb499f6fcf67f5520d1a7eb5c2e316d7ca.jpg\" width='790' height='400' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/14_Feb499f6fcf67f5520d1a7eb5c2e316d7ca.jpg",
|
||||
"desUrl": "\/ad.php?id=196",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "188",
|
||||
"display": "<a href=\"\/ad.php?id=188\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Febfe8f184d41a91df0d0f4fe433afb4a30.jpg\" width='790' height='400' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Febfe8f184d41a91df0d0f4fe433afb4a30.jpg",
|
||||
"desUrl": "\/ad.php?id=188",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "189",
|
||||
"display": "<a href=\"\/ad.php?id=189\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Feb231f8f3ef1ee2d9605570a98f8b9d853.jpg\" width='790' height='400' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Feb231f8f3ef1ee2d9605570a98f8b9d853.jpg",
|
||||
"desUrl": "\/ad.php?id=189",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "190",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Feb815db13ba0e07cce7e5dbc99c3211970.jpg\" width='790' height='400' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Feb815db13ba0e07cce7e5dbc99c3211970.jpg",
|
||||
"desUrl": "\/ad.php?id=190",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "191",
|
||||
"display": "<a href=\"\/ad.php?id=191\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Febbfe1281e7c753c3c0b844d2bacf7a3bd.jpg\" width='790' height='400' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Febbfe1281e7c753c3c0b844d2bacf7a3bd.jpg",
|
||||
"desUrl": "\/ad.php?id=191",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "192",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Feb7ac521b18c28f89be733d85f4e7ea2c0.jpg\" width='790' height='400' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Feb7ac521b18c28f89be733d85f4e7ea2c0.jpg",
|
||||
"desUrl": "\/ad.php?id=192",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "193",
|
||||
"display": "<a href=\"\/ad.php?id=193\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/13_Feb4a9811eda56defbf8b032a1429876515.jpg\" width='790' height='400' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/13_Feb4a9811eda56defbf8b032a1429876515.jpg",
|
||||
"desUrl": "\/ad.php?id=193",
|
||||
"title": "",
|
||||
"width": 790,
|
||||
"height": 400,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_column_right": [
|
||||
{
|
||||
"id": "285",
|
||||
"display": "<a href=\"\/ad.php?id=285\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/29_Nov87b09c002980d1cbc1ba4f911dcf34fc.webp\" width='600' height='1812' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/29_Nov87b09c002980d1cbc1ba4f911dcf34fc.webp",
|
||||
"desUrl": "\/ad.php?id=285",
|
||||
"title": "",
|
||||
"width": 600,
|
||||
"height": 1812,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_column_left": [
|
||||
{
|
||||
"id": "286",
|
||||
"display": "<a href=\"\/ad.php?id=286\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Dec18c0af23ff50e3acf958695c258d4f6e.webp\" width='600' height='1812' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Dec18c0af23ff50e3acf958695c258d4f6e.webp",
|
||||
"desUrl": "\/ad.php?id=286",
|
||||
"title": "",
|
||||
"width": 600,
|
||||
"height": 1812,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
header: {
|
||||
"banner_buildpc": [
|
||||
{
|
||||
"id": "406",
|
||||
"display": "<a href=\"\/ad.php?id=406\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/11_Novf4f82c644b6ea5fbeb0ef6fc5ceb9c08.jpg\" width='2360' height='316' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/11_Novf4f82c644b6ea5fbeb0ef6fc5ceb9c08.jpg",
|
||||
"desUrl": "\/ad.php?id=406",
|
||||
"title": "",
|
||||
"width": 2360,
|
||||
"height": 316,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "490",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Decf1b77a9ec940fcf31fa7359fe29e35f1.webp\" width='1200' height='161' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Decf1b77a9ec940fcf31fa7359fe29e35f1.webp",
|
||||
"desUrl": "\/ad.php?id=490",
|
||||
"title": "",
|
||||
"width": 1200,
|
||||
"height": 161,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "489",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Dec65c8fe933bee00be5c1c70f1f3f46085.webp\" width='1200' height='161' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Dec65c8fe933bee00be5c1c70f1f3f46085.webp",
|
||||
"desUrl": "\/ad.php?id=489",
|
||||
"title": "",
|
||||
"width": 1200,
|
||||
"height": 161,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_header_top_mb_2023": [
|
||||
{
|
||||
"id": "393",
|
||||
"display": "<a href=\"\/ad.php?id=393\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Deca35f147ff1e98fd991ac841136f42d66.webp\" width='695' height='67' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Deca35f147ff1e98fd991ac841136f42d66.webp",
|
||||
"desUrl": "\/ad.php?id=393",
|
||||
"title": "",
|
||||
"width": 695,
|
||||
"height": 67,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "459",
|
||||
"display": "<a href=\"\/ad.php?id=459\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Dec515584a8a6e976d27def69db45dbb176.webp\" width='695' height='67' alt=\"Banner tuy\u1ec3n d\u1ee5ng\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Dec515584a8a6e976d27def69db45dbb176.webp",
|
||||
"desUrl": "\/ad.php?id=459",
|
||||
"title": "Banner tuy\u1ec3n d\u1ee5ng",
|
||||
"width": 695,
|
||||
"height": 67,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_header_top": [
|
||||
{
|
||||
"id": "429",
|
||||
"display": "<a href=\"\/ad.php?id=429\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Decc0f3e158e61fabaf09a74d48e1c357bd.webp\" width='1909' height='57' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Decc0f3e158e61fabaf09a74d48e1c357bd.webp",
|
||||
"desUrl": "\/ad.php?id=429",
|
||||
"title": "",
|
||||
"width": 1909,
|
||||
"height": 57,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "392",
|
||||
"display": "<a href=\"\/ad.php?id=392\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Dec383fdcbc6361363bd6d14f05d2c88ee2.webp\" width='1909' height='57' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Dec383fdcbc6361363bd6d14f05d2c88ee2.webp",
|
||||
"desUrl": "\/ad.php?id=392",
|
||||
"title": "",
|
||||
"width": 1909,
|
||||
"height": 57,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_page_deal_2023": [
|
||||
{
|
||||
"id": "299",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/16_Jan0020c1620255554792b53307703d1377.jpg\" width='1500' height='415' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/16_Jan0020c1620255554792b53307703d1377.jpg",
|
||||
"desUrl": "\/ad.php?id=299",
|
||||
"title": "",
|
||||
"width": 1500,
|
||||
"height": 415,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_column_left": [
|
||||
{
|
||||
"id": "283",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/11_Aug8d0ed894020346db278b6035ca259ac3.png\" width='103' height='309' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/11_Aug8d0ed894020346db278b6035ca259ac3.png",
|
||||
"desUrl": "\/ad.php?id=283",
|
||||
"title": "",
|
||||
"width": 103,
|
||||
"height": 309,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"banner_column_right": [
|
||||
{
|
||||
"id": "284",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/11_Augc702ee207c9927f84d0b6b8fb3551c45.png\" width='103' height='309' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/11_Augc702ee207c9927f84d0b6b8fb3551c45.png",
|
||||
"desUrl": "\/ad.php?id=284",
|
||||
"title": "",
|
||||
"width": 103,
|
||||
"height": 309,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
homepage: {
|
||||
slider_home: [
|
||||
{
|
||||
"id": "279",
|
||||
"display": "<a href=\"\/ad.php?id=279\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/24_Augc1567e876be9163f19bc323a79c73808.jpg\" width='851' height='512' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/24_Augc1567e876be9163f19bc323a79c73808.jpg",
|
||||
"desUrl": "\/ad.php?id=279",
|
||||
"title": "",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "260",
|
||||
"display": "<a href=\"\/ad.php?id=260\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Jun639c4383913d27dcba82037f811c2fc8.avif\" width='851' height='512' alt=\"m\u00e0n h\u00ecnh gi\u00e1 c\u1ef1c t\u1ed1t\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Jun639c4383913d27dcba82037f811c2fc8.avif",
|
||||
"desUrl": "\/ad.php?id=260",
|
||||
"title": "m\u00e0n h\u00ecnh gi\u00e1 c\u1ef1c t\u1ed1t",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "253",
|
||||
"display": "<a href=\"\/ad.php?id=253\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Jun53d07914e5c6b10cb6c90ab6d0764a48.avif\" width='851' height='512' alt=\"mua tai nghe t\u1eb7ng qu\u00e0 si\u00eau hot c\u00f9ng asus\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Jun53d07914e5c6b10cb6c90ab6d0764a48.avif",
|
||||
"desUrl": "\/ad.php?id=253",
|
||||
"title": "mua tai nghe t\u1eb7ng qu\u00e0 si\u00eau hot c\u00f9ng asus",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "251",
|
||||
"display": "<a href=\"\/ad.php?id=251\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Jun420b2ba2878f28d1111a1770cfb6abfc.avif\" width='851' height='512' alt=\"laptop gigabyte si\u00eau \u01b0u \u0111\u00e3i\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Jun420b2ba2878f28d1111a1770cfb6abfc.avif",
|
||||
"desUrl": "\/ad.php?id=251",
|
||||
"title": "laptop gigabyte si\u00eau \u01b0u \u0111\u00e3i",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "224",
|
||||
"display": "<a href=\"\/ad.php?id=224\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Jun36c372c6e8f32efb5b72783f23feb186.avif\" width='851' height='512' alt=\"NCPC AMD\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Jun36c372c6e8f32efb5b72783f23feb186.avif",
|
||||
"desUrl": "\/ad.php?id=224",
|
||||
"title": "NCPC AMD",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "171",
|
||||
"display": "<a href=\"\/ad.php?id=171\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/11_Julbe8ebc111daa95ecfb856db2bbc0f6ca.jpg\" width='851' height='512' alt=\"sale cpu gi\u00e1 s\u1eadp s\u00e0n\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/11_Julbe8ebc111daa95ecfb856db2bbc0f6ca.jpg",
|
||||
"desUrl": "\/ad.php?id=171",
|
||||
"title": "sale cpu gi\u00e1 s\u1eadp s\u00e0n",
|
||||
"width": 851,
|
||||
"height": 512,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_under_slider_trangchu: [
|
||||
{
|
||||
"id": "491",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/11_Dece4857620cf7d184a9d3936fe4eecdc36.jpg\" width='1188' height='322' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/11_Dece4857620cf7d184a9d3936fe4eecdc36.jpg",
|
||||
"desUrl": "\/ad.php?id=491",
|
||||
"title": "",
|
||||
"width": 1188,
|
||||
"height": 322,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "492",
|
||||
"display": "<a href=\"\/ad.php?id=492\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/12_Deca20095da1a168b02a30025be35d237b9.webp\" width='1188' height='322' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/12_Deca20095da1a168b02a30025be35d237b9.webp",
|
||||
"desUrl": "\/ad.php?id=492",
|
||||
"title": "",
|
||||
"width": 1188,
|
||||
"height": 322,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "394",
|
||||
"display": "<a href=\"\/ad.php?id=394\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Decc36a9d8d65ea1c144035372aed745741.webp\" width='1188' height='322' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Decc36a9d8d65ea1c144035372aed745741.webp",
|
||||
"desUrl": "\/ad.php?id=394",
|
||||
"title": "",
|
||||
"width": 1188,
|
||||
"height": 322,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "465",
|
||||
"display": "<a href=\"\/ad.php?id=465\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Dec011428052819ba7366c840251d137c3b.webp\" width='594' height='161' alt=\"Banner build PC\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Dec011428052819ba7366c840251d137c3b.webp",
|
||||
"desUrl": "\/ad.php?id=465",
|
||||
"title": "Banner build PC",
|
||||
"width": 594,
|
||||
"height": 161,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "481",
|
||||
"display": "<a href=\"\/ad.php?id=481\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/10_Sep8385f8a9ebfdbe7b458305ff37501d34.jpg\" width='594' height='161' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/10_Sep8385f8a9ebfdbe7b458305ff37501d34.jpg",
|
||||
"desUrl": "\/ad.php?id=481",
|
||||
"title": "",
|
||||
"width": 594,
|
||||
"height": 161,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "461",
|
||||
"display": "<a href=\"\/ad.php?id=461\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Juna4d65cc940a1d9c49f480f7a9f657d08.jpg\" width='594' height='161' alt=\"PC-V\u0103n-Ph\u00f2ng\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Juna4d65cc940a1d9c49f480f7a9f657d08.jpg",
|
||||
"desUrl": "\/ad.php?id=461",
|
||||
"title": "PC-V\u0103n-Ph\u00f2ng",
|
||||
"width": 594,
|
||||
"height": 161,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "483",
|
||||
"display": "<a href=\"\/ad.php?id=483\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/10_Oct22fa126f13f9570bea797e94cbf56a97.jpg\" width='2368' height='640' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/10_Oct22fa126f13f9570bea797e94cbf56a97.jpg",
|
||||
"desUrl": "\/ad.php?id=483",
|
||||
"title": "",
|
||||
"width": 2368,
|
||||
"height": 640,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "484",
|
||||
"display": "<a href=\"\/ad.php?id=484\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/10_Dec28dc7805471758017b6d35df068f8cb2.webp\" width='1000' height='271' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/10_Dec28dc7805471758017b6d35df068f8cb2.webp",
|
||||
"desUrl": "\/ad.php?id=484",
|
||||
"title": "",
|
||||
"width": 1000,
|
||||
"height": 271,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "486",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/14_Novec0d3a223da7bc911d7f552ec03b5d41.jpg\" width='1000' height='271' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/14_Novec0d3a223da7bc911d7f552ec03b5d41.jpg",
|
||||
"desUrl": "\/ad.php?id=486",
|
||||
"title": "",
|
||||
"width": 1000,
|
||||
"height": 271,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "494",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/16_Decac1ad4e087162c861dd29e24a52b16b5.webp\" width='1188' height='322' alt=\"\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/16_Decac1ad4e087162c861dd29e24a52b16b5.webp",
|
||||
"desUrl": "\/ad.php?id=494",
|
||||
"title": "",
|
||||
"width": 1188,
|
||||
"height": 322,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_slider_mobile_2023: [
|
||||
{
|
||||
"id": "358",
|
||||
"display": "<a href=\"\/ad.php?id=358\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/08_Dec42942cfd2c8d57ce55e7f436291cff20.jpg\" width='1538' height='744' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/08_Dec42942cfd2c8d57ce55e7f436291cff20.jpg",
|
||||
"desUrl": "\/ad.php?id=358",
|
||||
"title": "",
|
||||
"width": 1538,
|
||||
"height": 744,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_product_category: [
|
||||
{
|
||||
"id": "297",
|
||||
"display": "<a href=\"\/ad.php?id=297\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/01_Jul6c180927820e683f758cb146a18e89d8.jpg\" width='1201' height='161' alt=\"277\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/01_Jul6c180927820e683f758cb146a18e89d8.jpg",
|
||||
"desUrl": "\/ad.php?id=297",
|
||||
"title": "277",
|
||||
"width": 1201,
|
||||
"height": 161,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_slider_homepage_main: [
|
||||
{
|
||||
"id": "291",
|
||||
"display": "<a href=\"\/ad.php?id=291\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/08_Dec46cb8ed4b30c59ee06a4010d1491caf3.webp\" width='1500' height='426' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/08_Dec46cb8ed4b30c59ee06a4010d1491caf3.webp",
|
||||
"desUrl": "\/ad.php?id=291",
|
||||
"title": "",
|
||||
"width": 1500,
|
||||
"height": 426,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_underslider_trangchu_mobile: [
|
||||
{
|
||||
"id": "493",
|
||||
"display": "<a href=\"\/ad.php?id=493\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/12_Dec960e661cc3007d40210dc449562e8cb4.webp\" width='1538' height='448' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/12_Dec960e661cc3007d40210dc449562e8cb4.webp",
|
||||
"desUrl": "\/ad.php?id=493",
|
||||
"title": "",
|
||||
"width": 1538,
|
||||
"height": 448,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": '400',
|
||||
"display": "<a href=\"\/ad.php?id=400\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Dece61807a2c9c98fbf6df2b30f5dbe5c9a.jpg\" width='1538' height='448' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Dece61807a2c9c98fbf6df2b30f5dbe5c9a.jpg",
|
||||
"desUrl": "\/ad.php?id=400",
|
||||
"title": "",
|
||||
"width": 1538,
|
||||
"height": 448,
|
||||
"fileType": "1",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "466",
|
||||
"display": "<a href=\"\/ad.php?id=466\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/14_Nov5f56ffcefe6a47200d17733246d3ab04.webp\" width='769' height='224' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/14_Nov5f56ffcefe6a47200d17733246d3ab04.webp",
|
||||
"desUrl": "\/ad.php?id=466",
|
||||
"title": "",
|
||||
"width": 769,
|
||||
"height": 224,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "397",
|
||||
"display": "<a href=\"\/ad.php?id=397\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Dec2587b97c4cb08c46d195bacf675fa933.webp\" width='1538' height='448' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Dec2587b97c4cb08c46d195bacf675fa933.webp",
|
||||
"desUrl": "\/ad.php?id=397",
|
||||
"title": "",
|
||||
"width": 1538,
|
||||
"height": 448,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "395",
|
||||
"display": "<a href=\"\/ad.php?id=395\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Dec9a01020b2317cb3ba49586af6c9f7005.webp\" width='1538' height='448' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Dec9a01020b2317cb3ba49586af6c9f7005.webp",
|
||||
"desUrl": "\/ad.php?id=395",
|
||||
"title": "",
|
||||
"width": 1538,
|
||||
"height": 448,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "462",
|
||||
"display": "<a href=\"\/ad.php?id=462\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/05_Junab6cdd7abf3dc9d00c4e5615caf68ae9.jpg\" width='769' height='224' alt=\"PCVP-mobile\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/05_Junab6cdd7abf3dc9d00c4e5615caf68ae9.jpg",
|
||||
"desUrl": "\/ad.php?id=462",
|
||||
"title": "PCVP-mobile",
|
||||
"width": 769,
|
||||
"height": 224,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_bot_home: [
|
||||
{
|
||||
"id": "74",
|
||||
"display": "<a href=\"\/ad.php?id=74\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Auge40067f94bca8b5dcbc47a28e5d75e0e.jpg\" width='421' height='250' alt=\"D\u1ecbch v\u1ee5 b\u1ea3o h\u00e0nh m\u00e1y t\u00ednh si\u00eau t\u1ed1c\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Auge40067f94bca8b5dcbc47a28e5d75e0e.jpg",
|
||||
"desUrl": "\/ad.php?id=74",
|
||||
"title": "D\u1ecbch v\u1ee5 b\u1ea3o h\u00e0nh m\u00e1y t\u00ednh si\u00eau t\u1ed1c",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "banner",
|
||||
"summary": "D\u1ecbch v\u1ee5 b\u1ea3o h\u00e0nh si\u00eau t\u1ed1c 1 \u0111\u1ed5i 1: V\u1edbi c\u00e1c s\u1ea3n ph\u1ea9m \u0111\u01b0\u1ee3c ph\u00e2n ph\u1ed1i b\u1edfi Nguy\u1ec5n C\u00f4ng PC s\u1ebd \u0111\u01b0\u1ee3c cam k\u1ebft 1 ..."
|
||||
},
|
||||
{
|
||||
"id": "73",
|
||||
"display": "<a href=\"\/ad.php?id=73\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Aug55a6088409dc421d3390179a7712c5cd.jpg\" width='421' height='250' alt=\"H\u1ed7 tr\u1ee3 tr\u1ea3 g\u00f3p\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Aug55a6088409dc421d3390179a7712c5cd.jpg",
|
||||
"desUrl": "\/ad.php?id=73",
|
||||
"title": "H\u1ed7 tr\u1ee3 tr\u1ea3 g\u00f3p",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "banner",
|
||||
"summary": "M\u00e1y t\u00ednh Nguy\u1ec5n C\u00f4ng s\u1ebd h\u1ed7 tr\u1ee3 mua tr\u1ea3 g\u00f3p online v\u1edbi nh\u1eefng kh\u00e1ch h\u00e0ng s\u1edf h\u1eefu th\u1ebb ghi n\u1ee3 n\u1ed9i \u0111\u1ecba (VISA\/MASTER\/JCB) \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh b\u1edfi m\u1ed9t trong c\u00e1c ng\u00e2n h\u00e0ng Citibank, ..."
|
||||
},
|
||||
{
|
||||
"id": "127",
|
||||
"display": "<a href=\"\/ad.php?id=127\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Aug9c6a33a9de23f9ee17a345a30b989d60.jpg\" width='421' height='250' alt=\"Ch\u01b0\u01a1ng tr\u00ecnh sale cpu\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Aug9c6a33a9de23f9ee17a345a30b989d60.jpg",
|
||||
"desUrl": "\/ad.php?id=127",
|
||||
"title": "Ch\u01b0\u01a1ng tr\u00ecnh sale cpu",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
},
|
||||
{
|
||||
"id": "140",
|
||||
"display": "<a href=\"\/ad.php?id=140\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Augbf48ab9cd4431c53d804405df0685f03.jpg\" width='421' height='250' alt=\"m\u00e0n h\u00ecnh ch\u00ednh h\u00e3ng\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Augbf48ab9cd4431c53d804405df0685f03.jpg",
|
||||
"desUrl": "\/ad.php?id=140",
|
||||
"title": "m\u00e0n h\u00ecnh ch\u00ednh h\u00e3ng",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_mid_home: [
|
||||
{
|
||||
"id": "86",
|
||||
"display": "<a href=\"\/ad.php?id=86\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Augfcc9fb432f0f13cca14b830b8c0f3a7b.jpg\" width='421' height='250' alt=\"Laptop gaming mu\u00f4n v\u00e0n gi\u00e1 s\u1ed1c\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Augfcc9fb432f0f13cca14b830b8c0f3a7b.jpg",
|
||||
"desUrl": "\/ad.php?id=86",
|
||||
"title": "Laptop gaming mu\u00f4n v\u00e0n gi\u00e1 s\u1ed1c",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "banner",
|
||||
"summary": "Mua laptop gaming ch\u00ednh h\u00e3ng, gi\u00e1 r\u1ebb t\u1eeb c\u00e1c th\u01b0\u01a1ng hi\u1ec7u n\u1ed5i ti\u1ebfng nh\u01b0: Acer, Asus, HP, MSI, Dell, Lenovo, \u0111\u1ed5i m\u1edbi trong v\u00f2ng 7 ng\u00e0y - Mi\u1ec5n ph\u00ed n\u00e2ng c\u1ea5p RAM ..."
|
||||
},
|
||||
{
|
||||
"id": "85",
|
||||
"display": "<a href=\"\/ad.php?id=85\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Auge66ba57e695249705f3e4fb06a97cf81.jpg\" width='421' height='250' alt=\"Laptop v\u0103n ph\u00f2ng\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Auge66ba57e695249705f3e4fb06a97cf81.jpg",
|
||||
"desUrl": "\/ad.php?id=85",
|
||||
"title": "Laptop v\u0103n ph\u00f2ng",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "",
|
||||
"summary": "Laptop v\u0103n ph\u00f2ng Acer, Asus, HP, MSI ch\u00ednh h\u00e3ng gi\u00e1 r\u1ebb. Mua online t\u1ea1i NGUYENCONG giao h\u00e0ng to\u00e0n qu\u1ed1c - H\u1ed7 tr\u1ee3 tr\u1ea3 g\u00f3p 0%. Xem ngay!"
|
||||
},
|
||||
{
|
||||
"id": "128",
|
||||
"display": "<a href=\"\/ad.php?id=128\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Aug199ab2453bb196abad65eee2dcb86c89.jpg\" width='421' height='250' alt=\"build pc\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Aug199ab2453bb196abad65eee2dcb86c89.jpg",
|
||||
"desUrl": "\/ad.php?id=128",
|
||||
"title": "build pc",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "banner",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_right_home: [
|
||||
{
|
||||
"id": "2",
|
||||
"display": "<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/22_Oct35b55e8600025c38ca65ddd9aec06e74.jpg\" width='421' height='250' alt=\"Video\"\/>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/22_Oct35b55e8600025c38ca65ddd9aec06e74.jpg",
|
||||
"desUrl": "\/ad.php?id=2",
|
||||
"title": "Video",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "banner",
|
||||
"summary": "E80Xj9oD2Yo"
|
||||
},
|
||||
{
|
||||
"id": "216",
|
||||
"display": "<a href=\"\/ad.php?id=216\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/02_Augf62bb067892116a818d10e4edd030b7b.jpg\" width='421' height='250' alt=\"thu m\u00e1y t\u00ednh c\u0169 \u0111\u1ed5i m\u1edbi m\u00e1y t\u00ednh m\u1edbi\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/02_Augf62bb067892116a818d10e4edd030b7b.jpg",
|
||||
"desUrl": "\/ad.php?id=216",
|
||||
"title": "thu m\u00e1y t\u00ednh c\u0169 \u0111\u1ed5i m\u1edbi m\u00e1y t\u00ednh m\u1edbi",
|
||||
"width": 421,
|
||||
"height": 250,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
banner_collection_pc: [
|
||||
{
|
||||
"id": "433",
|
||||
"display": "<a href=\"\/ad.php?id=433\" target='_blank' rel='nofollow'>\r\n<img border=0 src=\"https://nguyencongpc.vn\/media\/banner\/10_Junbf5b7840a8b53bc96c3e785d54580559.webp\" width='500' height='500' alt=\"\"\/><\/a>",
|
||||
"fileUrl": "https://nguyencongpc.vn\/media\/banner\/10_Junbf5b7840a8b53bc96c3e785d54580559.webp",
|
||||
"desUrl": "\/ad.php?id=433",
|
||||
"title": "",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"fileType": "",
|
||||
"summary": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
6282
src/styles/globals.css
Normal file
6282
src/styles/globals.css
Normal file
File diff suppressed because it is too large
Load Diff
72
src/styles/sf-pro-display.css
Normal file
72
src/styles/sf-pro-display.css
Normal file
@@ -0,0 +1,72 @@
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYREGULAR.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 100;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYULTRALIGHTITALIC.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 200;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYTHINITALIC.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 300;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYLIGHTITALIC.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYMEDIUM.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYSEMIBOLDITALIC.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYBOLD.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 800;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYHEAVYITALIC.woff') format('woff');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'SF Pro Display';
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
src:
|
||||
local('SF Pro Display'),
|
||||
url('https://fonts.cdnfonts.com/s/59278/SFPRODISPLAYBLACKITALIC.woff') format('woff');
|
||||
}
|
||||
50
src/types/Banner.ts
Normal file
50
src/types/Banner.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
export interface BannerItem {
|
||||
id: string,
|
||||
display: string,
|
||||
fileUrl: string,
|
||||
desUrl: string,
|
||||
title: string,
|
||||
width: number,
|
||||
height: number,
|
||||
fileType: string,
|
||||
summary: string
|
||||
}
|
||||
|
||||
export interface BannerFooterData {
|
||||
banner_feedback: BannerItem[];
|
||||
banner_column_right: BannerItem[];
|
||||
banner_column_left: BannerItem[];
|
||||
|
||||
}
|
||||
|
||||
export interface BannerHeaderData {
|
||||
banner_buildpc: BannerItem[];
|
||||
banner_header_top_mb_2023: BannerItem[];
|
||||
banner_header_top: BannerItem[];
|
||||
banner_page_deal_2023: BannerItem[];
|
||||
banner_column_left: BannerItem[];
|
||||
banner_column_right: BannerItem[];
|
||||
}
|
||||
|
||||
export interface BannerHomePageData {
|
||||
slider_home: BannerItem[];
|
||||
banner_under_slider_trangchu: BannerItem[];
|
||||
banner_slider_mobile_2023: BannerItem[];
|
||||
banner_product_category: BannerItem[];
|
||||
banner_slider_homepage_main: BannerItem[];
|
||||
banner_underslider_trangchu_mobile: BannerItem[];
|
||||
banner_bot_home: BannerItem[];
|
||||
banner_mid_home: BannerItem[];
|
||||
banner_right_home: BannerItem[];
|
||||
banner_collection_pc: BannerItem[];
|
||||
}
|
||||
|
||||
|
||||
export interface TemplateBanner {
|
||||
footer: BannerFooterData;
|
||||
header: BannerHeaderData;
|
||||
homepage: BannerHomePageData;
|
||||
}
|
||||
|
||||
export type BannerType = TemplateBanner[];
|
||||
|
||||
21
src/types/Menu.ts
Normal file
21
src/types/Menu.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
export interface Category {
|
||||
id: string;
|
||||
title: string;
|
||||
parentId: string;
|
||||
thumnail: string;
|
||||
big_image: string;
|
||||
isParent: string;
|
||||
url: string;
|
||||
is_featured: string;
|
||||
summary: string;
|
||||
children: Category[]; // Đệ quy: Quan trọng nhất để định nghĩa cấp con
|
||||
}
|
||||
|
||||
export interface ProductCategory {
|
||||
product: {
|
||||
all_category: Category[];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
export type MenuTypes = ProductCategory[];
|
||||
Reference in New Issue
Block a user