@ -0,0 +1,9 @@ |
|||||
|
import React from "react"; |
||||
|
import "./header.scss"; |
||||
|
const Header = () => ( |
||||
|
<div className="header"> |
||||
|
<div className="left"></div> |
||||
|
<div className="right"></div> |
||||
|
</div> |
||||
|
); |
||||
|
export default Header; |
||||
@ -0,0 +1,7 @@ |
|||||
|
.header { |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
width: 100vw; |
||||
|
display: flex; |
||||
|
} |
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,22 @@ |
|||||
|
import shopInfo from "./shopInfo.json"; |
||||
|
const shopsGroupedByFormat = shopInfo.reduce((acc, { shopList }) => { |
||||
|
shopList.forEach((shop) => { |
||||
|
Object.assign(shop, { |
||||
|
url: "http://1000my.com/MallSite/" + encodeURIComponent(shop.logoPath), |
||||
|
}); |
||||
|
acc[shop.shopFormat] = acc[shop.shopFormat] |
||||
|
? [...acc[shop.shopFormat], shop] |
||||
|
: [shop]; |
||||
|
}); |
||||
|
return acc; |
||||
|
}, {}); |
||||
|
const formats = Object.entries(shopsGroupedByFormat) |
||||
|
// .filter(([_, items]) => items.length > 13)
|
||||
|
.map(([name, items]) => ({ |
||||
|
name, |
||||
|
items, |
||||
|
imgWidth: 160, |
||||
|
imgHeight: 120, |
||||
|
})); |
||||
|
console.log(formats); |
||||
|
export default formats; |
||||
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 288 KiB |
|
After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 250 KiB |
|
After Width: | Height: | Size: 228 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 266 KiB |
@ -0,0 +1,11 @@ |
|||||
|
function importAll(r) { |
||||
|
let obj = {}; |
||||
|
r.keys().forEach((key) => { |
||||
|
obj[key.replace("./", "").replace(".jpg", "").replace(".png", "")] = r(key); |
||||
|
}); |
||||
|
return obj; |
||||
|
} |
||||
|
|
||||
|
const uniqlo = importAll(require.context("./", false, /\.(png|jpe?g|svg)$/)); |
||||
|
|
||||
|
export default uniqlo; |
||||
@ -1,13 +1,17 @@ |
|||||
body { |
body { |
||||
margin: 0; |
margin: 0; |
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', |
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', |
|
||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", |
||||
|
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", |
||||
sans-serif; |
sans-serif; |
||||
-webkit-font-smoothing: antialiased; |
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
-moz-osx-font-smoothing: grayscale; |
||||
} |
} |
||||
|
|
||||
code { |
code { |
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', |
|
||||
|
font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", |
||||
monospace; |
monospace; |
||||
} |
} |
||||
|
@font-face { |
||||
|
font-family: "ChaletComprime"; |
||||
|
src: url("./Chalet\ Comprime\ Cologne\ Sixty.ttf") format("truetype"); |
||||
|
} |
||||
|
|||||