Toggle navigation
Toggle navigation
This project
Loading...
Sign in
권주희
/
howsTheAir
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
권주희
2020-05-30 16:12:48 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b1f642f01b3a6675c43d8b4a982f338a6df0f7a2
b1f642f0
1 parent
0bf493f2
setting the basic layout of frontend
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
529 additions
and
18 deletions
frontend/package-lock.json
frontend/package.json
frontend/src/home.css
frontend/src/home.js
frontend/package-lock.json
View file @
b1f642f
...
...
@@ -1487,6 +1487,25 @@
"resolved"
:
"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz"
,
"integrity"
:
"sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
},
"@popperjs/core"
:
{
"version"
:
"2.4.0"
,
"resolved"
:
"https://registry.npmjs.org/@popperjs/core/-/core-2.4.0.tgz"
,
"integrity"
:
"sha512-NMrDy6EWh9TPdSRiHmHH2ye1v5U0gBD7pRYwSwJvomx7Bm4GG04vu63dYiVzebLOx2obPpJugew06xVP0Nk7hA=="
},
"@restart/context"
:
{
"version"
:
"2.1.4"
,
"resolved"
:
"https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz"
,
"integrity"
:
"sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q=="
},
"@restart/hooks"
:
{
"version"
:
"0.3.25"
,
"resolved"
:
"https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.25.tgz"
,
"integrity"
:
"sha512-m2v3N5pxTsIiSH74/sb1yW8D9RxkJidGW+5Mfwn/lHb2QzhZNlaU1su7abSyT9EGf0xS/0waLjrf7/XxQHUk7w=="
,
"requires"
:
{
"lodash"
:
"^4.17.15"
,
"lodash-es"
:
"^4.17.15"
}
},
"@sheerun/mutationobserver-shim"
:
{
"version"
:
"0.3.3"
,
"resolved"
:
"https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz"
,
...
...
@@ -1702,6 +1721,8 @@
},
"@testing-library/jest-dom"
:
{
"version"
:
"4.2.4"
,
"resolved"
:
"https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz"
,
"integrity"
:
"sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.5.1"
,
"chalk"
:
"^2.4.1"
,
...
...
@@ -1726,6 +1747,8 @@
},
"@testing-library/react"
:
{
"version"
:
"9.5.0"
,
"resolved"
:
"https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz"
,
"integrity"
:
"sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.8.4"
,
"@testing-library/dom"
:
"^6.15.0"
,
...
...
@@ -1733,7 +1756,9 @@
}
},
"@testing-library/user-event"
:
{
"version"
:
"7.2.1"
"version"
:
"7.2.1"
,
"resolved"
:
"https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz"
,
"integrity"
:
"sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA=="
},
"@types/babel__core"
:
{
"version"
:
"7.1.7"
,
...
...
@@ -1965,6 +1990,11 @@
}
}
},
"@types/warning"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz"
,
"integrity"
:
"sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
},
"@types/yargs"
:
{
"version"
:
"13.0.9"
,
"resolved"
:
"https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz"
,
...
...
@@ -3585,6 +3615,11 @@
}
}
},
"classnames"
:
{
"version"
:
"2.2.6"
,
"resolved"
:
"https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz"
,
"integrity"
:
"sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
},
"clean-css"
:
{
"version"
:
"4.2.3"
,
"resolved"
:
"https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz"
,
...
...
@@ -4585,6 +4620,15 @@
"utila"
:
"~0.4"
}
},
"dom-helpers"
:
{
"version"
:
"5.1.4"
,
"resolved"
:
"https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz"
,
"integrity"
:
"sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.8.7"
,
"csstype"
:
"^2.6.7"
}
},
"dom-serializer"
:
{
"version"
:
"0.2.2"
,
"resolved"
:
"https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz"
,
...
...
@@ -8258,6 +8302,11 @@
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"
,
"integrity"
:
"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash-es"
:
{
"version"
:
"4.17.15"
,
"resolved"
:
"https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz"
,
"integrity"
:
"sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ=="
},
"lodash._reinterpolate"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
,
...
...
@@ -10624,6 +10673,15 @@
"react-is"
:
"^16.8.1"
}
},
"prop-types-extra"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz"
,
"integrity"
:
"sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew=="
,
"requires"
:
{
"react-is"
:
"^16.3.2"
,
"warning"
:
"^4.0.0"
}
},
"proxy-addr"
:
{
"version"
:
"2.0.6"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"
,
...
...
@@ -10782,6 +10840,8 @@
},
"react"
:
{
"version"
:
"16.13.1"
,
"resolved"
:
"https://registry.npmjs.org/react/-/react-16.13.1.tgz"
,
"integrity"
:
"sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w=="
,
"requires"
:
{
"loose-envify"
:
"^1.1.0"
,
"object-assign"
:
"^4.1.1"
,
...
...
@@ -10801,6 +10861,26 @@
"whatwg-fetch"
:
"^3.0.0"
}
},
"react-bootstrap"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.1.tgz"
,
"integrity"
:
"sha512-xMHwsvDN7sIv26P9wWiosWjITZije2dRCjEJHVfV2KFoSJY+8uv2zttEw0XMB7xviQcW3zuIGLJXuj8vf6lYEg=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.4.2"
,
"@restart/context"
:
"^2.1.4"
,
"@restart/hooks"
:
"^0.3.21"
,
"@types/react"
:
"^16.9.23"
,
"classnames"
:
"^2.2.6"
,
"dom-helpers"
:
"^5.1.2"
,
"invariant"
:
"^2.2.4"
,
"prop-types"
:
"^15.7.2"
,
"prop-types-extra"
:
"^1.1.0"
,
"react-overlays"
:
"^3.1.2"
,
"react-transition-group"
:
"^4.0.0"
,
"uncontrollable"
:
"^7.0.0"
,
"warning"
:
"^4.0.3"
}
},
"react-dev-utils"
:
{
"version"
:
"10.2.1"
,
"resolved"
:
"https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz"
,
...
...
@@ -11033,6 +11113,8 @@
},
"react-dom"
:
{
"version"
:
"16.13.1"
,
"resolved"
:
"https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz"
,
"integrity"
:
"sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag=="
,
"requires"
:
{
"loose-envify"
:
"^1.1.0"
,
"object-assign"
:
"^4.1.1"
,
...
...
@@ -11050,6 +11132,26 @@
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
,
"integrity"
:
"sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-lifecycles-compat"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz"
,
"integrity"
:
"sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"react-overlays"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-overlays/-/react-overlays-3.2.0.tgz"
,
"integrity"
:
"sha512-YTgCmw6l4uBOYylSnc3V8WLX+A0EoGnzDrqkYz0K7MUKbMBZFpaxLXH4EF9eZbspd+syZHQ5XAABI7n/zak1EA=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.4.5"
,
"@popperjs/core"
:
"^2.0.0"
,
"@restart/hooks"
:
"^0.3.12"
,
"@types/warning"
:
"^3.0.0"
,
"dom-helpers"
:
"^5.1.0"
,
"prop-types"
:
"^15.7.2"
,
"uncontrollable"
:
"^7.0.0"
,
"warning"
:
"^4.0.3"
}
},
"react-router"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz"
,
...
...
@@ -11098,6 +11200,8 @@
},
"react-scripts"
:
{
"version"
:
"3.4.1"
,
"resolved"
:
"https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.1.tgz"
,
"integrity"
:
"sha512-JpTdi/0Sfd31mZA6Ukx+lq5j1JoKItX7qqEK4OiACjVQletM1P38g49d9/D0yTxp9FrSF+xpJFStkGgKEIRjlQ=="
,
"requires"
:
{
"@babel/core"
:
"7.9.0"
,
"@svgr/webpack"
:
"4.3.3"
,
...
...
@@ -11175,6 +11279,17 @@
}
}
},
"react-transition-group"
:
{
"version"
:
"4.4.1"
,
"resolved"
:
"https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz"
,
"integrity"
:
"sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.5.5"
,
"dom-helpers"
:
"^5.0.1"
,
"loose-envify"
:
"^1.4.0"
,
"prop-types"
:
"^15.6.2"
}
},
"read-pkg"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"
,
...
...
@@ -13232,6 +13347,17 @@
"resolved"
:
"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
,
"integrity"
:
"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"uncontrollable"
:
{
"version"
:
"7.1.1"
,
"resolved"
:
"https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz"
,
"integrity"
:
"sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q=="
,
"requires"
:
{
"@babel/runtime"
:
"^7.6.3"
,
"@types/react"
:
"^16.9.11"
,
"invariant"
:
"^2.2.4"
,
"react-lifecycles-compat"
:
"^3.0.4"
}
},
"unicode-canonical-property-names-ecmascript"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz"
,
...
...
@@ -13523,6 +13649,14 @@
"makeerror"
:
"1.0.x"
}
},
"warning"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/warning/-/warning-4.0.3.tgz"
,
"integrity"
:
"sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w=="
,
"requires"
:
{
"loose-envify"
:
"^1.0.0"
}
},
"watchpack"
:
{
"version"
:
"1.7.2"
,
"resolved"
:
"https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz"
,
...
...
frontend/package.json
View file @
b1f642f
...
...
@@ -7,6 +7,7 @@
"@testing-library/react"
:
"^9.3.2"
,
"@testing-library/user-event"
:
"^7.1.2"
,
"react"
:
"^16.13.1"
,
"react-bootstrap"
:
"^1.0.1"
,
"react-dom"
:
"^16.13.1"
,
"react-router-dom"
:
"^5.2.0"
,
"react-scripts"
:
"3.4.1"
...
...
frontend/src/home.css
0 → 100644
View file @
b1f642f
.Home
{
text-align
:
center
;
}
.Home-logo
{
height
:
40vmin
;
pointer-events
:
none
;
}
@media
(
prefers-reduced-motion
:
no-preference
)
{
.Home-logo
{
animation
:
Home-logo-spin
infinite
20s
linear
;
}
}
.Home-header
{
background-color
:
#282c34
;
min-height
:
13vh
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
calc
(
10px
+
2vmin
);
color
:
white
;
font-weight
:
bold
;
}
.Home-link
{
color
:
#61dafb
;
}
@keyframes
Home-logo-spin
{
from
{
transform
:
rotate
(
0deg
);
}
to
{
transform
:
rotate
(
360deg
);
}
}
.strong
{
font-size
:
calc
(
10px
+
1vmin
);
font-weight
:
bold
;
}
.map_wrap
,
.map_wrap
*
{
margin
:
0
;
padding
:
0
;
font-family
:
"Malgun Gothic"
,
dotum
,
"돋움"
,
sans-serif
;
font-size
:
12px
;
}
.map_wrap
a
,
.map_wrap
a
:hover
,
.map_wrap
a
:active
{
color
:
#000
;
text-decoration
:
none
;
}
.map_wrap
{
position
:
relative
;
width
:
100%
;
height
:
500px
;
}
#menu_wrap
{
position
:
absolute
;
top
:
0
;
left
:
0
;
bottom
:
0
;
width
:
250px
;
margin
:
10px
0
30px
10px
;
padding
:
5px
;
overflow-y
:
auto
;
background
:
rgba
(
53
,
53
,
53
,
0.8
);
z-index
:
1
;
font-size
:
12px
;
border-radius
:
10px
;
}
.bg_white
{
background
:
#fff
;
}
x
#menu_wrap
hr
{
display
:
block
;
height
:
1px
;
border
:
0
;
border-top
:
2px
solid
#5f5f5f
;
margin
:
3px
0
;
}
#menu_wrap
.option
{
text-align
:
center
;
color
:
#ffffff
;
font-weight
:
bold
;
}
#menu_wrap
.option
p
{
margin
:
10px
0
;
}
#menu_wrap
.option
button
{
margin-left
:
5px
;
}
#placesList
li
{
list-style
:
none
;
}
#placesList
.item
{
position
:
relative
;
border-bottom
:
1px
solid
#888
;
overflow
:
hidden
;
cursor
:
pointer
;
min-height
:
65px
;
}
#placesList
.item
span
{
display
:
block
;
margin-top
:
4px
;
}
#placesList
.item
h5
,
#placesList
.item
.info
{
text-overflow
:
ellipsis
;
overflow
:
hidden
;
white-space
:
nowrap
;
}
#placesList
.item
.info
{
padding
:
10px
0
10px
55px
;
color
:
#ffffff
;
}
#placesList
.info
.gray
{
color
:
#eaeaea
;
}
#placesList
.info
.jibun
{
padding-left
:
26px
;
background
:
url(http://t1.daumcdn.net/localimg/localimages/07/mapapidoc/places_jibun.png)
no-repeat
;
}
#placesList
.info
.tel
{
color
:
#ffbb00
;
font-weight
:
bold
;
}
#placesList
.item
.markerbg
{
float
:
left
;
position
:
absolute
;
width
:
36px
;
height
:
37px
;
margin
:
10px
0
0
10px
;
background
:
url(http://t1.daumcdn.net/localimg/localimages/07/mapapidoc/marker_number_blue.png)
no-repeat
;
}
#placesList
.item
.marker_1
{
background-position
:
0
-10px
;
}
#placesList
.item
.marker_2
{
background-position
:
0
-56px
;
}
#placesList
.item
.marker_3
{
background-position
:
0
-102px
;
}
#placesList
.item
.marker_4
{
background-position
:
0
-148px
;
}
#placesList
.item
.marker_5
{
background-position
:
0
-194px
;
}
#placesList
.item
.marker_6
{
background-position
:
0
-240px
;
}
#placesList
.item
.marker_7
{
background-position
:
0
-286px
;
}
#placesList
.item
.marker_8
{
background-position
:
0
-332px
;
}
#placesList
.item
.marker_9
{
background-position
:
0
-378px
;
}
#placesList
.item
.marker_10
{
background-position
:
0
-423px
;
}
#placesList
.item
.marker_11
{
background-position
:
0
-470px
;
}
#placesList
.item
.marker_12
{
background-position
:
0
-516px
;
}
#placesList
.item
.marker_13
{
background-position
:
0
-562px
;
}
#placesList
.item
.marker_14
{
background-position
:
0
-608px
;
}
#placesList
.item
.marker_15
{
background-position
:
0
-654px
;
}
#pagination
{
margin
:
10px
auto
;
text-align
:
center
;
}
#pagination
a
{
display
:
inline-block
;
margin-right
:
10px
;
}
#pagination
.on
{
font-weight
:
bold
;
cursor
:
default
;
color
:
#777
;
}
.wraps
{
position
:
absolute
;
left
:
0
;
bottom
:
40px
;
width
:
288px
;
height
:
132px
;
margin-left
:
-144px
;
text-align
:
left
;
overflow
:
hidden
;
font-size
:
12px
;
font-family
:
"Malgun Gothic"
,
dotum
,
"돋움"
,
sans-serif
;
line-height
:
1.5
;
}
.wraps
*
{
padding
:
0
;
margin
:
0
;
}
.wraps
.infos
{
width
:
286px
;
height
:
120px
;
border-radius
:
5px
;
border-bottom
:
2px
solid
#ccc
;
border-right
:
1px
solid
#ccc
;
overflow
:
hidden
;
background
:
#fff
;
}
.wraps
.infos
:nth-child
(
1
)
{
border
:
0
;
box-shadow
:
0px
1px
2px
#888
;
}
.infos
.title
{
padding
:
5px
0
0
10px
;
height
:
30px
;
background
:
#eee
;
border-bottom
:
1px
solid
#ddd
;
font-size
:
18px
;
font-weight
:
bold
;
}
.infos
.close
{
position
:
absolute
;
top
:
10px
;
right
:
10px
;
color
:
#888
;
width
:
17px
;
height
:
17px
;
background
:
url("http://t1.daumcdn.net/localimg/localimages/07/mapapidoc/overlay_close.png")
;
}
.infos
.close
:hover
{
cursor
:
pointer
;
}
.infos
.body
{
position
:
relative
;
overflow
:
hidden
;
}
.infos
.desc
{
position
:
relative
;
margin
:
13px
0
0
90px
;
height
:
75px
;
}
.desc
.ellipsis
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.desc
.jibun
{
font-size
:
11px
;
color
:
#888
;
margin-top
:
-2px
;
}
.infos
.img
{
position
:
absolute
;
top
:
6px
;
left
:
5px
;
width
:
73px
;
height
:
71px
;
border
:
1px
solid
#ddd
;
color
:
#888
;
overflow
:
hidden
;
}
.infos
:after
{
content
:
""
;
position
:
absolute
;
margin-left
:
-12px
;
left
:
50%
;
bottom
:
0
;
width
:
22px
;
height
:
12px
;
background
:
url("http://t1.daumcdn.net/localimg/localimages/07/mapapidoc/vertex_white.png")
;
}
.infos
.link
{
color
:
#5085bb
;
}
#footer
{
position
:
absolute
;
bottom
:
0
;
width
:
100%
;
height
:
100px
;
background
:
#ccc
;
}
.left-box
{
float
:
left
;
width
:
20%
;
}
.left-box
h5
{
font-size
:
1rem
;
font-style
:
italic
;
padding-left
:
10px
;
}
.right-box
{
float
:
right
;
width
:
80%
;
}
.right-box
h5
{
font-size
:
1rem
;
font-style
:
italic
;
padding-left
:
10px
;
}
#middle
{
text-align
:
center
;
}
.info-button
{
border-radius
:
4px
;
background-color
:
#4641d9
;
width
:
100px
;
color
:
white
;
}
frontend/src/home.js
View file @
b1f642f
import
React
,
{
Component
}
from
"react"
;
import
logo
from
"./logo.svg"
;
import
"./App.css"
;
import
Button
from
"react-bootstrap/Button"
;
import
"./home.css"
;
export
default
class
Home
extends
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{};
this
.
state
=
{
map
:
null
,
markers
:
[],
curAirCondition
:
null
,
routeInformation
:
null
,
};
}
render
()
{
let
currentAirCondition
=
null
;
let
routeAirCondition
=
null
;
return
(
<
div
className
=
"App"
>
<
header
className
=
"App-header"
>
<
img
src
=
{
logo
}
className
=
"App-logo"
alt
=
"logo"
/>
<
p
>
Edit
<
code
>
src
/
App
.
js
<
/code> and save to reload
.
<
/p
>
<
a
className
=
"App-link"
href
=
"https://reactjs.org"
target
=
"_blank"
rel
=
"noopener noreferrer"
>
Learn
React
<
/a
>
<
/header
>
<
/div
>
<
section
id
=
"home"
>
<
div
className
=
"cover"
>
<
div
className
=
"Home-header"
>
How
'
s
the
Weather
?
!<
/div
>
<
/div
>
<
div
className
=
"map_wrap"
>
<
div
id
=
"map"
style
=
{{
width
:
"1000px"
,
height
:
"600px"
,
align
:
"middle"
}}
><
/div
>
<
div
id
=
"menu_wrap"
className
=
"bg_white"
>
<
div
className
=
"option"
>
지역
검색
:{
" "
}
<
input
type
=
"text"
value
=
{
this
.
state
.
region
}
id
=
"keyword"
size
=
"15"
onChange
=
{(
e
)
=>
this
.
setState
({
region
:
e
.
target
.
value
})}
/
>
<
Button
variant
=
"light"
type
=
"submit"
onClick
=
{
this
.
searchPlaces
}
>
검색하기
<
/Button
>
<
/div
>
<
ul
id
=
"placesList"
><
/ul
>
<
div
id
=
"pagination"
><
/div
>
<
/div
>
<
ul
id
=
"placesList"
><
/ul
>
<
div
id
=
"pagination"
><
/div
>
<
/div
>
<
div
id
=
"footer"
>
<
div
className
=
"left-box"
>
<
h5
>
현재위치
:
{
this
.
state
.
region
}
<
/h5
>
<
br
/>
<
div
id
=
"middle"
>
{
currentAirCondition
}
<
/div
>
<
/div
>
<
div
className
=
"right-box"
>
<
h5
>
출발지
:
{
this
.
state
.
departureTitle
}
<
br
/>
도착지
:
{
this
.
state
.
arrivalTitle
}
<
br
/>
<
Button
variant
=
"secondary"
onClick
=
{
this
.
getRouteAirCondition
}
>
{
" "
}
경로별
미세먼지
정보
알아보기
{
" "
}
<
/Button>{" "
}
<
br
/>
<
br
/>
<
/h5
>
<
div
id
=
"middle"
>
{
routeAirCondition
}
<
/div
>
<
/div
>
<
/div
>
<
/section
>
);
}
}
...
...
Please
register
or
login
to post a comment