mirror of
https://github.com/vercel/commerce.git
synced 2025-07-21 11:51:20 +00:00
merge: fix conflict
This commit is contained in:
commit
2b7e4fe6cb
17
pages/blog/[slug].tsx
Normal file
17
pages/blog/[slug].tsx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { Layout, RelevantBlogPosts } from 'src/components/common';
|
||||||
|
import BlogContent from 'src/components/modules/blog-detail/BlogContent/BlogContent';
|
||||||
|
import BlogDetailImg from 'src/components/modules/blog-detail/BlogDetailImg/BlogDetailImg';
|
||||||
|
import { RECIPE_DATA_TEST } from 'src/utils/demo-data'
|
||||||
|
|
||||||
|
|
||||||
|
export default function BlogDetailPage() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<BlogDetailImg/>
|
||||||
|
<BlogContent/>
|
||||||
|
<RelevantBlogPosts data={RECIPE_DATA_TEST} title="You will like also" bgcolor="cream"/>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
BlogDetailPage.Layout = Layout
|
15
pages/recipes.tsx
Normal file
15
pages/recipes.tsx
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { Layout } from 'src/components/common';
|
||||||
|
import RecipeListBanner from 'src/components/modules/recipes-list/RecipeListBanner/RecipeListBanner';
|
||||||
|
import RecipesList from 'src/components/modules/recipes-list/RecipesList/RecipesList';
|
||||||
|
|
||||||
|
|
||||||
|
export default function RecipeListPage() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<RecipeListBanner />
|
||||||
|
<RecipesList/>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
RecipeListPage.Layout = Layout
|
@ -1,44 +1,83 @@
|
|||||||
import {
|
import {
|
||||||
CollapseCommon, Layout, RelevantBlogPosts
|
Layout, RecipeDetail
|
||||||
} from 'src/components/common'
|
} from 'src/components/common';
|
||||||
|
import MenuNavigation from 'src/components/common/MenuNavigation/MenuNavigation';
|
||||||
|
import MenuNavigationProductList from 'src/components/common/MenuNavigationProductList/MenuNavigationProductList';
|
||||||
|
import BlogContent from 'src/components/modules/blogs/BlogContent/BlogContent';
|
||||||
|
// import { RecipeListPage } from 'src/components/modules/recipes';
|
||||||
|
import { OPTION_ALL, QUERY_KEY, ROUTE } from 'src/utils/constanst.utils';
|
||||||
|
import BlogDetailPage from 'src/components/modules/blogs/BlogDetailPage/BlogDetailPage';
|
||||||
|
|
||||||
const COLLAPSE_DATA = [
|
const CATEGORY = [
|
||||||
{
|
{
|
||||||
title: "This is a subtitle",
|
name: 'All',
|
||||||
content: [
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=${OPTION_ALL}`,
|
||||||
"When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.",
|
|
||||||
"Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.",
|
|
||||||
"This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.",
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "This is a subtitle",
|
name: 'Veggie',
|
||||||
content: [
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=veggie`,
|
||||||
"When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.",
|
|
||||||
"Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.",
|
|
||||||
"This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.",
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "This is a subtitle",
|
name: 'Seafood',
|
||||||
content: [
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=seafood`,
|
||||||
"When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.",
|
|
||||||
"Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.",
|
|
||||||
"This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.",
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "This is a subtitle",
|
name: 'Frozen',
|
||||||
content: [
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=frozen`,
|
||||||
"When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.",
|
},
|
||||||
"Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.",
|
{
|
||||||
"This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.",
|
name: 'Coffee Bean',
|
||||||
],
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=coffee-bean`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Sauce',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=sauce`,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
const BRAND = [
|
||||||
|
|
||||||
|
{
|
||||||
|
name: 'Maggi',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=veggie`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Cholimes',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=seafood`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chinsu',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=frozen`,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const FEATURED = [
|
||||||
|
|
||||||
|
{
|
||||||
|
name: 'Best Sellers',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=veggie`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Sales',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=seafood`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'New Item',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=frozen`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Viewed',
|
||||||
|
link: `${ROUTE.PRODUCTS}/?${QUERY_KEY.BRAND}=viewed`,
|
||||||
|
}
|
||||||
|
];
|
||||||
export default function Test() {
|
export default function Test() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
{/* <BlogDetailPage /> */}
|
||||||
|
|
||||||
|
{/* <RecipeListPage/> */}
|
||||||
|
{/*<MenuNavigation heading="CATEGORIES" categories={CATEGORY}/>*/}
|
||||||
|
<MenuNavigationProductList categories={CATEGORY} brands={BRAND} featured={FEATURED}/>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
646
report.20210908.160959.14332.0.001.json
Normal file
646
report.20210908.160959.14332.0.001.json
Normal file
@ -0,0 +1,646 @@
|
|||||||
|
|
||||||
|
{
|
||||||
|
"header": {
|
||||||
|
"reportVersion": 1,
|
||||||
|
"event": "Allocation failed - JavaScript heap out of memory",
|
||||||
|
"trigger": "FatalError",
|
||||||
|
"filename": "report.20210908.160959.14332.0.001.json",
|
||||||
|
"dumpEventTime": "2021-09-08T16:09:59Z",
|
||||||
|
"dumpEventTimeStamp": "1631092199677",
|
||||||
|
"processId": 14332,
|
||||||
|
"cwd": "G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce",
|
||||||
|
"commandLine": [
|
||||||
|
"node",
|
||||||
|
"G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce\\node_modules\\.bin\\\\..\\next\\dist\\bin\\next",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"nodejsVersion": "v12.15.0",
|
||||||
|
"wordSize": 64,
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"componentVersions": {
|
||||||
|
"node": "12.15.0",
|
||||||
|
"v8": "7.7.299.13-node.16",
|
||||||
|
"uv": "1.33.1",
|
||||||
|
"zlib": "1.2.11",
|
||||||
|
"brotli": "1.0.7",
|
||||||
|
"ares": "1.15.0",
|
||||||
|
"modules": "72",
|
||||||
|
"nghttp2": "1.40.0",
|
||||||
|
"napi": "5",
|
||||||
|
"llhttp": "2.0.4",
|
||||||
|
"http_parser": "2.9.3",
|
||||||
|
"openssl": "1.1.1d",
|
||||||
|
"cldr": "35.1",
|
||||||
|
"icu": "64.2",
|
||||||
|
"tz": "2019c",
|
||||||
|
"unicode": "12.1"
|
||||||
|
},
|
||||||
|
"release": {
|
||||||
|
"name": "node",
|
||||||
|
"lts": "Erbium",
|
||||||
|
"headersUrl": "https://nodejs.org/download/release/v12.15.0/node-v12.15.0-headers.tar.gz",
|
||||||
|
"sourceUrl": "https://nodejs.org/download/release/v12.15.0/node-v12.15.0.tar.gz",
|
||||||
|
"libUrl": "https://nodejs.org/download/release/v12.15.0/win-x64/node.lib"
|
||||||
|
},
|
||||||
|
"osName": "Windows_NT",
|
||||||
|
"osRelease": "10.0.19043",
|
||||||
|
"osVersion": "Windows 10 Pro",
|
||||||
|
"osMachine": "x86_64",
|
||||||
|
"cpus": [
|
||||||
|
{
|
||||||
|
"model": "Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz",
|
||||||
|
"speed": 2395,
|
||||||
|
"user": 67605265,
|
||||||
|
"nice": 0,
|
||||||
|
"sys": 33647953,
|
||||||
|
"idle": 255172281,
|
||||||
|
"irq": 3598359
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz",
|
||||||
|
"speed": 2395,
|
||||||
|
"user": 68803843,
|
||||||
|
"nice": 0,
|
||||||
|
"sys": 25225015,
|
||||||
|
"idle": 262396453,
|
||||||
|
"irq": 602640
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz",
|
||||||
|
"speed": 2395,
|
||||||
|
"user": 76698718,
|
||||||
|
"nice": 0,
|
||||||
|
"sys": 25995390,
|
||||||
|
"idle": 253731187,
|
||||||
|
"irq": 321484
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz",
|
||||||
|
"speed": 2395,
|
||||||
|
"user": 77662531,
|
||||||
|
"nice": 0,
|
||||||
|
"sys": 24450312,
|
||||||
|
"idle": 254312468,
|
||||||
|
"irq": 266531
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"networkInterfaces": [
|
||||||
|
{
|
||||||
|
"name": "Wi-Fi",
|
||||||
|
"internal": false,
|
||||||
|
"mac": "a4:17:31:1d:cc:e5",
|
||||||
|
"address": "2402:800:6318:9d24:f937:34a5:8214:a074",
|
||||||
|
"netmask": "ffff:ffff:ffff:ffff::",
|
||||||
|
"family": "IPv6",
|
||||||
|
"scopeid": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Wi-Fi",
|
||||||
|
"internal": false,
|
||||||
|
"mac": "a4:17:31:1d:cc:e5",
|
||||||
|
"address": "2402:800:6318:9d24:69cf:fc3d:74:1b08",
|
||||||
|
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
||||||
|
"family": "IPv6",
|
||||||
|
"scopeid": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Wi-Fi",
|
||||||
|
"internal": false,
|
||||||
|
"mac": "a4:17:31:1d:cc:e5",
|
||||||
|
"address": "fe80::f937:34a5:8214:a074",
|
||||||
|
"netmask": "ffff:ffff:ffff:ffff::",
|
||||||
|
"family": "IPv6",
|
||||||
|
"scopeid": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Wi-Fi",
|
||||||
|
"internal": false,
|
||||||
|
"mac": "a4:17:31:1d:cc:e5",
|
||||||
|
"address": "192.168.1.10",
|
||||||
|
"netmask": "255.255.255.0",
|
||||||
|
"family": "IPv4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Loopback Pseudo-Interface 1",
|
||||||
|
"internal": true,
|
||||||
|
"mac": "00:00:00:00:00:00",
|
||||||
|
"address": "::1",
|
||||||
|
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
||||||
|
"family": "IPv6",
|
||||||
|
"scopeid": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Loopback Pseudo-Interface 1",
|
||||||
|
"internal": true,
|
||||||
|
"mac": "00:00:00:00:00:00",
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"netmask": "255.0.0.0",
|
||||||
|
"family": "IPv4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"host": "DESKTOP-TILU55O"
|
||||||
|
},
|
||||||
|
"javascriptStack": {
|
||||||
|
"message": "No stack.",
|
||||||
|
"stack": [
|
||||||
|
"Unavailable."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nativeStack": [
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77aa01759",
|
||||||
|
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+10873"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77aa05b7c",
|
||||||
|
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+28316"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77aa04b38",
|
||||||
|
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+24152"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77aaf446b",
|
||||||
|
"symbol": "v8::base::CPU::has_sse+37723"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b2f8d9e",
|
||||||
|
"symbol": "v8::Isolate::ReportExternalAllocationLimitReached+94"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b2e0de1",
|
||||||
|
"symbol": "v8::SharedArrayBuffer::Externalize+833"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1ae6ac",
|
||||||
|
"symbol": "v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1b9a50",
|
||||||
|
"symbol": "v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1b6584",
|
||||||
|
"symbol": "v8::internal::Heap::PageFlagsAreConsistent+3204"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1abe13",
|
||||||
|
"symbol": "v8::internal::Heap::CollectGarbage+1283"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1aa5e4",
|
||||||
|
"symbol": "v8::internal::Heap::AddRetainedMap+2356"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1c46ee",
|
||||||
|
"symbol": "v8::internal::Factory::AllocateRawFixedArray+94"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1cba84",
|
||||||
|
"symbol": "v8::internal::Factory::NewFixedArrayWithFiller+52"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b1cba41",
|
||||||
|
"symbol": "v8::internal::Factory::NewUninitializedFixedArray+65"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b0ac86f",
|
||||||
|
"symbol": "v8::Object::GetIsolate+6767"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77af5feaa",
|
||||||
|
"symbol": "v8::internal::OrderedHashMap::ValueAt+61274"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x00007ff77b724d3d",
|
||||||
|
"symbol": "v8::internal::SetupIsolateDelegate::SetupHeap+567949"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pc": "0x0000004163e2d61e",
|
||||||
|
"symbol": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"javascriptHeap": {
|
||||||
|
"totalMemory": 2197684224,
|
||||||
|
"totalCommittedMemory": 2197684224,
|
||||||
|
"usedMemory": 2099361840,
|
||||||
|
"availableMemory": 89682992,
|
||||||
|
"memoryLimit": 2197815296,
|
||||||
|
"heapSpaces": {
|
||||||
|
"read_only_space": {
|
||||||
|
"memorySize": 262144,
|
||||||
|
"committedMemory": 262144,
|
||||||
|
"capacity": 261872,
|
||||||
|
"used": 32296,
|
||||||
|
"available": 229576
|
||||||
|
},
|
||||||
|
"new_space": {
|
||||||
|
"memorySize": 33554432,
|
||||||
|
"committedMemory": 33554432,
|
||||||
|
"capacity": 16759808,
|
||||||
|
"used": 9024016,
|
||||||
|
"available": 7735792
|
||||||
|
},
|
||||||
|
"old_space": {
|
||||||
|
"memorySize": 1753329664,
|
||||||
|
"committedMemory": 1753329664,
|
||||||
|
"capacity": 1750360832,
|
||||||
|
"used": 1685534088,
|
||||||
|
"available": 64826744
|
||||||
|
},
|
||||||
|
"code_space": {
|
||||||
|
"memorySize": 5144576,
|
||||||
|
"committedMemory": 5144576,
|
||||||
|
"capacity": 4347712,
|
||||||
|
"used": 4347712,
|
||||||
|
"available": 0
|
||||||
|
},
|
||||||
|
"map_space": {
|
||||||
|
"memorySize": 8916992,
|
||||||
|
"committedMemory": 8916992,
|
||||||
|
"capacity": 4381920,
|
||||||
|
"used": 4381920,
|
||||||
|
"available": 0
|
||||||
|
},
|
||||||
|
"large_object_space": {
|
||||||
|
"memorySize": 395280384,
|
||||||
|
"committedMemory": 395280384,
|
||||||
|
"capacity": 394944560,
|
||||||
|
"used": 394944560,
|
||||||
|
"available": 0
|
||||||
|
},
|
||||||
|
"code_large_object_space": {
|
||||||
|
"memorySize": 1196032,
|
||||||
|
"committedMemory": 1196032,
|
||||||
|
"capacity": 1097248,
|
||||||
|
"used": 1097248,
|
||||||
|
"available": 0
|
||||||
|
},
|
||||||
|
"new_large_object_space": {
|
||||||
|
"memorySize": 0,
|
||||||
|
"committedMemory": 0,
|
||||||
|
"capacity": 16759808,
|
||||||
|
"used": 0,
|
||||||
|
"available": 16759808
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"resourceUsage": {
|
||||||
|
"userCpuSeconds": 2420.01,
|
||||||
|
"kernelCpuSeconds": 114.859,
|
||||||
|
"cpuConsumptionPercent": 11.0361,
|
||||||
|
"maxRss": 2818129920,
|
||||||
|
"pageFaults": {
|
||||||
|
"IORequired": 14395451,
|
||||||
|
"IONotRequired": 0
|
||||||
|
},
|
||||||
|
"fsActivity": {
|
||||||
|
"reads": 46029,
|
||||||
|
"writes": 640054
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libuv": [
|
||||||
|
],
|
||||||
|
"environmentVariables": {
|
||||||
|
"=G:": "G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce",
|
||||||
|
"ALLUSERSPROFILE": "C:\\ProgramData",
|
||||||
|
"ANDROID_HOME": "G:\\ASDK",
|
||||||
|
"ANDROID_SDK_ROOT": "G:\\ASDK",
|
||||||
|
"APPDATA": "C:\\Users\\nhan\\AppData\\Roaming",
|
||||||
|
"ChocolateyInstall": "C:\\ProgramData\\chocolatey",
|
||||||
|
"ChocolateyLastPathUpdate": "132608575831335062",
|
||||||
|
"CHROME_CRASHPAD_PIPE_NAME": "\\\\.\\pipe\\crashpad_17244_MSJZWZVAYBLFIPJS",
|
||||||
|
"CLASSPATH": "C:\\Program Files\\Java\\jdk1.8.0_231\\bin",
|
||||||
|
"COLORTERM": "truecolor",
|
||||||
|
"COMMERCE_CUSTOMERAUTH_ENABLED": "true",
|
||||||
|
"COMMERCE_PROVIDER": "vendure",
|
||||||
|
"CommonProgramFiles": "C:\\Program Files\\Common Files",
|
||||||
|
"CommonProgramFiles(x86)": "C:\\Program Files (x86)\\Common Files",
|
||||||
|
"CommonProgramW6432": "C:\\Program Files\\Common Files",
|
||||||
|
"COMPUTERNAME": "DESKTOP-TILU55O",
|
||||||
|
"ComSpec": "C:\\WINDOWS\\system32\\cmd.exe",
|
||||||
|
"dp0": "G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce\\node_modules\\.bin\\",
|
||||||
|
"DriverData": "C:\\Windows\\System32\\Drivers\\DriverData",
|
||||||
|
"FPS_BROWSER_APP_PROFILE_STRING": "Internet Explorer",
|
||||||
|
"FPS_BROWSER_USER_PROFILE_STRING": "Default",
|
||||||
|
"GIT_ASKPASS": "c:\\Users\\nhan\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass.sh",
|
||||||
|
"GIT_LFS_PATH": "C:\\Program Files\\Git LFS",
|
||||||
|
"HOME": "C:\\Users\\nhan",
|
||||||
|
"HOMEDRIVE": "C:",
|
||||||
|
"HOMEPATH": "\\Users\\nhan",
|
||||||
|
"INIT_CWD": "G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce",
|
||||||
|
"JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_281",
|
||||||
|
"LANG": "en_US.UTF-8",
|
||||||
|
"LOCALAPPDATA": "C:\\Users\\nhan\\AppData\\Local",
|
||||||
|
"LOGONSERVER": "\\\\DESKTOP-TILU55O",
|
||||||
|
"NEXT_PUBLIC_VENDURE_LOCAL_URL": "/vendure-shop-api",
|
||||||
|
"NEXT_PUBLIC_VENDURE_SHOP_API_URL": "https://demo.vendure.io/shop-api",
|
||||||
|
"NODE": "C:\\Program Files\\nodejs\\node.exe",
|
||||||
|
"NODE_ENV": "development",
|
||||||
|
"NODE_EXE": "C:\\Program Files\\nodejs\\\\node.exe",
|
||||||
|
"NODE_OPTIONS": "'--inspect' ",
|
||||||
|
"NPM_CLI_JS": "C:\\Program Files\\nodejs\\\\node_modules\\npm\\bin\\npm-cli.js",
|
||||||
|
"npm_config_access": "",
|
||||||
|
"npm_config_allow_same_version": "",
|
||||||
|
"npm_config_also": "",
|
||||||
|
"npm_config_always_auth": "",
|
||||||
|
"npm_config_argv": "{\"remain\":[],\"cooked\":[\"run\",\"dev-windows\"],\"original\":[\"run\",\"dev-windows\"]}",
|
||||||
|
"npm_config_audit": "true",
|
||||||
|
"npm_config_audit_level": "low",
|
||||||
|
"npm_config_auth_type": "legacy",
|
||||||
|
"npm_config_before": "",
|
||||||
|
"npm_config_bin_links": "true",
|
||||||
|
"npm_config_browser": "",
|
||||||
|
"npm_config_ca": "",
|
||||||
|
"npm_config_cache": "C:\\Users\\nhan\\AppData\\Roaming\\npm-cache",
|
||||||
|
"npm_config_cache_lock_retries": "10",
|
||||||
|
"npm_config_cache_lock_stale": "60000",
|
||||||
|
"npm_config_cache_lock_wait": "10000",
|
||||||
|
"npm_config_cache_max": "Infinity",
|
||||||
|
"npm_config_cache_min": "10",
|
||||||
|
"npm_config_cafile": "",
|
||||||
|
"npm_config_cert": "",
|
||||||
|
"npm_config_cidr": "",
|
||||||
|
"npm_config_color": "true",
|
||||||
|
"npm_config_commit_hooks": "true",
|
||||||
|
"npm_config_depth": "Infinity",
|
||||||
|
"npm_config_description": "true",
|
||||||
|
"npm_config_dev": "",
|
||||||
|
"npm_config_dry_run": "",
|
||||||
|
"npm_config_editor": "notepad.exe",
|
||||||
|
"npm_config_engine_strict": "",
|
||||||
|
"npm_config_fetch_retries": "2",
|
||||||
|
"npm_config_fetch_retry_factor": "10",
|
||||||
|
"npm_config_fetch_retry_maxtimeout": "60000",
|
||||||
|
"npm_config_fetch_retry_mintimeout": "10000",
|
||||||
|
"npm_config_force": "",
|
||||||
|
"npm_config_format_package_lock": "true",
|
||||||
|
"npm_config_fund": "true",
|
||||||
|
"npm_config_git": "git",
|
||||||
|
"npm_config_git_tag_version": "true",
|
||||||
|
"npm_config_global": "",
|
||||||
|
"npm_config_globalconfig": "C:\\Users\\nhan\\AppData\\Roaming\\npm\\etc\\npmrc",
|
||||||
|
"npm_config_globalignorefile": "C:\\Users\\nhan\\AppData\\Roaming\\npm\\etc\\npmignore",
|
||||||
|
"npm_config_global_style": "",
|
||||||
|
"npm_config_group": "",
|
||||||
|
"npm_config_ham_it_up": "",
|
||||||
|
"npm_config_heading": "npm",
|
||||||
|
"npm_config_https_proxy": "",
|
||||||
|
"npm_config_if_present": "",
|
||||||
|
"npm_config_ignore_prepublish": "",
|
||||||
|
"npm_config_ignore_scripts": "",
|
||||||
|
"npm_config_init_author_email": "",
|
||||||
|
"npm_config_init_author_name": "",
|
||||||
|
"npm_config_init_author_url": "",
|
||||||
|
"npm_config_init_license": "ISC",
|
||||||
|
"npm_config_init_module": "C:\\Users\\nhan\\.npm-init.js",
|
||||||
|
"npm_config_init_version": "1.0.0",
|
||||||
|
"npm_config_json": "",
|
||||||
|
"npm_config_key": "",
|
||||||
|
"npm_config_legacy_bundling": "",
|
||||||
|
"npm_config_link": "",
|
||||||
|
"npm_config_local_address": "",
|
||||||
|
"npm_config_loglevel": "notice",
|
||||||
|
"npm_config_logs_max": "10",
|
||||||
|
"npm_config_long": "",
|
||||||
|
"npm_config_maxsockets": "50",
|
||||||
|
"npm_config_message": "%s",
|
||||||
|
"npm_config_metrics_registry": "https://registry.npmjs.org/",
|
||||||
|
"npm_config_node_gyp": "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js",
|
||||||
|
"npm_config_node_options": "",
|
||||||
|
"npm_config_node_version": "12.15.0",
|
||||||
|
"npm_config_noproxy": "",
|
||||||
|
"npm_config_offline": "",
|
||||||
|
"npm_config_onload_script": "",
|
||||||
|
"npm_config_only": "",
|
||||||
|
"npm_config_optional": "true",
|
||||||
|
"npm_config_otp": "",
|
||||||
|
"npm_config_package_lock": "true",
|
||||||
|
"npm_config_package_lock_only": "",
|
||||||
|
"npm_config_parseable": "",
|
||||||
|
"npm_config_prefer_offline": "",
|
||||||
|
"npm_config_prefer_online": "",
|
||||||
|
"npm_config_prefix": "C:\\Users\\nhan\\AppData\\Roaming\\npm",
|
||||||
|
"npm_config_preid": "",
|
||||||
|
"npm_config_production": "",
|
||||||
|
"npm_config_progress": "true",
|
||||||
|
"npm_config_proxy": "",
|
||||||
|
"npm_config_read_only": "",
|
||||||
|
"npm_config_rebuild_bundle": "true",
|
||||||
|
"npm_config_registry": "https://registry.npmjs.org/",
|
||||||
|
"npm_config_rollback": "true",
|
||||||
|
"npm_config_save": "true",
|
||||||
|
"npm_config_save_bundle": "",
|
||||||
|
"npm_config_save_dev": "",
|
||||||
|
"npm_config_save_exact": "",
|
||||||
|
"npm_config_save_optional": "",
|
||||||
|
"npm_config_save_prefix": "^",
|
||||||
|
"npm_config_save_prod": "",
|
||||||
|
"npm_config_scope": "",
|
||||||
|
"npm_config_scripts_prepend_node_path": "warn-only",
|
||||||
|
"npm_config_script_shell": "",
|
||||||
|
"npm_config_searchexclude": "",
|
||||||
|
"npm_config_searchlimit": "20",
|
||||||
|
"npm_config_searchopts": "",
|
||||||
|
"npm_config_searchstaleness": "900",
|
||||||
|
"npm_config_send_metrics": "",
|
||||||
|
"npm_config_shell": "C:\\WINDOWS\\system32\\cmd.exe",
|
||||||
|
"npm_config_shrinkwrap": "true",
|
||||||
|
"npm_config_sign_git_commit": "",
|
||||||
|
"npm_config_sign_git_tag": "",
|
||||||
|
"npm_config_sso_poll_frequency": "500",
|
||||||
|
"npm_config_sso_type": "oauth",
|
||||||
|
"npm_config_strict_ssl": "true",
|
||||||
|
"npm_config_tag": "latest",
|
||||||
|
"npm_config_tag_version_prefix": "v",
|
||||||
|
"npm_config_timing": "",
|
||||||
|
"npm_config_tmp": "C:\\Users\\nhan\\AppData\\Local\\Temp",
|
||||||
|
"npm_config_umask": "0000",
|
||||||
|
"npm_config_unicode": "",
|
||||||
|
"npm_config_unsafe_perm": "true",
|
||||||
|
"npm_config_update_notifier": "true",
|
||||||
|
"npm_config_usage": "",
|
||||||
|
"npm_config_user": "",
|
||||||
|
"npm_config_userconfig": "C:\\Users\\nhan\\.npmrc",
|
||||||
|
"npm_config_user_agent": "npm/6.13.4 node/v12.15.0 win32 x64",
|
||||||
|
"npm_config_version": "",
|
||||||
|
"npm_config_versions": "",
|
||||||
|
"npm_config_viewer": "browser",
|
||||||
|
"npm_execpath": "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js",
|
||||||
|
"npm_lifecycle_event": "dev-windows",
|
||||||
|
"npm_lifecycle_script": "set NODE_OPTIONS='--inspect' && set PORT=3005 && next dev",
|
||||||
|
"npm_node_execpath": "C:\\Program Files\\nodejs\\node.exe",
|
||||||
|
"npm_package_dependencies_autoprefixer": "^10.2.6",
|
||||||
|
"npm_package_dependencies_body_scroll_lock": "^3.1.5",
|
||||||
|
"npm_package_dependencies_classnames": "^2.3.1",
|
||||||
|
"npm_package_dependencies_cookie": "^0.4.1",
|
||||||
|
"npm_package_dependencies_email_validator": "^2.0.4",
|
||||||
|
"npm_package_dependencies_eslint": "^7.32.0",
|
||||||
|
"npm_package_dependencies_eslint_config_next": "^11.1.2",
|
||||||
|
"npm_package_dependencies_immutability_helper": "^3.1.1",
|
||||||
|
"npm_package_dependencies_js_cookie": "^2.2.1",
|
||||||
|
"npm_package_dependencies_keen_slider": "^5.5.1",
|
||||||
|
"npm_package_dependencies_lodash_debounce": "^4.0.8",
|
||||||
|
"npm_package_dependencies_lodash_random": "^3.2.0",
|
||||||
|
"npm_package_dependencies_lodash_throttle": "^4.1.1",
|
||||||
|
"npm_package_dependencies_next": "^11.0.0",
|
||||||
|
"npm_package_dependencies_next_seo": "^4.26.0",
|
||||||
|
"npm_package_dependencies_next_themes": "^0.0.14",
|
||||||
|
"npm_package_dependencies_postcss": "^8.3.5",
|
||||||
|
"npm_package_dependencies_postcss_nesting": "^8.0.1",
|
||||||
|
"npm_package_dependencies_react": "^17.0.2",
|
||||||
|
"npm_package_dependencies_react_dom": "^17.0.2",
|
||||||
|
"npm_package_dependencies_react_fast_marquee": "^1.1.4",
|
||||||
|
"npm_package_dependencies_react_merge_refs": "^1.1.0",
|
||||||
|
"npm_package_dependencies_react_player": "^2.9.0",
|
||||||
|
"npm_package_dependencies_react_use_measure": "^2.0.4",
|
||||||
|
"npm_package_dependencies_sass": "^1.38.0",
|
||||||
|
"npm_package_dependencies_swell_js": "^4.0.0-next.0",
|
||||||
|
"npm_package_dependencies_swr": "^0.5.6",
|
||||||
|
"npm_package_dependencies_tabbable": "^5.2.0",
|
||||||
|
"npm_package_dependencies_tailwindcss": "^2.2.2",
|
||||||
|
"npm_package_dependencies_uuidv4": "^6.2.10",
|
||||||
|
"npm_package_dependencies__react_spring_web": "^9.2.1",
|
||||||
|
"npm_package_dependencies__vercel_fetch": "^6.1.0",
|
||||||
|
"npm_package_description": "[](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fcommerce&project-name=commerce&repo-name=commerce&demo-title=Next.js%20Commerce&demo-description=An%20all-in-one%20starter%20kit%20for%20high-performance%20e-commerce%20sites.&demo-url=https%3A%2F%2Fdemo.vercel.store&demo-image=https%3A%2F%2Fbigcommerce-demo-asset-ksvtgfvnd.vercel.app%2Fbigcommerce.png&integration-ids=oac_MuWZiE4jtmQ2ejZQaQ7ncuDT)",
|
||||||
|
"npm_package_devDependencies_deepmerge": "^4.2.2",
|
||||||
|
"npm_package_devDependencies_eslint_config_prettier": "^8.3.0",
|
||||||
|
"npm_package_devDependencies_graphql": "^15.5.1",
|
||||||
|
"npm_package_devDependencies_husky": "^6.0.0",
|
||||||
|
"npm_package_devDependencies_lint_staged": "^11.0.0",
|
||||||
|
"npm_package_devDependencies_postcss_flexbugs_fixes": "^5.0.2",
|
||||||
|
"npm_package_devDependencies_postcss_import": "^14.0.2",
|
||||||
|
"npm_package_devDependencies_postcss_preset_env": "^6.7.0",
|
||||||
|
"npm_package_devDependencies_prettier": "^2.3.0",
|
||||||
|
"npm_package_devDependencies_typescript": "4.3.4",
|
||||||
|
"npm_package_devDependencies__graphql_codegen_cli": "^1.21.5",
|
||||||
|
"npm_package_devDependencies__graphql_codegen_schema_ast": "^1.18.3",
|
||||||
|
"npm_package_devDependencies__graphql_codegen_typescript": "^1.22.2",
|
||||||
|
"npm_package_devDependencies__graphql_codegen_typescript_operations": "^1.18.1",
|
||||||
|
"npm_package_devDependencies__next_bundle_analyzer": "^10.2.3",
|
||||||
|
"npm_package_devDependencies__types_body_scroll_lock": "^2.6.1",
|
||||||
|
"npm_package_devDependencies__types_cookie": "^0.4.0",
|
||||||
|
"npm_package_devDependencies__types_js_cookie": "^2.2.6",
|
||||||
|
"npm_package_devDependencies__types_lodash_debounce": "^4.0.6",
|
||||||
|
"npm_package_devDependencies__types_lodash_random": "^3.2.6",
|
||||||
|
"npm_package_devDependencies__types_lodash_throttle": "^4.1.6",
|
||||||
|
"npm_package_devDependencies__types_node": "^15.12.4",
|
||||||
|
"npm_package_devDependencies__types_react": "^17.0.8",
|
||||||
|
"npm_package_engines_node": ">=14.x",
|
||||||
|
"npm_package_gitHead": "16ca52162bc58204b405a3732a141f014a9573e2",
|
||||||
|
"npm_package_license": "MIT",
|
||||||
|
"npm_package_lint_staged_______js_jsx_ts_tsx__0": "prettier --write",
|
||||||
|
"npm_package_lint_staged_______js_jsx_ts_tsx__1": "git add",
|
||||||
|
"npm_package_lint_staged_______md_mdx_json__0": "prettier --write",
|
||||||
|
"npm_package_lint_staged_______md_mdx_json__1": "git add",
|
||||||
|
"npm_package_name": "nextjs-commerce",
|
||||||
|
"npm_package_next_unused_alias__assets___0": "assets/*",
|
||||||
|
"npm_package_next_unused_alias__components___0": "components/*",
|
||||||
|
"npm_package_next_unused_alias__config___0": "config/*",
|
||||||
|
"npm_package_next_unused_alias__lib___0": "lib/*",
|
||||||
|
"npm_package_next_unused_alias__utils___0": "utils/*",
|
||||||
|
"npm_package_next_unused_debug": "true",
|
||||||
|
"npm_package_next_unused_entrypoints_0": "pages",
|
||||||
|
"npm_package_next_unused_include_0": "components",
|
||||||
|
"npm_package_next_unused_include_1": "lib",
|
||||||
|
"npm_package_next_unused_include_2": "pages",
|
||||||
|
"npm_package_readmeFilename": "README.md",
|
||||||
|
"npm_package_scripts_analyze": "BUNDLE_ANALYZE=both yarn build",
|
||||||
|
"npm_package_scripts_build": "next build",
|
||||||
|
"npm_package_scripts_dev": "NODE_OPTIONS='--inspect' PORT=3005 next dev",
|
||||||
|
"npm_package_scripts_dev_windows": "set NODE_OPTIONS='--inspect' && set PORT=3005 && next dev",
|
||||||
|
"npm_package_scripts_find_unused": "npx next-unused",
|
||||||
|
"npm_package_scripts_generate": "graphql-codegen",
|
||||||
|
"npm_package_scripts_generate_definitions": "node framework/bigcommerce/scripts/generate-definitions.js",
|
||||||
|
"npm_package_scripts_generate_shopify": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config --config framework/shopify/codegen.json",
|
||||||
|
"npm_package_scripts_generate_vendure": "graphql-codegen --config framework/vendure/codegen.json",
|
||||||
|
"npm_package_scripts_prettier_fix": "prettier --write .",
|
||||||
|
"npm_package_scripts_start": "next start",
|
||||||
|
"npm_package_sideEffects": "false",
|
||||||
|
"npm_package_version": "1.0.0",
|
||||||
|
"NPM_PREFIX_NPM_CLI_JS": "C:\\Users\\nhan\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js",
|
||||||
|
"NUMBER_OF_PROCESSORS": "4",
|
||||||
|
"OneDrive": "C:\\Users\\nhan\\OneDrive",
|
||||||
|
"OneDriveConsumer": "C:\\Users\\nhan\\OneDrive",
|
||||||
|
"OPENSSL_CONF": "C:\\Program Files\\PostgreSQL\\psqlODBC\\etc\\openssl.cnf",
|
||||||
|
"ORIGINAL_XDG_CURRENT_DESKTOP": "undefined",
|
||||||
|
"OS": "Windows_NT",
|
||||||
|
"Path": "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;G:\\hoc-fpt-2\\làm việc\\kie\\work\\grocery-vercel-commerce\\node_modules\\.bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Java\\jdk1.8.0_231\\bin;C:\\Program Files\\nodejs\\;C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\MongoDB\\Server\\4.2\\bin;;C:\\Program Files\\Git LFS;D:\\hoc-fpt\\code-tren-lop\\php\\xampp3\\php;C:\\ProgramData\\ComposerSetup\\bin;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\AdoptOpenJDK\\jdk8u192-b12\\bin;C:\\Program Files\\Java\\jdk1.8.0_211\\bin;C:\\Android\\android-sdk\\tools;C:\\Android\\android-sdk\\platform-tools;C:\\Android\\android-sdk\\tools\\bin;C:\\Program Files\\MySQL\\MySQL Shell 8.0\\bin\\;C:\\Program Files\\Java\\jdk1.8.0_231\\bin;C:\\Users\\nhan\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\nhan\\AppData\\Roaming\\npm;C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin;C:\\Program Files\\heroku\\bin;C:\\Users\\nhan\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\nhan\\AppData\\Roaming\\Composer\\vendor\\bin",
|
||||||
|
"PATHEXT": ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JSE;.WSF;.WSH;.MSC;.CPL",
|
||||||
|
"PORT": "3005 ",
|
||||||
|
"PROCESSOR_ARCHITECTURE": "AMD64",
|
||||||
|
"PROCESSOR_IDENTIFIER": "Intel64 Family 6 Model 58 Stepping 9, GenuineIntel",
|
||||||
|
"PROCESSOR_LEVEL": "6",
|
||||||
|
"PROCESSOR_REVISION": "3a09",
|
||||||
|
"ProgramData": "C:\\ProgramData",
|
||||||
|
"ProgramFiles": "C:\\Program Files",
|
||||||
|
"ProgramFiles(x86)": "C:\\Program Files (x86)",
|
||||||
|
"ProgramW6432": "C:\\Program Files",
|
||||||
|
"PROMPT": "$P$G",
|
||||||
|
"PSModulePath": "C:\\Users\\nhan\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules",
|
||||||
|
"PUBLIC": "C:\\Users\\Public",
|
||||||
|
"SESSIONNAME": "Console",
|
||||||
|
"SystemDrive": "C:",
|
||||||
|
"SystemRoot": "C:\\WINDOWS",
|
||||||
|
"TEMP": "C:\\Users\\nhan\\AppData\\Local\\Temp",
|
||||||
|
"TERM_PROGRAM": "vscode",
|
||||||
|
"TERM_PROGRAM_VERSION": "1.60.0",
|
||||||
|
"TMP": "C:\\Users\\nhan\\AppData\\Local\\Temp",
|
||||||
|
"TRACE_ID": "69c5adcb5945384d",
|
||||||
|
"USERDOMAIN": "DESKTOP-TILU55O",
|
||||||
|
"USERDOMAIN_ROAMINGPROFILE": "DESKTOP-TILU55O",
|
||||||
|
"USERNAME": "nhan",
|
||||||
|
"USERPROFILE": "C:\\Users\\nhan",
|
||||||
|
"VSCODE_GIT_ASKPASS_MAIN": "c:\\Users\\nhan\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass-main.js",
|
||||||
|
"VSCODE_GIT_ASKPASS_NODE": "C:\\Users\\nhan\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
|
||||||
|
"VSCODE_GIT_IPC_HANDLE": "\\\\.\\pipe\\vscode-git-d5d8071aa9-sock",
|
||||||
|
"windir": "C:\\WINDOWS",
|
||||||
|
"_prog": "node",
|
||||||
|
"__NEXT_PROCESSED_ENV": "true"
|
||||||
|
},
|
||||||
|
"sharedObjects": [
|
||||||
|
"C:\\Program Files\\nodejs\\node.exe",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\ntdll.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\KERNEL32.DLL",
|
||||||
|
"C:\\WINDOWS\\System32\\KERNELBASE.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\WS2_32.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\RPCRT4.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\ADVAPI32.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\msvcrt.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\sechost.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\USER32.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\win32u.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\GDI32.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\gdi32full.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\msvcp_win.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\ucrtbase.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\PSAPI.DLL",
|
||||||
|
"C:\\WINDOWS\\System32\\CRYPT32.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\bcrypt.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\dbghelp.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\IPHLPAPI.DLL",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\USERENV.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\WINMM.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\IMM32.DLL",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\powrprof.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\UMPDC.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\CRYPTBASE.DLL",
|
||||||
|
"C:\\WINDOWS\\system32\\uxtheme.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\combase.dll",
|
||||||
|
"C:\\WINDOWS\\system32\\mswsock.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\kernel.appcore.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\bcryptprimitives.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\NSI.dll",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\dhcpcsvc6.DLL",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\dhcpcsvc.DLL",
|
||||||
|
"C:\\WINDOWS\\SYSTEM32\\DNSAPI.dll",
|
||||||
|
"C:\\WINDOWS\\system32\\napinsp.dll",
|
||||||
|
"C:\\WINDOWS\\system32\\pnrpnsp.dll",
|
||||||
|
"C:\\WINDOWS\\system32\\wshbth.dll",
|
||||||
|
"C:\\WINDOWS\\system32\\NLAapi.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\winrnr.dll",
|
||||||
|
"C:\\Windows\\System32\\rasadhlp.dll",
|
||||||
|
"C:\\WINDOWS\\System32\\fwpuclnt.dll"
|
||||||
|
]
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
@import '../../../styles/utilities';
|
||||||
.authorWarper{
|
.authorWarper{
|
||||||
@apply flex flex-row items-center;
|
@apply flex flex-row items-center;
|
||||||
|
|
||||||
|
@ -2,9 +2,8 @@ import React from 'react';
|
|||||||
import s from './Author.module.scss';
|
import s from './Author.module.scss';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import Image from "next/image";
|
|
||||||
interface Props {
|
interface Props {
|
||||||
image:any,
|
image:string,
|
||||||
name: string
|
name: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12,7 +11,7 @@ const Author = ({image,name}:Props) =>{
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classNames(s.authorWarper)}>
|
<div className={classNames(s.authorWarper)}>
|
||||||
<Image className={classNames(s.authorImage)} src={image} alt=""/>
|
<img className={classNames(s.authorImage)} src={image} alt=""/>
|
||||||
<div className={classNames(s.authorName)}>{name}</div>
|
<div className={classNames(s.authorName)}>{name}</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
@screen md {
|
@screen md {
|
||||||
max-width: 55rem;
|
max-width: 52rem;
|
||||||
}
|
}
|
||||||
.top {
|
.top {
|
||||||
@apply flex justify-between items-center;
|
@apply flex justify-between items-center;
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
@import "../../../../styles/_utilities";
|
||||||
|
|
||||||
|
.blogContentWrapper{
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 2rem;
|
||||||
|
@screen md {
|
||||||
|
width: 90%;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
||||||
|
@screen xl{
|
||||||
|
width: 63%;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1{
|
||||||
|
@apply heading-2;
|
||||||
|
}
|
||||||
|
h2{
|
||||||
|
@apply heading-3;
|
||||||
|
}
|
||||||
|
h3{
|
||||||
|
@apply heading-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,h2,h3,h4{
|
||||||
|
color:var(--text-base);
|
||||||
|
font-family: var(--font-heading);
|
||||||
|
}
|
||||||
|
|
||||||
|
.author{
|
||||||
|
padding: 2rem 0;
|
||||||
|
}
|
||||||
|
.content{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
img{
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 2.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.boxShare{
|
||||||
|
@apply flex font-bold;
|
||||||
|
margin: 4rem 0;
|
||||||
|
color: var(--text-active);
|
||||||
|
.listIcon{
|
||||||
|
ul{
|
||||||
|
@apply flex;
|
||||||
|
li{
|
||||||
|
margin: 0px 1.6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Author, DateTime } from "src/components/common";
|
||||||
|
import IconFacebook from 'src/components/icons/IconFacebook';
|
||||||
|
import IconInstagram from 'src/components/icons/IconInstagram';
|
||||||
|
import IconTwitter from 'src/components/icons/IconTwitter';
|
||||||
|
import s from './BlogContent.module.scss';
|
||||||
|
import imageAuthor from '../../../common/Author/img/author.png';
|
||||||
|
import Link from 'next/link';
|
||||||
|
interface BlogContentProps {
|
||||||
|
className?: string
|
||||||
|
children?: any,
|
||||||
|
}
|
||||||
|
const BlogContent = ({}:BlogContentProps) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className={s.blogContentWrapper}>
|
||||||
|
<DateTime date="APRIL 30, 2021"/>
|
||||||
|
<h1>The Best Sesame Soy Broccoli Salad</h1>
|
||||||
|
<div className={s.author}>
|
||||||
|
<Author image={imageAuthor.src} name="Alessandro Del Piero" />
|
||||||
|
</div>
|
||||||
|
<section className={s.content}>
|
||||||
|
|
||||||
|
<p> When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<h2 className={s.heading2}>What is broccoli salad</h2>
|
||||||
|
<br/>
|
||||||
|
<p> When you’re trying to eat healthier but want something more substantial than a leafy green salad, broccoli salad is there for you. I love the crunch and heft of broccoli, especially when it’s cut up into bite size spoonable pieces.
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
Some people aren’t into raw broccoli, but I love it! I always go for the raw broccoli on those vegetable platters that seem to be at every potluck/party you go to.
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
This is a simple broccoli salad: you have the bulk of it, raw broccoli; crunchy red onions for a bit of acidity and raw crunch, craisins for sweetness, almonds for a nutty counter point; and a sweet and tangy soy-rice vinegar-sesame dressing.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<h2 className={s.heading2}>What about broccoli stems?</h2>
|
||||||
|
<br/>
|
||||||
|
<p>
|
||||||
|
You can eat broccoli stems. In fact, they are delicious. Just use a peeler to peel off the outsides and then trim the stalks into small 1/4”-1/2” cubes.
|
||||||
|
</p>
|
||||||
|
<br/>
|
||||||
|
<img src="https://i.pinimg.com/236x/f0/bd/a6/f0bda6a9ed04a6c4ac9453be80c95f75.jpg" alt="blog-detail" />
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div className={s.boxShare}>
|
||||||
|
<div className={s.share}>
|
||||||
|
Share to:
|
||||||
|
</div>
|
||||||
|
<div className={s.listIcon}>
|
||||||
|
<ul>
|
||||||
|
<li><Link href="/"><a> <IconFacebook/></a></Link></li>
|
||||||
|
<li><Link href="/"><a> <IconTwitter/></a></Link></li>
|
||||||
|
<li><Link href="/"><a> <IconInstagram/></a></Link></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BlogContent
|
@ -0,0 +1,21 @@
|
|||||||
|
.beadcrumb{
|
||||||
|
padding-left: 3.2rem;
|
||||||
|
padding-bottom: 3.2rem;
|
||||||
|
}
|
||||||
|
.image{
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
border-radius: 2.4rem;
|
||||||
|
@screen md {
|
||||||
|
width: 90%;
|
||||||
|
margin:0 auto;
|
||||||
|
margin-bottom: 4rem;
|
||||||
|
}
|
||||||
|
@screen xl{
|
||||||
|
width: 63%;
|
||||||
|
margin:0 auto;
|
||||||
|
margin-bottom: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
import React from 'react';
|
||||||
|
import BreadcrumbCommon from 'src/components/common/BreadcrumbCommon/BreadcrumbCommon';
|
||||||
|
import s from './BlogDetailImg.module.scss';
|
||||||
|
interface Props {
|
||||||
|
className?: string
|
||||||
|
children?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
const CRUMBS =[
|
||||||
|
{
|
||||||
|
name:"Blog",
|
||||||
|
link:"/blog"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
const BlogDetailImg = ({}:Props ) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className={s.beadcrumb}>
|
||||||
|
<BreadcrumbCommon crumbs={CRUMBS} />
|
||||||
|
</div>
|
||||||
|
<img className={s.image} src="https://i.pinimg.com/564x/3d/42/94/3d429429428377070c4f91844a8d8755.jpg" alt="Ảnh đại diện" />
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BlogDetailImg
|
Binary file not shown.
After Width: | Height: | Size: 709 KiB |
2
src/components/modules/blog-detail/index.ts
Normal file
2
src/components/modules/blog-detail/index.ts
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
export { default as BlogContent } from './BlogContent/BlogContent';
|
||||||
|
export { default as BlogDetailImg } from './BlogDetailImg/BlogDetailImg';
|
@ -0,0 +1,8 @@
|
|||||||
|
@import "../../../../styles/_utilities";
|
||||||
|
|
||||||
|
.recipeListBanner{
|
||||||
|
@apply spacing-horizontal;
|
||||||
|
@screen md {
|
||||||
|
padding:0 3.2rem;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Banner } from 'src/components/common'
|
||||||
|
import BannerRight from './assets/bannerrecipes.png'
|
||||||
|
import s from './RecipeListBanner.module.scss'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
}
|
||||||
|
|
||||||
|
const RecipeListBanner = ({ }: Props) => {
|
||||||
|
return (
|
||||||
|
<div className={s.recipeListBanner}>
|
||||||
|
<Banner
|
||||||
|
data={
|
||||||
|
[{
|
||||||
|
title: "Save 15% on your first order",
|
||||||
|
subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.",
|
||||||
|
imgLink: BannerRight.src,
|
||||||
|
size: "large",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</div >
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RecipeListBanner
|
Before Width: | Height: | Size: 780 KiB After Width: | Height: | Size: 780 KiB |
@ -0,0 +1,60 @@
|
|||||||
|
@import "../../../../../styles/_utilities";
|
||||||
|
|
||||||
|
.recipesItem {
|
||||||
|
@apply flex justify-between;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
|
||||||
|
@screen md{
|
||||||
|
@apply block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recipesItemImage {
|
||||||
|
@apply transition-all duration-200;
|
||||||
|
width: 31%;
|
||||||
|
img {
|
||||||
|
@apply block object-cover;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 12.5rem;
|
||||||
|
border-radius: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen md {
|
||||||
|
@apply object-cover cursor-pointer;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
img{
|
||||||
|
height:100%;
|
||||||
|
border-radius: 2.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.recipesItemText {
|
||||||
|
width: 65%;
|
||||||
|
.recipesItemName{
|
||||||
|
@apply topline font-bold cursor-pointer;
|
||||||
|
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
font-feature-settings: "salt" on;
|
||||||
|
color:var(--text-active);
|
||||||
|
margin-top: 1.6rem;
|
||||||
|
&:hover {
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@screen md {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.recipesItemDescription{
|
||||||
|
color:var(--text-label);
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
import Link from 'next/link';
|
||||||
|
import React from 'react';
|
||||||
|
import s from './RecipesItem.module.scss';
|
||||||
|
interface RecipesItem {
|
||||||
|
image:string,
|
||||||
|
name: string,
|
||||||
|
description:string,
|
||||||
|
link: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const RecipesItem = ({ image, name,description, link }: RecipesItem) => {
|
||||||
|
return (
|
||||||
|
<div className={s.recipesItem}>
|
||||||
|
<div className={s.recipesItemImage}>
|
||||||
|
<Link href={link}>
|
||||||
|
<a>
|
||||||
|
<img src={image} />
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
<Link href={link}>
|
||||||
|
<a className={s.recipesItemText}>
|
||||||
|
<div className={s.recipesItemName}>{name}</div>
|
||||||
|
<div className={s.recipesItemDescription}>{description}</div>
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div >
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RecipesItem
|
@ -0,0 +1,94 @@
|
|||||||
|
@import "../../../../styles/_utilities";
|
||||||
|
|
||||||
|
.recipesListWrapper {
|
||||||
|
@apply spacing-horizontal;
|
||||||
|
@screen md{
|
||||||
|
padding:0 3.2rem;
|
||||||
|
padding-bottom:5.6rem;
|
||||||
|
}
|
||||||
|
.breadcrumb{
|
||||||
|
padding:1rem 0;
|
||||||
|
}
|
||||||
|
.recipesListPageMain{
|
||||||
|
@screen md {
|
||||||
|
@apply flex;
|
||||||
|
}
|
||||||
|
.categories{
|
||||||
|
@apply hidden;
|
||||||
|
@screen md {
|
||||||
|
@apply hidden;
|
||||||
|
}
|
||||||
|
@screen xl{
|
||||||
|
@apply block;
|
||||||
|
width:25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.recipesList{
|
||||||
|
@screen md {
|
||||||
|
@apply flex justify-between flex-wrap w-full;
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
@screen xl {
|
||||||
|
width:75%;
|
||||||
|
}
|
||||||
|
.inner{
|
||||||
|
@screen md {
|
||||||
|
@apply flex flex-col items-center justify-center;
|
||||||
|
}
|
||||||
|
.boxItem {
|
||||||
|
@screen md {
|
||||||
|
@apply flex justify-between flex-wrap;
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
@screen md {
|
||||||
|
width: calc(97% / 2);
|
||||||
|
margin-top:1rem;
|
||||||
|
}
|
||||||
|
@screen lg{
|
||||||
|
width: calc(97% / 3);
|
||||||
|
margin-top:1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.recipesPagination{
|
||||||
|
@apply flex justify-center w-full;
|
||||||
|
margin: 3rem 0;
|
||||||
|
@screen md {
|
||||||
|
@apply flex justify-center ;
|
||||||
|
margin:2rem 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.boxSelect{
|
||||||
|
@apply flex justify-between w-full;
|
||||||
|
padding: 2.5rem 0;
|
||||||
|
|
||||||
|
@screen xl {
|
||||||
|
@apply block;
|
||||||
|
width: auto;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
.categorySelectCate{
|
||||||
|
@screen xl {
|
||||||
|
@apply hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
label{
|
||||||
|
@apply font-bold topline ;
|
||||||
|
color:var(--text-active);
|
||||||
|
@screen xl {
|
||||||
|
@apply hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
217
src/components/modules/recipes-list/RecipesList/RecipesList.tsx
Normal file
217
src/components/modules/recipes-list/RecipesList/RecipesList.tsx
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import BreadcrumbCommon from 'src/components/common/BreadcrumbCommon/BreadcrumbCommon';
|
||||||
|
import MenuNavigation from 'src/components/common/MenuNavigation/MenuNavigation';
|
||||||
|
import PaginationCommon from 'src/components/common/PaginationCommon/PaginationCommon';
|
||||||
|
import { RecipeCardProps } from 'src/components/common/RecipeCard/RecipeCard';
|
||||||
|
import image12 from "../../../../../public/assets/images/image12.png";
|
||||||
|
import image13 from "../../../../../public/assets/images/image13.png";
|
||||||
|
import image14 from "../../../../../public/assets/images/image14.png";
|
||||||
|
import RecipesItem from './RecipesItem/RecipesItem';
|
||||||
|
import HeadingCommon from "../../../common/HeadingCommon/HeadingCommon";
|
||||||
|
import s from './RecipesList.module.scss';
|
||||||
|
import { OPTION_ALL, QUERY_KEY, ROUTE } from 'src/utils/constanst.utils';
|
||||||
|
import { SelectCommon } from 'src/components/common';
|
||||||
|
|
||||||
|
const recipe:RecipeCardProps[] = [{
|
||||||
|
title: "Special Recipe of Vietnamese Phở",
|
||||||
|
description:"Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
||||||
|
imageSrc: image12.src
|
||||||
|
},{
|
||||||
|
title: "Original Recipe of Curry",
|
||||||
|
description:"Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
||||||
|
imageSrc: image13.src
|
||||||
|
},{
|
||||||
|
title: "The Best Recipe of Beef Noodle Soup",
|
||||||
|
description:"The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
||||||
|
imageSrc: image14.src
|
||||||
|
},{
|
||||||
|
title: "Special Recipe of Vietnamese Phở",
|
||||||
|
description:"Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
||||||
|
imageSrc: image12.src
|
||||||
|
},{
|
||||||
|
title: "Original Recipe of Curry",
|
||||||
|
description:"Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
||||||
|
imageSrc: image13.src
|
||||||
|
},{
|
||||||
|
title: "The Best Recipe of Beef Noodle Soup",
|
||||||
|
description:"The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
||||||
|
imageSrc: image14.src
|
||||||
|
}];
|
||||||
|
const BREADCRUMB = [
|
||||||
|
{
|
||||||
|
name: 'Special Recipes',
|
||||||
|
link: `#`,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const CATEGORY = [
|
||||||
|
{
|
||||||
|
name: 'All',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=${OPTION_ALL}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Malaysian',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=malaysia`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Vietnamese',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=vietnamese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Thailand',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=thailand`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Indian',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=indian`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lao',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=lao`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chinese',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=chinese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Korean',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=korean`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Japanese',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=japanese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Western',
|
||||||
|
link: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=western`,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const CATEGORYSELECT = [
|
||||||
|
{
|
||||||
|
name: 'All',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=${OPTION_ALL}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Malaysian',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=malaysia`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Vietnamese',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=vietnamese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Thailand',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=thailand`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Indian',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=indian`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lao',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=lao`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chinese',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=chinese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Korean',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=korean`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Japanese',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=japanese`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Western',
|
||||||
|
value: `${ROUTE.RECIPES}/?${QUERY_KEY.RECIPES}=western`,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const OPTIONSLECT=[
|
||||||
|
{
|
||||||
|
name:"Most Viewed",
|
||||||
|
value:"most-viewed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"Lastest Blogs",
|
||||||
|
value:"lastest-blogs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"Recent Blogs",
|
||||||
|
value:"recent-blogs"
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
interface Props{
|
||||||
|
data?: RecipeCardProps[],
|
||||||
|
recipes?:{
|
||||||
|
id:string,
|
||||||
|
title:string,
|
||||||
|
image:string,
|
||||||
|
description:string,
|
||||||
|
link:string
|
||||||
|
}[],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const RecipesList = ({ data =recipe}:Props) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className={s.recipesListWrapper}>
|
||||||
|
<div className={s.breadcrumb}>
|
||||||
|
<BreadcrumbCommon crumbs={BREADCRUMB} />
|
||||||
|
</div>
|
||||||
|
<div className={s.recipesListPageMain}>
|
||||||
|
|
||||||
|
<div className={s.categories}>
|
||||||
|
<MenuNavigation categories={CATEGORY} heading="Categories"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={s.recipesList}>
|
||||||
|
<HeadingCommon align='left'>SPECIAL RECIPES</HeadingCommon>
|
||||||
|
|
||||||
|
<div className={s.boxSelect}>
|
||||||
|
<div className={s.categorySelectCate}>
|
||||||
|
<label htmlFor="">Categories</label>
|
||||||
|
<div className={s.select}>
|
||||||
|
<SelectCommon option={CATEGORYSELECT} placeholder="Categories"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={s.categorySelectSort}>
|
||||||
|
<label htmlFor="" >Sort By</label>
|
||||||
|
<div className={s.select}>
|
||||||
|
<SelectCommon option={OPTIONSLECT} placeholder="Sort By" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={s.inner}>
|
||||||
|
<div className={s.boxItem}>
|
||||||
|
{data?.map((item,index) => (
|
||||||
|
<div key={index} className={s.item}>
|
||||||
|
<RecipesItem
|
||||||
|
name={item.title}
|
||||||
|
image={item.imageSrc}
|
||||||
|
description={item.description}
|
||||||
|
link="#"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={s.recipesPagination}>
|
||||||
|
<PaginationCommon pageSize={6} total={9}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RecipesList
|
2
src/components/modules/recipes-list/index.ts
Normal file
2
src/components/modules/recipes-list/index.ts
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
export { default as RecipeListBanner } from './RecipeListBanner/RecipeListBanner'
|
||||||
|
export { default as RecipesList} from './RecipesList/RecipesList'
|
@ -185,31 +185,37 @@ export const RECIPE_DATA_TEST: RecipeCardProps[] = [
|
|||||||
{
|
{
|
||||||
title: "Special Recipe of Vietnamese Phở",
|
title: "Special Recipe of Vietnamese Phở",
|
||||||
description: "Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
description: "Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159257-f92574c7-d00d-4142-8ea7-0ca9515fb737.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159257-f92574c7-d00d-4142-8ea7-0ca9515fb737.png',
|
||||||
|
slug: "special-recipe-of-vietnamese-pho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Original Recipe of Curry",
|
title: "Original Recipe of Curry",
|
||||||
description: "Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
description: "Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159259-ae4c986d-ab53-4758-9137-d06bafdd15d0.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159259-ae4c986d-ab53-4758-9137-d06bafdd15d0.png',
|
||||||
|
slug:"original-recipe-of-curry"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "The Best Recipe of Beef Noodle Soup",
|
title: "The Best Recipe of Beef Noodle Soup",
|
||||||
description: "The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
description: "The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159262-f28a9fb9-4852-47e6-80b5-d600521b548a.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159262-f28a9fb9-4852-47e6-80b5-d600521b548a.png',
|
||||||
|
slug:"the-best-recipe-of-beef-noodle-soup"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Special Recipe of Vietnamese Phở",
|
title: "Special Recipe of Vietnamese Phở",
|
||||||
description: "Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
description: "Alright, before we get to the actual recipe, let’s chat for a sec about the ingredients. To make this pho soup recipe, you will need:",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159257-f92574c7-d00d-4142-8ea7-0ca9515fb737.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159257-f92574c7-d00d-4142-8ea7-0ca9515fb737.png',
|
||||||
|
slug: "special-recipe-of-vietnamese-pho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Original Recipe of Curry",
|
title: "Original Recipe of Curry",
|
||||||
description: "Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
description: "Chicken curry is common to several countries including India, countries in Asia and the Caribbean. My favorite of them though is this aromatic Indian...",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159259-ae4c986d-ab53-4758-9137-d06bafdd15d0.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159259-ae4c986d-ab53-4758-9137-d06bafdd15d0.png',
|
||||||
|
slug:"original-recipe-of-curry"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "The Best Recipe of Beef Noodle Soup",
|
title: "The Best Recipe of Beef Noodle Soup",
|
||||||
description: "The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
description: "The broth for Bun Bo Hue is prepared by slowly simmering various types of beef and pork bones (ox tail, beef shank, pork neck bones, pork feet,...",
|
||||||
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159262-f28a9fb9-4852-47e6-80b5-d600521b548a.png'
|
imageSrc: 'https://user-images.githubusercontent.com/76729908/132159262-f28a9fb9-4852-47e6-80b5-d600521b548a.png',
|
||||||
|
slug:"the-best-recipe-of-beef-noodle-soup"
|
||||||
},
|
},
|
||||||
]
|
]
|
@ -20,6 +20,7 @@ export interface FeaturedProductProps {
|
|||||||
|
|
||||||
export interface RecipeProps {
|
export interface RecipeProps {
|
||||||
title: string
|
title: string
|
||||||
|
slug: string
|
||||||
description: string
|
description: string
|
||||||
imageSrc: string
|
imageSrc: string
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user