{"version":3,"sources":["conponents/HeaderTop.jsx","containers/HomeContent.jsx","conponents/shared/Footer.jsx","static/home2-01.jpg","static/fb-gray.svg","static/IG-gray.svg","conponents/Loading/loading.jsx","static/button-border-deepWhite.png","static/button-border-gray.png","static/icon04.svg","config/config.js","conponents/shared/SpecialBlock.jsx","App.js","static/user-circle-white.png","static/footer-border.png","static/fb.svg","static/IG.svg","static/icon01.svg","static/Bar_Cocktails-left.jpg","static/Bar_Cocktails-right.jpg","static/drink_promo.jpg","static/button-border-deepGray.png","static/store01.jpg","static/store02.jpg","static/store03.jpg","static/store04.jpg","static/num1.svg","static/num2.svg","static/user-circle-solid.svg","static/icon_account_hover-01.svg","containers/AboutUs.jsx","containers/FoodAndDrink.jsx","containers/Food.jsx","containers/Drinks.jsx","containers/Lunch.jsx","containers/HappyHour.jsx","conponents/shared/Textinput.jsx","conponents/shared/Textarea.jsx","conponents/shared/Radioinput.jsx","conponents/shared/Dropdown.jsx","shared/form.js","containers/GiftCards.jsx","containers/PrivateEvents.jsx","containers/Promotions.jsx","containers/PromotionDetail.jsx","containers/Member.jsx","containers/Reservation.jsx","containers/ContactUs.jsx","containers/FAQ.jsx","containers/YourPrivacy.jsx","containers/FoodMenu1.jsx","containers/HomeContent2.jsx","containers/HomeContent3.jsx","containers/OnlineBooking.jsx","conponents/HeaderTop2.jsx","conponents/NavList2.jsx","conponents/NavList3.jsx","conponents/Header2.jsx","conponents/Header3.jsx","conponents/shared/BackTopBtn.jsx","containers/MainBoard.jsx","static/divider-center.png","static/divider-left.png","containers/Home.jsx","static/feature_lobster.jpg","static/feature_steak.jpg","static/tile_diagram.png","static/huneeus-small.jpg","static/feature_faust.jpg","static/divider-right.png","static/stagsleaphero.jpg","static/private-event01.jpg","static/private-event02.jpg","static/private-event03.jpg","static/food-detail-01.png","static/food-detail-02.jpg","static/food06.jpg","static/white_wine_feature.jpg","static/user-circle-solid.png","static/fleur-gray.svg","static/dots.png","serviceWorker.js","index.js","static/ruthschris_global_logo.png","conponents/NavList.jsx","conponents/Header.jsx","static/icon1.svg","static/icon2.svg","static/icon3.svg","static/icon4.svg","reducers/Content.js","actions/Map.js","reducers/MapData.js","reducers/index.js","shared/Store.js","static/food-detail-03.svg","static/wine-red.svg","static/food09.jpg","shared/Api.js","actions/index.js"],"names":["HeaderTop","menuVisible","this","props","class","PureComponent","HomeContent","document","body","scrollTop","documentElement","pathname","location","nodeData","menuData","langData","mainpPath","split","responseData","type","datas","find","val","route","title","summary","html","to","hash","achor","style","backgroundImage","url","backgroundSize","food_detail03","address","temp","reduxHook","connect","state","Content","allNodes","lang","dispatch","bindActionCreators","indexAction","compose","withRouter","StyleWarpper","styled","div","StyleFooterBorder","footerBorder","StyleStoreWarp","StyleStore","Footer","footerData","storeData","src","fleurGray","alt","map","key","href","target","fb","ig","IG","subHtml","length","footerStore","module","exports","Loading","loading","langurageData","console","log","process","name","bookingName","option","emailHead","country","memberAlert","APPCONFIG","countryID","BackEndWebApi","intervalsTime","langurage","LET_STAY_IN_TOUCH","specialBlock","className","Component","If_you_need","Search_all_store","SpecialBlock","fetchSpecialBlock","preprops","content","hot","store","history","path","render","AboutUs","fetchNodeData","dangerouslySetInnerHTML","__html","width","height","loop","controls","StyleImg","imgUrl","imgRight","getLength","StyleMenu","StyleMenuLeft","StyleMenuList","StyleMenuItemWep","StyleMenuItem","Link","StyleLink","StyleInnerBlockL","FoodAndDrink","bottomHeight","selectList","childNode","filter","data","x","y","pageTitle","push","nodeId","index","id","getSummary","StyleSubTitleRed","isClick","StyleSubTitle","StyleContentFoodList","StyleFoodItem","StyleTextTitleLink","StyleTextTitle","StyleContentImg","StyleDividingLine","StyleIconFleur","iconFleur","StyleDividingText","dividerLeft","dividerRight","dividerCenter","StyleContentSpecialtyList","StyleSpecialtytItem","StyleDividingType","dots","StyleIconFleurWep","StyleSeafoodImg","Food","getFoodDetailData","fetchFoodDetailData","getFoodDetail","Datas","reservations","isDynamicArea","dynamicData","steaksArticleData","isArticle","steaksData","appetizersArticleData","appetizersData","transform","color","iconSteak","list","StyleContentBg","BarCocktailsLeft","BarCocktailsRight","StyleContent","StyleLeft","StyleImgRight","StyleRight","StyleTextItalic","StyleDessertContent","StyleDessertItem","StyleImgRedWine","StyleRedWineItem","StyleRedWineTextInner","StyleWineOpenImg","StyleRightDown","StyleWhiteWineImg","StyleWineEnd","StyleImgChampagne","StyleSparklingItem","Drinks","margin","wineRed","StyleLunchImg","StyleContentLunchList","StyleLunchItem","StyleLunchItemTitle","Lunch","AppetizersData","BurgersData","EntreesData","drinkPromo","StyleHappyHourImg","StyleHappyHourImgFull","StyleHappyHourItemTitle","StyleSwirlItem","HappyHour","FoodData","isFullWidth","StyleErrorMsg","regexCheck","value","match","TextInput","errorMsg","input","onChange","placeholder","regex","setHintMsg","hintMsg","changeType","FocusType","BlurType","onBlur","msg","setState","e","onFocus","Textarea","Dropdown","optiontype","GIFTCARD","GiftCards","isMan","phone","email","bind","sendEmailData","sendEmailSuccess","contactUs","statusCode","reset","LastName","FirstName","Phone","Email","Stores","Comments","sendEmail","lastNameMsg","firstNameMsg","phoneMsg","emailMsg","storeMail","storeName","lastName","firstName","comments","sex","head","contactPlaceholder","onSubmit","postData","Field","component","Textinput","onClick","selector","formValueSelector","Sex","formHook","reduxForm","form","initialValues","StyleTextInner","LangStyle","StyleServiceItem","StyleServiceImg","PrivateEvents","Opinion","contactData","fontFamily","StyleSliderWarp","StyleSlider","Slider","StyleBanner","isMiddle","css","buttonborder","StyleBannerEn","StyleControl","StyleDot","Promotions","slider","React","createRef","setLastUrl","ref","appendDots","current","slickPrev","dot","children","slickNext","arrows","infinite","speed","slidesToShow","slidesToScroll","responsive","breakpoint","settings","slidesPerRow","rows","PromotionDetail","mainId","params","getDetailListNum","changeLanguage","indexOf","detailListNum","isThisData","replace","isUrl","goBack","IndexAction","Member","dateType","dateType2","isAgree","changeAgree","sendMemberData","sendMemberSuccess","sendMember","Date","Birthday","post","date","birthday","getElementById","checked","alert","for","viewBox","d","enableReinitialize","StyleStoreIntro","StyleImgBlock","StyleTextBlock","buttonborderHover","Reservation","store01","store02","store03","store04","question","borderBottom","marginRight","fontWeight","whiteSpace","icon","ContactUs","sendContactUsData","sendContactUsSuccess","Item","sendContactUs","contactList","ItemData","item","StyleItem","StyleTitle","theme","isShow","StyleTitleEn","StyleQName","StyleContentEn","FAQ","showAns","ansDiv","offsetHeight","removeAttribute","setTimeout","contact","ans","changeShowAns","YourPrivacy","FoodMenu1","subId","foodDetailHtmlData","getFoodDetailHtml","foodDetailHtml","getElementsByClassName","isFoodDetailData","isTagName","isNum","foodDetailData","main","Previous","next","tagNameA","getElementsByTagName","isTagNameA","Object","values","goTop","goBackFood","innerHTML","answer","cow","previous","HomeContent2","member","foodData","num1","num2","home2_01","HomeContent3","paddingBottom","StyleDiv","OnlineBooking","iframe","iframeEn","iframeHtml","iframeHtmlEn","NavList2","NavList3","Logo","Header2","icon04","headerBanner","getMenu","getFooter","getAllNodes","clearData","number","icon1","icon2","icon3","icon4","isVideo","banners","getHeaderIcon","playing","muted","config","youtube","playerVars","modestbranding","bookingImg","userCircleGray","setLang","Header3","userGray","visible","BackTopBtn","beforeScrollTop","ShowBtnHeight","getShowBtnHeight","winScroll","addEventListener","prevProps","removeEventListener","afterScrollTop","delta","overHeight","window","scrollTo","backgroundColor","MainBoard","thisNodeData","thatNodeData","onlineBookingNodeData","mainNodeData","NavList","Header","navList","header","home","StyleGoTop","Boolean","hostname","ReactDOM","App","navigator","serviceWorker","ready","then","registration","unregister","onlinebooking","excludeRoute","hasonlinebooking","userCircleWhite","onlinebookingName","foodDetailUrl","img","CALCULATION_MAPDATA_DISTANCE","rad","Math","PI","getDistance","p1","p2","dLat","dLong","a","sin","cos","atan2","sqrt","combineReducers","formReducer","routing","routerReducer","action","GET_DETAIL_LIST_NUM","num","GET_FOOD_DETAIL_HTML","FETCH_NODEDATA_SUCCESS","GET_MENU","GET_FOOTER","CHANGE_LANGUAGE_DATA","localStorage","setItem","JSON","stringify","SEND_EMAIL","SEND_MEMBER","SEND_CONTACT_US","SET_LOADING","boo","CLEAR_DATA","CLEAR_PATHNAME","GET_FOOD_DETAIL","FETCH_SPECIAL_BLOCK","GET_ALL_NODES","GET_FOOTER_STORE","GET_FOOD_DETAIL_URL","MapData","features","distance","place","geometry","coordinates","sort","b","createBrowserHistory","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","storeComposeArray","applyMiddleware","thunk","routerMiddleware","fetchMiddleware","createStore","reducers","instance","axios","create","baseURL","timeout","headers","getItem","interceptors","request","use","getState","response","error","Promise","reject","setLoading","clearPathname","getFoodDetailUrl","APIURL","Axios","res","fetchNodeDataSuccess","catch","err","getFooterSuccess","getMenuSuccess","fetchSpecialBlockSuccess","get","getAllNodesSuccess","getFooterStore"],"mappings":"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","file":"static/js/main.404f3755.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\r\n// import styled from 'styled-components';\r\n\r\nclass HeaderTop extends PureComponent {\r\n render() {\r\n const { menuVisible } = this.props;\r\n return (\r\n
\r\n
FIND YOUR RUTH'S CHRIS
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default HeaderTop;","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport { withRouter } from 'react-router';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\nimport feature_lobster from '../static/feature_lobster.jpg';\r\nimport feature_steak from '../static/feature_steak.jpg';\r\nimport tile_diagram from '../static/tile_diagram.png';\r\nimport food_detail03 from '../static/food-detail-03.svg';\r\nimport huneeus_small from '../static/huneeus-small.jpg';\r\nimport feature_faust from '../static/feature_faust.jpg';\r\nimport contentBanner from '../static/stagsleaphero.jpg';\r\nimport Loading from '../conponents/Loading/loading';\r\n\r\n\r\nclass HomeContent extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n \r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n menuData,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[1]}`]) return null;\r\n \r\n const responseData = nodeData[`/${langData.type}`].datas;\r\n const foodData = menuData.find(val => val.route === '/food-drink');\r\n return (\r\n
\r\n
\r\n
{responseData[0].datas[0].title}
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[0].summary}
\r\n
{responseData[0].datas[0].datas[0].title}
\r\n
{responseData[0].datas[0].datas[0].html}
\r\n
\r\n {responseData[0].datas[0].datas[0].achor}\r\n
\r\n
\r\n {/*
\r\n
\r\n
*/}\r\n
\r\n
\r\n \r\n {/*
*/}\r\n \r\n
\r\n
{responseData[0].datas[0].datas[2] ? responseData[0].datas[0].datas[2].title : ''}
\r\n {/*
*/}\r\n
\r\n
{responseData[0].datas[0].datas[3] ? responseData[0].datas[0].datas[3].title : ''}
\r\n {/*
*/}\r\n
\r\n
{responseData[0].datas[0].summary}
\r\n
\r\n\r\n {/*
*/}\r\n\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[0].summary}
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].title : ''}
\r\n
{responseData[0].datas[0].datas[1].html}
\r\n
\r\n
\r\n\r\n
\r\n
{responseData[0].datas[1].title}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].summary : ''}
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].title : ''}
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].html : ''}
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[1].datas[0].summary}
\r\n
{responseData[0].datas[1].datas[0].title}
\r\n
{responseData[0].datas[1].datas[0].html}
\r\n
\r\n {responseData[0].datas[1].datas[0].achor}\r\n
\r\n
\r\n {/*
\r\n
\r\n
*/}\r\n
{responseData[0].datas[2].datas[0] ? responseData[0].datas[2].datas[0].summary : ''}
\r\n
{responseData[0].datas[2].datas[0] ? responseData[0].datas[2].datas[0].title : ''}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[3].title}
\r\n
\r\n
{responseData[0].datas[3].summary}
\r\n
\r\n {responseData[0].datas[3].achor}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(HomeContent);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport footerBorder from '../../static/footer-border.png';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../../actions/index.js';\r\n\r\nimport fleurGray from '../../static/fleur-gray.svg';\r\nimport fb from '../../static/fb.svg';\r\nimport IG from '../../static/IG.svg';\r\nimport { compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: 100%;\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n color: #f3f3eb;\r\n background-color: #5a5a5a;\r\n position: relative;\r\n padding: 30px 0;\r\n`;\r\n\r\nconst StyleFooterBorder = styled.div`\r\n display: flex;\r\n width: 100%;\r\n height: 3.125rem;\r\n top: -1.5625rem;\r\n left: 0;\r\n position: absolute;\r\n background-size: 390px 100%;\r\n background: url('${footerBorder}') 50% 0 no-repeat;\r\n z-index: 1;\r\n @media (max-width: 414px) {\r\n width: 90%;\r\n height: 25px;\r\n top: -24px;\r\n left: 50%;\r\n transform: translate(-50%, 0);\r\n background-size: cover;\r\n }\r\n`;\r\n\r\nconst StyleStoreWarp = styled.div`\r\n width: 1160px;\r\n display: flex;\r\n margin: 30px auto 20px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n flex-wrap: wrap;\r\n justify-content: space-around;\r\n }\r\n`;\r\n\r\nconst StyleStore = styled.div`\r\n width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: .9rem;\r\n letter-spacing: 1px;\r\n > div {\r\n font-weight: 600;\r\n text-align: center;\r\n width: fit-content;\r\n margin: 0 auto 10px;\r\n } \r\n > div > p {\r\n word-break: break-all;\r\n text-align: start;\r\n }\r\n > div > p >a {\r\n color: #f3f3eb;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 45%;\r\n }\r\n @media (max-width: 414px) {\r\n width: 100%;\r\n > div > p {\r\n letter-spacing: 0px;\r\n }\r\n }\r\n`;\r\n\r\nclass Footer extends PureComponent {\r\n // componentDidUpdate(preprops) {\r\n // const {\r\n // location: {\r\n // state,\r\n // pathname,\r\n // },\r\n // allNodes,\r\n // fetchNodeData,\r\n // nodeData,\r\n // langData,\r\n // menuData,\r\n // footerData,\r\n // } = this.props;\r\n // const mainpPath = pathname.split(\"/\");\r\n // if(!state) {\r\n // if(!nodeData['/reservations'] && allNodes.childNode) {\r\n // // const reservations = allNodes.childNode[0].childNode.find(val => val.route === '/reservations');\r\n // if((pathname === `/${langData.type}` || pathname === `/${langData.type}/`)) {\r\n // if(preprops.footerData !== footerData) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!allNodes.childNode) return null;\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // } \r\n // } \r\n // } else {\r\n // if(preprops.footerData !== footerData) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!allNodes.childNode) return null;\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // console.log('111',preprops);\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // } \r\n // } \r\n // }\r\n // }\r\n // } else { \r\n // if(menuData.length) {\r\n // const reservations = menuData.find(val => val.route === '/reservations');\r\n // if(!reservations) return null;\r\n // if(!nodeData['/reservations']) { \r\n // fetchNodeData(reservations.url, reservations.route);\r\n // }\r\n // }\r\n // } \r\n // }\r\n\r\n render() {\r\n const {\r\n footerData,\r\n langData,\r\n nodeData,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n } = this.props;\r\n\r\n const storeData = nodeData[\"/reservations\"] && nodeData[\"/reservations\"].datas;\r\n const mainpPath = pathname.split(\"/\");\r\n \r\n return (\r\n \r\n \r\n fleurGray\r\n
\r\n {footerData.map(val => ( val.route !== '/careers' ? \r\n (val.route !== '/member' ?\r\n \r\n {val.title}\r\n \r\n : \r\n {val.title} \r\n )\r\n : \r\n {val.title} \r\n \r\n ))}\r\n
\r\n
\r\n {langData.fb && fb}\r\n {langData.ig && IG}\r\n
\r\n \r\n {storeData && storeData.map(val => (\r\n \r\n
{val.title}
\r\n
\r\n

T : {val.html}

\r\n {/* starWhite */}\r\n {val.subHtml.length > 0 ?\r\n

E : {val.subHtml}

\r\n :\r\n

\r\n }\r\n {/* starWhite2 */}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst reduxHook = connect(\r\n state => ({\r\n langData: state.Content.lang,\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n footerStore: state.Content.footerStore,\r\n allNodes: state.Content.allNodes,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\n\r\nexport default compose(\r\n reduxHook,\r\n withRouter,\r\n)(Footer);","module.exports = __webpack_public_path__ + \"static/media/home2-01.575839db.jpg\";","module.exports = __webpack_public_path__ + \"static/media/fb-gray.6c9d0875.svg\";","module.exports = __webpack_public_path__ + \"static/media/IG-gray.2506c791.svg\";","import React, { PureComponent } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n} from 'redux';\r\nimport './load.css';\r\n\r\nclass Loading extends PureComponent {\r\n render() {\r\n const {\r\n loading,\r\n } = this.props;\r\n if (!loading) return null;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n loading: state.Content.loading,\r\n }),\r\n );\r\n\r\nexport default compose(\r\n reduxHook,\r\n)(Loading);","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMA7jMizLvqBtKyo5hCFo80bmXzxX97VkcpHg703JEFUz9xAgAAAQNJREFUSMft10mOwjAQQNFKAMeZB+ah+9//li0jNxIQG4Kzw3+RQcrbRXKVzFiGt8yLa0icQe3FFWtxtqby4g0/4qxhI2MtbJp+4axH/z/eYSb2gJcmuCw9XexnT9hce9RJPJ0UvbmP4XRgJ952DO04PihKeVGJOozhfUKevcJZTrJ/xiUU1np1AeU9boFzJ2/VnYHWvmybXAHFUd7sWAAqb7b2/9AgE7qCK4GqlqlY6spikelYJOKII4444u/DAcdNwEEXcsR+crgPQBswVnw20PyagWbuUUqkDRjiAsbHlQn0ypO+fTbfyJzaNF3qrEOnNsea0HjXhKAFJXg1Cl/KwvsDICxKbyh9HP4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAARVBMVEUAAABaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlqupvKBAAAAF3RSTlMAmY8fFHpxjH8oA2tbVglIPQ9iYUxANC99mecAAADwSURBVEjH7dfLisQgEEDRumpazTv9+v9PHQLFQE8ndkL1bjwLQ8C7Eyzli1qK2mK8gNsFSzHONLKrIRfjO4PsGrjLlqASc9g1k4J6iTnpT9ysIDUFSbe9xes6E0cpGCPz+t2KveMpRU+c345DpJcPemLYirOjaz/FbYfL73EPN22L9Q3619gD7iGHPBzg9WcaughcgxwUrkDshknPRwI5AZKeFMiLnI1lzBrrcpTurnGNa1zjGv+/OI+G68Zw0RmuWMPlbhgrDAONfZSyD3H28fGygnQpSL/bvjcye5WY/K6J5JXhmWB4oJieRvZHmd0PjO8LXoWyDEEAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/icon04.0d732650.svg\";","let countryNodeID;\r\nlet langurageData;\r\nconsole.log('config.js - process.env.LANG', process.env.LANG);\r\nswitch(process.env.LANG){\r\n case 'tw':\r\n countryNodeID = '919AB72486624AA5A521A16FF014140B';\r\n langurageData = [{\r\n name: '繁中',\r\n type: 'zh-TW',\r\n bookingName: '分店資訊',\r\n onlinebookingName: '線上訂位',\r\n option: {'store': '請選擇分店', 'other': '請選擇',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Taiwan Official website\",\r\n },\r\n fb: 'https://www.facebook.com/ruthschris.tw/',\r\n ig: 'https://www.instagram.com/ruthschristw/',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'STORE INFORMATION',\r\n onlinebookingName: 'ONLINE BOOKING',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Taiwan Official website\",\r\n },\r\n fb: 'https://www.facebook.com/ruthschris.tw/',\r\n ig: 'https://www.instagram.com/ruthschristw/',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'hk':\r\n countryNodeID = '1BCB6B48E9D8411C9973A966C5FF8EA2';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Hong Kong Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseHK',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'jp':\r\n countryNodeID = '358D7623AB3849109CBC39652EEBB70F';\r\n langurageData = [{\r\n name: '日本語',\r\n type: 'jp',\r\n bookingName: '予約',\r\n option: {'store': '店舗を選択してください。', 'other': '選択してください。',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Japan Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Japan Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'sg':\r\n countryNodeID = 'C6545B60CC464421B8B116D2E653F872';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Singapore Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseSG',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'id':\r\n countryNodeID = 'A6BC1D35E2494D4C924367591747B99C';\r\n langurageData = [{\r\n name: '印尼',\r\n type: 'id',\r\n bookingName: '訂位資訊',\r\n option: {'store': '請選擇分店', 'other': '請選擇',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Indonesia Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseJKT',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Indonesia Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseJKT',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'ph':\r\n countryNodeID = 'E31E3A7250AC45DEBBBF4C01EA33E1A1';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Philippines Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n};\r\n//console.log('config.js - countryNodeID', countryNodeID);\r\n//console.log('config.js - langurageData', langurageData);\r\nlet APPCONFIG = {\r\n countryID: process.env.COUNTRY || countryNodeID, ///new\r\n //countryID: process.env.COUNTRY || '919AB72486624AA5A521A16FF014140B', ///tw\r\n // countryID: process.env.COUNTRY || '1BCB6B48E9D8411C9973A966C5FF8EA2', ///hk\r\n // countryID: process.env.COUNTRY || '358D7623AB3849109CBC39652EEBB70F', ///jp\r\n // countryID: process.env.COUNTRY || 'C6545B60CC464421B8B116D2E653F872', ///sg\r\n // countryID: process.env.COUNTRY || 'A6BC1D35E2494D4C924367591747B99C', ///id\r\n // countryID: process.env.COUNTRY || 'E31E3A7250AC45DEBBBF4C01EA33E1A1', ///ph\r\n // BackEndWebApi: 'http://40.74.70.104:9995/',\r\n //BackEndWebApi: 'http://104.42.40.253:9995/',\r\n // BackEndWebApi: 'http://180.218.64.109:5000',\r\n //BackEndWebApi: 'http://localhost:8007/',\r\n // BackEndWebApi: 'http://104.42.40.253/RuthschrisApi/',\r\n BackEndWebApi: 'https://www.ruthschris.com.tw/Api', // buildurl\r\n // BackEndWebApi: 'http://184.168.121.140/RuthschrisApi/',\r\n // BackEndWebApi: 'http://localhost:2695/', //local test\r\n intervalsTime: 10000,\r\n};\r\nconsole.log('config.js - process.env.COUNTRY', process.env.COUNTRY);\r\n//console.log('config.js - APPCONFIG', APPCONFIG);\r\nswitch (process.env.COUNTRY) {\r\n case '919AB72486624AA5A521A16FF014140B': ///tw\r\n // case '1BCB6B48E9D8411C9973A966C5FF8EA2': ///hk\r\n // case '358D7623AB3849109CBC39652EEBB70F': ///jp\r\n // case 'C6545B60CC464421B8B116D2E653F872': ///sg\r\n // case 'A6BC1D35E2494D4C924367591747B99C': ///id\r\n // case 'E31E3A7250AC45DEBBBF4C01EA33E1A1': ///ph\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///tw\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: '繁中',\r\n type: 'zh-TW',\r\n bookingName: '分店資訊',\r\n onlinebookingName: '線上訂位',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '成功寄出',\r\n goBackFood: '回到食物菜單',\r\n goBack: '回到特別活動',\r\n next: '下一頁',\r\n previous: '上一頁',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'STORE INFORMATION',\r\n onlinebookingName: 'ONLINE BOOKING',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n\r\n ///hk\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///jp\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: '日文',\r\n // type: 'jp',\r\n // bookingName: '訂位資訊',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: '成功寄出',\r\n // goBackFood: '回到食物菜單',\r\n // goBack: '回到特別活動',\r\n // next: '下一頁',\r\n // previous: '上一頁',\r\n // }, {\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///sg\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///id\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: '印尼',\r\n // type: 'id',\r\n // bookingName: '訂位資訊',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: '成功寄出',\r\n // goBackFood: '回到食物菜單',\r\n // goBack: '回到特別活動',\r\n // next: '下一頁',\r\n // previous: '上一頁',\r\n // }, {\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///ph\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n }\r\n break;\r\n case '1BCB6B48E9D8411C9973A966C5FF8EA2': ///hk\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///hk\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case '358D7623AB3849109CBC39652EEBB70F': ///jp\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///jp\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'ルースクリスはアメリカ中西部のプライムビーフを厳選されています。',\r\n keyWord: 'Ruth’s Chris;ルースクリス',\r\n seoScript: 'SEO',\r\n name: '日本語',\r\n type: 'jp',\r\n bookingName: '予約',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '送信',\r\n goBackFood: 'メニューへ',\r\n goBack: 'イベントへ',\r\n next: '次に進む',\r\n previous: '戻る',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'C6545B60CC464421B8B116D2E653F872': ///sg\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///sg\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'A6BC1D35E2494D4C924367591747B99C': ///id\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///id\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: '印尼',\r\n type: 'id',\r\n bookingName: '訂位資訊',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '成功寄出',\r\n goBackFood: '回到食物菜單',\r\n goBack: '回到特別活動',\r\n next: '下一頁',\r\n previous: '上一頁',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'E31E3A7250AC45DEBBBF4C01EA33E1A1': ///ph\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///ph\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n default:\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///new\r\n langurage: [...langurageData],\r\n\r\n ///tw\r\n // langurage: [{\r\n // name: '繁中',\r\n // type: 'zh-TW',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///hk\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///jp\r\n // langurage: [{\r\n // name: '日文',\r\n // type: 'jp',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///sg\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///id\r\n // langurage: [{\r\n // name: '印尼',\r\n // type: 'id',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///ph\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n }\r\n break;\r\n}\r\n\r\nexport default APPCONFIG;\r\n","import React, { Component, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as indexAction from '../../actions/index';\r\n\r\nclass LET_STAY_IN_TOUCH extends Component {\r\n render() {\r\n const {\r\n specialBlock,\r\n footerData,\r\n langData,\r\n } = this.props;\r\n const member = footerData.find(val => val.route === '/member');\r\n if (!member) return null;\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nclass If_you_need extends Component {\r\n render() {\r\n const {\r\n specialBlock,\r\n langData\r\n } = this.props;\r\n return (\r\n
\r\n
\r\n {specialBlock.summary}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nclass Search_all_store extends Component {\r\n render() {\r\n const {\r\n specialBlock,\r\n } = this.props;\r\n return (\r\n
\r\n
\r\n {specialBlock.title}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nclass SpecialBlock extends Component {\r\n\r\n componentWillMount() {\r\n const {\r\n temp,\r\n fetchSpecialBlock,\r\n } = this.props;\r\n fetchSpecialBlock(temp);\r\n\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n pathname,\r\n temp,\r\n fetchSpecialBlock,\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(preprops.langData !== langData) {\r\n fetchSpecialBlock(temp);\r\n }\r\n }\r\n\r\n content() {\r\n const {\r\n temp,\r\n specialBlock,\r\n footerData,\r\n langData,\r\n } = this.props;\r\n switch (temp) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n\r\n case 3:\r\n return (\r\n \r\n );\r\n \r\n default:\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.content()}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n specialBlock: state.Content.specialBlock,\r\n footerData: state.Content.footerData,\r\n langData: state.Content.lang,\r\n nodeData: state.Content.nodeData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch)\r\n);\r\n\r\nexport default compose(\r\n reduxHook,\r\n)(SpecialBlock);","import React from 'react';\r\nimport { MemoryRouter, Router } from 'react-router';\r\nimport {\r\n Switch,\r\n Route,\r\n} from 'react-router-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { hot } from 'react-hot-loader';\r\nimport { store, history } from './shared/Store.js';\r\nimport Home from './containers/Home.jsx';\r\nimport MainBoard from './containers/MainBoard.jsx';\r\nimport './static/sass/style.scss';\r\n\r\nfunction App() {\r\n return (\r\n \r\n \r\n \r\n \r\n {/* } /> */}\r\n } />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default hot(module)(App);\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAGJuT3dAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVCRUFDNTM1RkJGMDExRUE4RjhEOTdGRTI2M0E4NkQzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVCRUFDNTM2RkJGMDExRUE4RjhEOTdGRTI2M0E4NkQzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUJFQUM1MzNGQkYwMTFFQThGOEQ5N0ZFMjYzQTg2RDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFQUM1MzRGQkYwMTFFQThGOEQ5N0ZFMjYzQTg2RDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7U1ue2AAABlklEQVR42mL4//8/AxALg2hGEAEEIOI6A1TmBhD/BwggGKcXXRkjE5ThBxIBCCAGJKUwMBNZC0wbCDCCCJD2tUiCMAX/AQII2ajTMDYLmhFwF2AAmKAYlD4Hc94EqLMUYe5j/I/kNhgACCBk20F42n9MAJdnRDPgPxb3PARiBWSH4QNN6L4AgblAXAANNmQcBcSi4PBEihZCYAdI8Scgg5cIxQwAAYQeGrCUAIoXUXQ5dIXooA6X4kX/sQOs4fwK5ms0wIgt6D4S8h+y4slY5P/hC40raO5FCRFkk48BsQ5a7OkB8XJ0k5FBFhAzA/FOJLHZsKDb/p84wIA9kWMH80hR/A0gwLClDWTchcNJv4C4Bp9eXBJeQPyVCD9/BGJnUgy+9p94cAmbGbiythgD8UCYUPJEBkdIMPg0sRkbhvcQEQy7SI08GGYF4gVA/APJsK+wyoKUVHESzUVr8WguRFN7GZq1UAy2JjJ5EQIgM+xgBttRyVAY+A7EDqBsiqsYpAS8BhksA2RkATE/AcXMRBr6A4iXAQAimQ4ETFfFkwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAAAyCAMAAABvcowAAAAAVFBMVEUAAABaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWloyB7nOAAAAG3RSTlMA/KhoQCrlvYFuN/bryl1YFgfu39qgjHZjRRA8p0KGAAAA50lEQVR42u3XOXLDQAwFUVAkRZHaLO827n9PVzmyS8tEM+yg3xU6+EBc6VO1jVG0S9U2RNEmVVsfRS+p2t6iZExVt3UaEErjcNmm6tvEX56rK+nGeOTpkGph8lpF6OO+OdXIfol7TqlmDmPcNnepdp6HuOHbXWis+4grJx+G9o7L/zt1fk2tYTpffgssX5/vR0dhPftpdx4iBWAGBDMgmAHBDAhmQDADghkQzIBgBgQzIJgBwQwIZkAwA4IZEMyAYAYEMyCYAcEMCGZAMAOCGRDMgGAGBDMgmAHBDAhmQDADghkQzIDwA9Sn2OL9MqZoAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/fb.2849e3dd.svg\";","module.exports = __webpack_public_path__ + \"static/media/IG.ad4a57c1.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon01.0596f00a.svg\";","module.exports = __webpack_public_path__ + \"static/media/Bar_Cocktails-left.5c1c4f00.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Bar_Cocktails-right.7f943647.jpg\";","module.exports = __webpack_public_path__ + \"static/media/drink_promo.7230f034.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAWlBMVEUAAABaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlrsCAgqAAAAHXRSTlMA7iEzzLvqBtKyo5iQQhY0bmXzxX97VkcpDvTcBZTOOAUAAAEASURBVEjH7dfbjoMgFEDRo7aI90vv7ez//80JDZmkU6UKvpX1gDFhP5iYcJAN5TjlzriFZBa0zrjhILMONM74SC2zao4yJbU0QzprQKfWS8xK/+KdAY+dw8Nue4vNOqBu4nBTDOY5FWcjZ3E6M3bT8VVRyQcV6joVXxKK/FOcFySX97iC0rbOuoTqNe6Aey+L9Hegsy+nulBAmcpCaQmooj7Z/0ODrPAMngk0rayNpW1sbJel7O4YxzjGMY7x98W+x03QQRd0xPoc7iPQ+Y8VngPNjxloNh6lzJf7DHHh4+PeAL130H/bthuZM0vTZ7N6dGZ5XROCLijBV6PwS1m4XxXbRdog904IAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/store01.d9562624.jpg\";","module.exports = __webpack_public_path__ + \"static/media/store02.5199293d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/store03.9d8b6053.jpg\";","module.exports = __webpack_public_path__ + \"static/media/store04.5a5ce25c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/num1.090fc345.svg\";","module.exports = __webpack_public_path__ + \"static/media/num2.42917697.svg\";","module.exports = __webpack_public_path__ + \"static/media/user-circle-solid.bbaceeb9.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_account_hover-01.1d9a8871.svg\";","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { connect } from 'react-redux';\r\nimport ReactPlayer from 'react-player';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\nimport { withRouter } from 'react-router';\r\n\r\n\r\n\r\nclass AboutUs extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n // if (state) {\r\n // if(!nodeData[state.route]) {\r\n // fetchNodeData(state.url, state.route);\r\n // } \r\n // } else {\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (allNodes && !nodeData[`/${mainpPath[2]}`]) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route); \r\n // }\r\n // }\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`] || nodeData[state.route];\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(AboutUs);","import React, { PureComponent, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index.js'\r\n\r\nconst StyleImg = styled.div`\r\n width: 65%;\r\n height: 550px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center 15%;\r\n box-shadow: ${props => props.imgRight ? \"20px -20px #dad8c7\" : \"-20px -20px #dad8c7\"};\r\n margin-bottom: ${props => (props.getLength > 8 ? (props.getLength-8)*70 : 0)}px;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n height: 450px;\r\n box-shadow: none;\r\n margin-bottom: ${props => props.getLength*70}px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 350px;\r\n margin-bottom: ${props => props.getLength*26+63}px;\r\n }\r\n`;\r\n\r\nconst StyleMenu = styled.div`\r\n position: absolute;\r\n width: 45%;\r\n background-color: #fff;\r\n right: 0;\r\n display: flex;\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n left: 50%;\r\n top: 440px;\r\n transform: translate(-50%,0);\r\n }\r\n @media (max-width: 414px) {\r\n top: 320px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n`;\r\n\r\nconst StyleMenuLeft = styled.div`\r\n position: absolute;\r\n width: 45%;\r\n background-color: #fff;\r\n left: 0;\r\n display: flex;\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n left: 50%;\r\n top: 440px;\r\n transform: translate(-50%, 0);\r\n }\r\n @media (max-width: 414px) {\r\n top: 320px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n`;\r\n\r\nconst StyleMenuList = styled.div`\r\n width: 100%;\r\n border: 1px solid #d2d2d2;\r\n padding: 2em 0;\r\n @media (max-width: 768px) {\r\n padding-top: 1.5rem;\r\n padding-bottom: 1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n @media (max-width: 414px) {\r\n padding-top: 20px;\r\n padding-bottom: 20px;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n`;\r\n\r\nconst StyleMenuItemWep = styled.div`\r\n margin: 0 auto;\r\n width: fit-content;\r\n @media (max-width: 414px) {\r\n display: flex; \r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst StyleMenuItem = styled(Link)`\r\n width: fit-content;\r\n display: flex;\r\n font-size: 1.5rem;\r\n align-items: center;\r\n color: #be2f37;\r\n margin: 1.2rem 0;\r\n scroll-behavior: smooth;\r\n text-decoration: none;\r\n >span {\r\n position: relative;\r\n display: block;\r\n }\r\n >span >i {\r\n margin-left: 20px;\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: 0rem;\r\n top: 0;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .3rem;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n margin-left: 15px;\r\n width: 16px;\r\n height: 12px;\r\n top: 55%;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .3rem;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n margin: .5rem 30px 0 0;\r\n text-align: start;\r\n >span {\r\n height: 18px;\r\n }\r\n >span >i {\r\n margin-left: 15px;\r\n width: 13px;\r\n height: 10px;\r\n top: 40%;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleLink = styled(Link)`\r\n text-decoration: none;\r\n display: block;\r\n`;\r\n\r\nconst StyleInnerBlockL = styled.div`\r\n width: 100%;\r\n height: 100px;\r\n`;\r\n\r\n\r\nclass FoodAndDrink extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n bottomHeight: 350,\r\n };\r\n }\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n getSummary(name) {\r\n const {\r\n allNodes,\r\n } = this.props;\r\n let selectList = [];\r\n const foodNodeId = allNodes.childNode && allNodes.childNode.filter(\r\n data => data.childNode.filter(\r\n x => x.childNode.filter(\r\n y => {\r\n \r\n if(y.pageTitle === name)\r\n {\r\n return selectList.push(y);\r\n }\r\n }\r\n )\r\n )\r\n );\r\n if (selectList.length) {\r\n return selectList[0].nodeId\r\n }\r\n }\r\n componentWillUnmount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] || (state && !nodeData[state.route])) return null;\r\n // if (!nodeData[pathname] && (!state || !nodeData[state.route])) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`].datas || nodeData[state.route].datas;\r\n return (\r\n
\r\n \r\n
\r\n {\r\n responseData.map((val, index) => (\r\n \r\n
\r\n
{val.title}
\r\n
\r\n {val.html}\r\n
\r\n
\r\n \r\n \r\n {index % 2 ? (\r\n \r\n \r\n \r\n \r\n \r\n {val.summary}\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n // food\r\n \r\n \r\n \r\n \r\n \r\n {val.summary}\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n ))}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n menuData: state.Content.menuData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(FoodAndDrink);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport iconSteak from '../static/icon01.svg';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\n\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width:1400px) {\r\n height: 550px;\r\n }\r\n @media (max-width:1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n box-shadow: none;\r\n height: 550px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleSubTitleRed = styled(Link)`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n width: fit-content;\r\n color: ${props => props.isClick ? '#be2f37': '#5d5d5d'};\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n display: block;\r\n align-items: center;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .3rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .5rem;\r\n top: 30%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n font-weight: 700;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .7rem;\r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n >span >i {\r\n width: 18px;\r\n height: 15px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n >span >i {\r\n width: 16px;\r\n height: 12px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 2px;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n >span {\r\n line-height: 1rem;\r\n }\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleSubTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n width: fit-content;\r\n color: #5d5d5d;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n display: block;\r\n align-items: center;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .3rem;\r\n >span {\r\n position: relative;\r\n font-weight: 700;\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 2px;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n >span {\r\n line-height: 1rem;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleContentFoodList = styled.div`\r\n display: flex;\r\n width: 1160px;\r\n margin: 70px auto;\r\n justify-content: center;\r\n flex-flow: wrap;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 768px) {\r\n justify-content: flex-start;\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleFoodItem = styled.div`\r\n width: 22%;\r\n margin: 0 3% 35px 0;\r\n padding: 25px 0;\r\n >div {\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n } \r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n margin-bottom: 35px;\r\n padding: 0;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 20px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n margin-bottom: .5rem;\r\n font-weight: 700;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 30%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem; \r\n >span >i {\r\n width: 16px;\r\n height: 12px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n margin-bottom: .5rem;\r\n font-weight: 700;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 200px;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 0 auto 50px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 40px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1rem;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0 30px;\r\n } \r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleSeafoodImg = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 414px) {\r\n height: 200px;\r\n }\r\n`;\r\n\r\n\r\nclass Food extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n nodeData,\r\n langData,\r\n getFoodDetailData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(!state) {\r\n if(nodeData[`/${mainpPath[2]}`]){\r\n if(!getFoodDetailData[langData.type]) {\r\n this.fetchFoodDetailData(); \r\n }\r\n } \r\n } else { \r\n if(nodeData[`/${mainpPath[2]}`]){\r\n if(!getFoodDetailData[langData.type]) {\r\n this.fetchFoodDetailData(); \r\n }\r\n } \r\n }\r\n }\r\n\r\n fetchFoodDetailData() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n getFoodDetail,\r\n langData,\r\n getFoodDetailData,\r\n } = this.props;\r\n let selectList = [];\r\n const mainpPath = pathname.split(\"/\");\r\n const responseData = nodeData[`/${mainpPath[2]}`] && nodeData[`/${mainpPath[2]}`].datas;\r\n responseData && responseData.filter(\r\n val => {\r\n if(val.datas.length) {\r\n return val.datas.filter(\r\n x => {\r\n if(x.datas) {\r\n return x.datas.filter(\r\n y => {\r\n if(y.url)\r\n {\r\n return selectList.push(y);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n ) \r\n } \r\n }\r\n );\r\n getFoodDetail(selectList, langData.type);\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n menuData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n if(!Datas.length) return null;\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n const promotions = menuData.find(val => val.route === '/promotions');\r\n const responseData = Datas.filter(val => val.isDynamicArea === false);\r\n const dynamicData = Datas.filter(val => val.isDynamicArea === true);\r\n const steaksArticleData = responseData[0].datas.filter(val => val.isArticle === true);\r\n const steaksData = responseData[0].datas.filter(val => val.isArticle === false);\r\n const appetizersArticleData = responseData[2].datas.filter(val => val.isArticle === true);\r\n const appetizersData = responseData[2].datas.filter(val => val.isArticle === false);\r\n return (\r\n
\r\n
\r\n
\r\n {responseData[0].title &&
{responseData[0].title}
}\r\n {responseData[0].summary &&
{responseData[0].summary}
}\r\n
\r\n\r\n {steaksData[0] &&
\r\n
\r\n {steaksData[0].url && }\r\n
\r\n
\r\n
\r\n {steaksData[1].datas.length && steaksData[1].datas.map(val => (\r\n
\r\n {val.url ? \r\n \r\n \r\n {val.url ? \r\n \r\n : null}\r\n :\r\n \r\n \r\n \r\n }\r\n
{val.summary}
\r\n
))}\r\n
\r\n
\r\n {steaksData[0].datas.length && steaksData[0].datas.map(val => (\r\n
\r\n {val.url ? \r\n \r\n \r\n {val.url ? \r\n \r\n : null}\r\n :\r\n \r\n \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n {steaksData[1].url && }\r\n
\r\n
}\r\n\r\n {steaksData[2] && steaksData[2].datas.length && \r\n {steaksData[2].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
}\r\n\r\n {steaksData[2] && steaksData[2].url && }\r\n\r\n {steaksArticleData.map(data => (\r\n
\r\n {data.datas.length ? \r\n \r\n \r\n
{data.title}
\r\n
\r\n
: null}\r\n \r\n {data.datas.length ? data.datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n )) :null}\r\n
\r\n
))}\r\n \r\n {/* {responseData[0].datas[4] && responseData[0].datas[4].title &&\r\n \r\n \r\n \r\n
{responseData[0].datas[4].title}
\r\n
\r\n
}\r\n\r\n {responseData[0].datas[4] && \r\n {responseData[0].datas[4].datas.length ? responseData[0].datas[4].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}>\r\n {val.title}\r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {val.title}\r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n )) : null}\r\n
} */}\r\n\r\n {/* PERFECTLY PRIME */}\r\n {steaksData[3] && \r\n
\r\n \"icon\"/\r\n {steaksData[3].title &&
\r\n
{steaksData[3].title}
\r\n
}\r\n {steaksData[3].summary &&
{steaksData[3].summary}
}\r\n {steaksData[3].html && {steaksData[3].html}}\r\n
}\r\n {/* SEAFOOD & SPECIALITIES */}\r\n {responseData[1] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
\r\n {responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas.length && responseData[1].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
}\r\n {responseData[1].datas[0] && responseData[1].datas[0].url && }\r\n
}\r\n \r\n {/* APPETIZERS & SIDES */}\r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
\r\n {responseData[2].url && }\r\n {appetizersArticleData.map(data => (\r\n
\r\n {data.title && \r\n \r\n \r\n
{data.title}
\r\n
\r\n
}\r\n \r\n {data.datas.length && data.datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
\r\n
))}\r\n {/* \r\n \r\n \r\n
{responseData[2].datas[1].title}
\r\n
\r\n
\r\n \r\n {responseData[2].datas[1].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}>\r\n {val.title}\r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {val.title}\r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
*/}\r\n {appetizersData[0] && appetizersData[0].url && }\r\n
}\r\n\r\n {/* SOUPS & SALADS */}\r\n {responseData[3] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{responseData[3].title}
\r\n
{responseData[3].summary}
\r\n
\r\n \r\n \r\n {responseData[3].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n {/* {val.title} */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {/* {val.title} */}\r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
\r\n
}\r\n\r\n {/* DESSERTS */}\r\n {responseData[4] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[4].title &&
{responseData[4].title}
}\r\n {responseData[4].summary &&
{responseData[4].summary}
}\r\n
\r\n {responseData[4].url && }\r\n \r\n {responseData[4].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
\r\n
}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n {/* to={list.url ? {pathname: `${list.route}`, state: {...list}} : null}> */}\r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n\r\n {/* SPECIALTY DIETS */}\r\n {/* {responseData[5] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[5].title &&
{responseData[5].title}
}\r\n {responseData[5].summary &&
{responseData[5].summary}
}\r\n {responseData[5].datas[0] &&
\r\n {responseData[5].datas[0].title && {responseData[5].datas[0].title}}\r\n
}\r\n
\r\n {responseData[5].html &&
\r\n
{responseData[5].html}
\r\n
}\r\n
} */}\r\n {/* MORE */}\r\n {responseData[5] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[5].summary &&
{responseData[5].summary}
}\r\n {responseData[5].html &&
\r\n {responseData[5].html && {responseData[5].html}}\r\n
}\r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n getFoodDetailData: state.Content.getFoodDetailData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Food);\r\n","import React, { Component } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport BarCocktailsLeft from '../static/Bar_Cocktails-left.jpg';\r\nimport BarCocktailsRight from '../static/Bar_Cocktails-right.jpg';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\nimport wineRed from '../static/wine-red.svg';\r\n\r\n\r\nconst StyleContentBg = styled.div`\r\n width: 100%;\r\n min-height: 500px;\r\n background: url('${BarCocktailsLeft}') 0 3em no-repeat,\r\n url('${BarCocktailsRight}') 100% 3em no-repeat;\r\n background-size: 20em 30em,20em 30em;\r\n display: flex;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n background: none;\r\n min-height: auto;\r\n }\r\n`;\r\n\r\nconst StyleContent = styled.div`\r\n display: flex;\r\n width: 1160px;\r\n margin: 90px auto 130px;\r\n justify-content: space-between;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n flex-direction: column;\r\n margin: 70px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 0 auto 50px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleLeft = styled.div`\r\n width: 46%;\r\n display: flex;\r\n flex-direction: column;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n box-shadow: none;\r\n height: 530px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 450px;\r\n }\r\n`;\r\n\r\nconst StyleImgRight = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}'); // rositaFeatured\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1366px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n height: 530px;\r\n box-shadow: none;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n }\r\n`;\r\n\r\nconst StyleRight = styled.div`\r\n width: 46%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst StyleTextItalic = styled.div`\r\n font-style: italic;\r\n font-weight: 400;\r\n font-size: 1.2rem;\r\n @media (max-width: 768px) {\r\n padding-bottom: 2px;\r\n font-size: 1rem;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: .8rem;\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n text-transform: uppercase;\r\n padding: .1rem 0 .4rem;\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n padding: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 600px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 550px;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleDessertContent = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 35px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleDessertItem = styled.div`\r\n width: 25%;\r\n padding: 25px;\r\n margin-top: 35px;\r\n color: #5d5d5d;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n padding: 0;\r\n }\r\n @media (max-width: 768px) {\r\n margin-top: 25px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1rem;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 4rem 0 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 4rem 0 30px;\r\n } \r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleImgRedWine = styled.div`\r\n width: 80%;\r\n height: 25vw;\r\n margin: 0 auto;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n`;\r\n\r\nconst StyleRedWineItem = styled.div`\r\n margin: 15px 0;\r\n color: #5d5d5d;\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleRedWineTextInner = styled.div`\r\n font-weight: 600;\r\n font-size: 1.3rem;\r\n @media (max-width: 1023px) {\r\n font-size: 1rem;\r\n font-weight: 500;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: .9rem;\r\n line-height: 1rem;\r\n }\r\n`;\r\n\r\nconst StyleWineOpenImg = styled.div`\r\n width: 100%;\r\n height: 820px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n margin: 0 auto;\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleRightDown = styled.div`\r\n width: 100%;\r\n`;\r\n\r\nconst StyleWhiteWineImg = styled.div`\r\n width: 100%;\r\n height: 720px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleWineEnd = styled.div`\r\n width: 100%;\r\n height: 600px;\r\n margin-top: -50px; \r\n background-image: url('${props => props.src}'); // wineEnd\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1400px) {\r\n height: 480px;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 200px;\r\n }\r\n`;\r\n\r\nconst StyleImgChampagne = styled.div`\r\n width: 80%;\r\n height: 25vw;\r\n margin: 0 auto;\r\n background-image: url('${props => props.src}'); // champagneBottle\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSparklingItem = styled.div`\r\n width: 25%;\r\n padding: 25px;\r\n margin-top: 35px;\r\n color: #5d5d5d;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n padding: 0;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 80%;\r\n margin: 0 auto;\r\n @media (max-width: 1400px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nclass Drinks extends Component {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n if(!Datas.length) return null;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {responseData[0].html &&
{responseData[0].html}
}\r\n {responseData[0].summary &&
{responseData[0].summary}
}\r\n
\r\n
\r\n\r\n\r\n {/* // 雞尾酒 */} \r\n {responseData[0].datas[0] && responseData[0].datas[0].title && \r\n \r\n \r\n \r\n
{responseData[0].datas[0].title}
\r\n
\r\n
}\r\n {responseData[0].datas[1] &&
\r\n
\r\n {responseData[0].datas[1].url && }\r\n
\r\n
\r\n
\r\n {responseData[0].datas[2].datas.length && responseData[0].datas[2].datas.map(val => \r\n
\r\n {val.title &&
{val.title}
}\r\n {val.summary &&
{val.summary}
}\r\n {val.html &&
{val.html}
}\r\n
\r\n )}\r\n
\r\n
\r\n {responseData[0].datas[1].datas.length && responseData[0].datas[1].datas.map(val => \r\n
\r\n {val.title &&
{val.title}
}\r\n {val.summary &&
{val.summary}
}\r\n {val.html &&
{val.html}
}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {responseData[0].datas[2].url && \r\n } \r\n
\r\n
}\r\n\r\n\r\n\r\n {responseData[0].datas[3] && responseData[0].datas[3].datas.length && \r\n {responseData[0].datas[3].datas.map(data => (\r\n \r\n
{data.title}
\r\n {data.summary}\r\n
{data.html}
\r\n
\r\n ))}\r\n
}\r\n\r\n {responseData[0].datas[3] && responseData[0].datas[3].url && }\r\n\r\n {/* 使用IsDynamicArea變數儲存節點管理是否顯示設定 */} \r\n {responseData[0].datas[4].isDynamicArea && responseData[0].datas[4] && responseData[0].datas[4].title && \r\n \r\n \r\n
{responseData[0].datas[4].title}
\r\n
\r\n
}\r\n\r\n {responseData[0].datas[4].isDynamicArea && responseData[0].datas[4] && responseData[0].datas[4].datas.length && \r\n {responseData[0].datas[4].datas.map(data => (\r\n \r\n
{data.title}
\r\n {data.summary}\r\n
{data.html}
\r\n
\r\n ))}\r\n
}\r\n\r\n {responseData[0].datas[5] &&
\r\n \"icon\"/\r\n {responseData[0].datas[5].title &&
\r\n
{responseData[0].datas[5].title}
\r\n
}\r\n {responseData[0].datas[5].summary &&
{responseData[0].datas[5].summary}
}\r\n
}\r\n\r\n {/* 紅酒 */}\r\n {responseData[1] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
\r\n {responseData[1].url && }\r\n\r\n {responseData[1].datas[2] && responseData[1].datas[2].title && }\r\n\r\n {responseData[1].datas[0] && responseData[1].datas[0].title && \r\n \r\n \r\n
{responseData[1].datas[0].title}
\r\n
\r\n
}\r\n \r\n {responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas[1] && responseData[1].datas[0].datas[1].datas.length &&\r\n \r\n {responseData[1].datas[0].datas[1].datas.map(data => (\r\n \r\n {data.title &&
{data.title}
}\r\n {data.summary && {data.summary}}\r\n {data.html && {data.html}}\r\n
\r\n ))}\r\n
}\r\n\r\n
\r\n\r\n \r\n {responseData[1].datas[0].datas[0] && responseData[1].datas[0].datas[0].url &&\r\n }\r\n
\r\n\r\n {responseData[1].datas[0].datas[2] && responseData[1].datas[0].datas[2].datas.length && \r\n \r\n {responseData[1].datas[0].datas[2].datas.map(data => (\r\n \r\n {data.title &&
{data.title}
}\r\n {data.summary && {data.summary}}\r\n {data.html && {data.html}}\r\n
\r\n ))}\r\n
}\r\n \r\n }\r\n\r\n {responseData[1].datas[1] &&
\r\n \"icon\"/\r\n {responseData[1].datas[1].title &&
\r\n
{responseData[1].datas[1].title}
\r\n
}\r\n {responseData[1].datas[1].summary &&
{responseData[1].datas[1].summary}
}\r\n
}\r\n
}\r\n\r\n {/* // 白酒 */} \r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
\r\n {responseData[2].url && }\r\n \r\n \r\n \r\n \r\n
{responseData[2].datas[0].title}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {responseData[2].datas[0].datas[2] && responseData[2].datas[0].datas[2].datas.map(data =>(\r\n \r\n {data.title}\r\n {data.summary}\r\n {data.html}\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n {responseData[2].datas[0].datas[1] && responseData[2].datas[0].datas[1].datas.map(data =>(\r\n \r\n {data.title}\r\n {data.summary}\r\n {data.html}\r\n \r\n ))}\r\n \r\n \r\n \r\n
}\r\n\r\n {/* // 氣泡酒 */} \r\n {responseData[3] &&
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {responseData[3].html &&
{responseData[3].html}
}\r\n {responseData[3].summary &&
{responseData[3].summary}
}\r\n
\r\n {responseData[3].url && }\r\n {responseData[3].datas[1] &&
\r\n {responseData[3].datas[1].title && {responseData[3].datas[1].title}}\r\n
}\r\n \r\n \r\n \r\n
{responseData[3].datas[0].title}
\r\n
\r\n
\r\n
\r\n {responseData[3].datas[0].datas.length && responseData[3].datas[0].datas.map(val => \r\n \r\n {val.title}\r\n {val.summary}\r\n {val.html}\r\n \r\n )}\r\n
\r\n
}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.html &&
{val.html}
}\r\n {val.summary &&
{val.summary}
}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas.length ? data.datas.map(list => (\r\n \r\n {list.title ? {list.title} : null}\r\n {list.summary ? {list.summary} : null}\r\n {list.html ? {list.html} : null}\r\n \r\n )) : null}\r\n \r\n
)) : null}\r\n
\r\n )) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Drinks);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport dots from '../static/dots.png';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport drinkPromo from '../static/drink_promo.jpg';\r\nimport wineRed from '../static/wine-red.svg';\r\n\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1em;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0px 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0px 30px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleLunchImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleContentLunchList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 50px auto 0;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleLunchItem = styled.div`\r\n width: 22%;\r\n margin: 1% 1.5% 4%;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleLunchItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 50px auto;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 80%;\r\n margin: 0 auto;\r\n @media (max-width: 1400px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n letter-spacing: -1px;\r\n margin-bottom: .5rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 20%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n font-size: 1.5rem;\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 25%;\r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n top: 15%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\nclass Lunch extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n const AppetizersData = responseData[1].datas.filter(val => val.isArticle === true);\r\n const BurgersData = responseData[2].datas.filter(val => val.isArticle === true);\r\n const EntreesData = responseData[3].datas.filter(val => val.isArticle === true);\r\n return (\r\n
\r\n {responseData[0] &&
\r\n
{responseData[0].summary}
\r\n
{responseData[0].title}
\r\n
{responseData[0].html}
\r\n
}\r\n {responseData[0] && responseData[0].datas[0].datas.length && responseData[0].datas[0].datas.map( data => (\r\n
\r\n
{data.title}
\r\n
{data.summary}
\r\n
\r\n ))}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {responseData[1] &&
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
}\r\n\r\n {responseData[1].url && }\r\n \r\n {/* {responseData[1] && responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas.length && responseData[1].datas[0].datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
} */}\r\n {AppetizersData.map(val =>(
\r\n {(val.title && val.title !== \"chart\") && \r\n \r\n \r\n
{val.title}
\r\n
\r\n
}\r\n\r\n {val.datas && \r\n {val.datas.length && val.datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
}\r\n
))}\r\n \r\n
\r\n \"icon\"/\r\n {responseData[1].datas[2].title &&
\r\n
{responseData[1].datas[2].title}
\r\n
}\r\n {responseData[1].datas[2].summary &&
{responseData[1].datas[2].summary}
}\r\n {/*
*/}\r\n {responseData[1].datas[2].html}\r\n {/*
*/}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {responseData[2] &&
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
}\r\n\r\n {responseData[2].url && }\r\n\r\n {BurgersData.map(val => (\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title && {data.title}}\r\n {data.summary &&
{data.summary}
}\r\n
\r\n ))}\r\n
\r\n ))}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
{responseData[3].title}
\r\n
{responseData[3].summary}
\r\n
\r\n\r\n {responseData[3].url && }\r\n\r\n {EntreesData.map(val => (\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title && {data.title}}\r\n {data.summary &&
{data.summary}
}\r\n
\r\n ))}\r\n
\r\n ))}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n {/* to={list.url ? {pathname: `${list.route}`, state: {...list}} : null}> */}\r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n \r\n
\r\n
{responseData[3].datas[2].summary}
\r\n
\r\n
{responseData[3].datas[2].html}
\r\n
\r\n\r\n {/* MORE */}\r\n {responseData[4] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[4].summary &&
{responseData[4].summary}
}\r\n {responseData[4].html &&
\r\n {responseData[4].html && {responseData[4].html}}\r\n
}\r\n
\r\n
}\r\n
\r\n );\r\n }\r\n }\r\n \r\n const reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n \r\n export default compose(\r\n withRouter,\r\n reduxHook,\r\n )(Lunch);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\n\r\n\r\n\r\nconst StyleHappyHourImg = styled.div`\r\n width: 80%;\r\n height: 550px;\r\n margin: 0 auto;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleHappyHourImgFull = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 50px auto;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleContentLunchList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 50px auto 0;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleLunchItem = styled.div`\r\n width: ${props => props.length > 3 ? \"20%\" : \"28%\"};\r\n margin: 1% 2.5% 4%;\r\n color: #5d5d5d;\r\n text-align: center;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleLunchItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-align: center; \r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleHappyHourItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 100%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleSwirlItem = styled.div`\r\n margin: 0 0 30px;\r\n color: #5d5d5d;\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1em;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0px 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0px 30px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 40px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n letter-spacing: -1px;\r\n margin-bottom: .5rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 20%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n font-size: 1.5rem;\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 25%;\r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n top: 15%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\nclass HappyHour extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n const FoodData = responseData[0].datas[0].datas.filter(val => val.isArticle === true);\r\n return (\r\n
\r\n
\r\n
{responseData[0].summary}
\r\n
\r\n
\r\n
{responseData[0].html}
\r\n
\r\n\r\n {/* food */}\r\n {responseData[0] && responseData[0].datas[0] &&
\r\n {responseData[0].datas[0].title &&
{responseData[0].datas[0].title}
}\r\n {responseData[0].datas[0].summary &&
{responseData[0].datas[0].summary}
}\r\n
}\r\n\r\n \r\n\r\n {FoodData.map(val =>(\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n
))}\r\n\r\n {responseData[0].datas[0].datas[1].url && \r\n }\r\n\r\n {/* drink */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{responseData[1].datas[0].title}
\r\n
{responseData[1].datas[0].summary}
\r\n
\r\n\r\n
\r\n
\r\n \r\n {responseData[1].datas[1].datas[0].datas.map(data =>(\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n {responseData[1].datas[2].datas[0].datas.map(data =>(\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
{responseData[1].datas[3].summary}
\r\n
\r\n
{responseData[1].datas[3].html}
\r\n
\r\n\r\n {/* MORE */}\r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n {responseData[2].html &&
\r\n {responseData[2].html && {responseData[2].html}}\r\n
}\r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n }\r\n \r\n const reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n \r\n export default compose(\r\n withRouter,\r\n reduxHook,\r\n )(HappyHour);","// @flow\r\n\r\nimport React, { PureComponent, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: ${props => props.isFullWidth ? '100%' : '48%'};\r\n position: relative;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n}\r\n`;\r\nconst StyleErrorMsg = styled.div`\r\n position: absolute;\r\n color: red;\r\n font-size: 12px;\r\n left: 0;\r\n bottom: 0;\r\n`\r\n\r\nexport const regexCheck = (name, value) => {\r\n switch (name) {\r\n case 'name':\r\n if (!value || value.match(/\\d/)) {\r\n return '姓名格式錯誤';\r\n }\r\n return '';\r\n\r\n case 'phone':\r\n if (!value.match(/\\(?([0-9]{4})\\)?([ .-]?)([0-9]{3})\\2([0-9]{3})/)) {\r\n return '電話格式錯誤';\r\n }\r\n return '';\r\n\r\n case 'email':\r\n if (!value.match(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/)) {\r\n return '信箱格式錯誤';\r\n }\r\n return '';\r\n\r\n // case 'date':\r\n // if (!value.match(/^(0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])[\\/\\-]\\d{4}$/)) {\r\n // return '日期格式錯誤(mm/dd/yyyy)';\r\n // }\r\n // return '';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nclass TextInput extends PureComponent {\r\n state = {\r\n errorMsg: '',\r\n }\r\n \r\n render() {\r\n const {\r\n input: {\r\n onChange,\r\n value,\r\n },\r\n placeholder,\r\n isFullWidth,\r\n regex,\r\n setHintMsg,\r\n hintMsg,\r\n type,\r\n changeType,\r\n FocusType,\r\n BlurType,\r\n } = this.props;\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n \r\n return (\r\n \r\n aaa()}\r\n onBlur={() => {\r\n if (regex) {\r\n const msg = regexCheck(regex, value);\r\n setHintMsg(regex, msg);\r\n this.setState({ errorMsg: msg});\r\n };\r\n if(BlurType){\r\n if(!value){BlurType();};\r\n };\r\n }}\r\n onChange={(e) => {\r\n onChange(e);\r\n if(changeType){changeType();}\r\n // if (regex && (hintMsg || errorMsg)) {\r\n // const msg = regexCheck(regex, e.target.value);\r\n // setHintMsg(regex, msg);\r\n // this.setState({ errorMsg: msg });\r\n // }\r\n }} \r\n onFocus={(e) => {\r\n if(FocusType){FocusType();}\r\n }} \r\n />\r\n {hintMsg || errorMsg}\r\n \r\n );\r\n }\r\n}\r\n \r\n \r\nexport default TextInput;\r\n ","// @flow\r\n\r\nimport React, { PureComponent } from 'react';\r\n\r\nclass Textarea extends PureComponent { \r\n render() {\r\n const {\r\n input: {\r\n value,\r\n onChange,\r\n },\r\n placeholder,\r\n } = this.props;\r\n \r\n return (\r\n onChange(e)} />\r\n );\r\n }\r\n }\r\n \r\n \r\n export default Textarea;\r\n ","import React, { PureComponent } from 'react';\r\n\r\nclass Radioinput extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMan: true,\r\n sex: 'Male', \r\n };\r\n }\r\n componentDidUpdate() {\r\n const {\r\n reset,\r\n } = this.props;\r\n \r\n if(reset) {\r\n this.setState({\r\n isMan: true,\r\n });\r\n }\r\n }\r\n\r\n getValue(val) {\r\n this.setState({\r\n isMan: val,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n input: {\r\n onChange,\r\n },\r\n placeholder,\r\n } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n

{placeholder[1].title}

\r\n
\r\n
\r\n \r\n

{placeholder[2].title}

\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default Radioinput;","// @flow\r\n\r\nimport React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { connect } from 'react-redux';\r\nimport {compose } from 'redux';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: ${props => props.isFullWidth ? '100%' : '48%'};\r\n position: relative;\r\n`;\r\n\r\nclass Dropdown extends PureComponent {\r\n render() {\r\n const {\r\n input: {\r\n onChange,\r\n value,\r\n },\r\n isFullWidth,\r\n placeholder,\r\n data,\r\n langData,\r\n optiontype,\r\n } = this.props;\r\n return (\r\n \r\n onChange(e)}>\r\n \r\n {data && data.map(val =>\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n langData: state.Content.lang,\r\n }),\r\n);\r\n \r\nexport default compose(\r\n reduxHook,\r\n)(Dropdown);\r\n ","export const GIFTCARD = 'FORM/GIFTCARD';\r\nexport const PRIVATE_EVENT = 'FORM/PRIVATE_EVENT';\r\nexport const MEMBER_FORM = 'FORM/MEMBER_FORM';\r\nexport const CONTACTUS_FORM = 'FORM/CONTACTUS_FORM';","import React, { PureComponent } from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, formValueSelector } from 'redux-form'; \r\nimport Textinput, { regexCheck } from '../conponents/shared/Textinput';\r\nimport Textarea from '../conponents/shared/Textarea';\r\nimport Radioinput from '../conponents/shared/Radioinput';\r\nimport Dropdown from '../conponents/shared/Dropdown';\r\nimport { GIFTCARD } from '../shared/form';\r\nimport * as indexAction from '../actions/index';\r\nimport APPCONFIG from '../config/config.js';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\n\r\nclass GiftCards extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMan: false,\r\n errorMsg: {\r\n name: '',\r\n phone: '',\r\n email: '',\r\n },\r\n };\r\n this.setHintMsg = this.setHintMsg.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n fetchNodeData,\r\n menuData,\r\n nodeData,\r\n allNodes,\r\n footerData,\r\n sendEmailData,\r\n sendEmailSuccess,\r\n } = this.props;\r\n const contactUs = footerData.find(val => val.route === '/contact-us');\r\n const mainpPath = pathname.split(\"/\");\r\n if (state) {\r\n if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n if(!contactUs) return null;\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n }\r\n } else {\r\n if(footerData.length && menuData.length && allNodes.childNode) {\r\n if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n } \r\n \r\n } \r\n }\r\n if(sendEmailData && sendEmailData.statusCode === 0) {\r\n this.props.reset(GIFTCARD);\r\n sendEmailSuccess(null);\r\n }\r\n }\r\n\r\n postData() {\r\n const {\r\n LastName,\r\n FirstName,\r\n Phone,\r\n Email,\r\n Stores,\r\n Comments,\r\n sendEmail,\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n const lastNameMsg = regexCheck('name', LastName || '');\r\n const firstNameMsg = regexCheck('name', FirstName || '');\r\n const phoneMsg = regexCheck('phone', Phone || '');\r\n const emailMsg = regexCheck('email', Email || '');\r\n const storeMail = nodeData['/reservations'].datas.find(val => val.title === Stores) || nodeData['/reservations'].datas[0];\r\n const storeName = Stores || storeMail.title;\r\n if (lastNameMsg || firstNameMsg || phoneMsg || emailMsg) {\r\n this.setState({\r\n errorMsg: {\r\n lastName: lastNameMsg,\r\n firstName: firstNameMsg,\r\n phone: phoneMsg,\r\n email: emailMsg,\r\n },\r\n })\r\n } else {\r\n const post = {\r\n email: Email,\r\n store: {\r\n name: storeName,\r\n email: storeMail.subHtml,\r\n },\r\n comments: Comments,\r\n name: LastName + ' ' + FirstName,\r\n phone: Phone,\r\n sex: '',\r\n head: langData.emailHead['giftcards'],\r\n };\r\n sendEmail(post);\r\n }\r\n }\r\n\r\n setHintMsg(name, value) {\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n this.setState({\r\n errorMsg: {\r\n ...errorMsg,\r\n [name]: value,\r\n },\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n sendEmailData,\r\n langData,\r\n } = this.props;\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] || !nodeData['/reservations'] || !nodeData['/contact-us']) return null;\r\n const data = nodeData['/reservations'].datas;\r\n const responseData = nodeData[`/${mainpPath[2]}`];\r\n const contactPlaceholder = nodeData['/contact-us'].datas[1].datas;\r\n return (\r\n
this.postData()}>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
this.postData()}>{contactPlaceholder[9].title}
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst selector = formValueSelector(GIFTCARD);\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n LastName: selector(state, 'LastName'),\r\n FirstName: selector(state, 'FirstName'),\r\n Phone: selector(state, 'Phone'),\r\n Email: selector(state, 'Email'),\r\n Stores: selector(state, 'Stores'),\r\n Comments: selector(state, 'Comments'),\r\n Sex: selector(state, 'Sex'),\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n footerData: state.Content.footerData,\r\n allNodes: state.Content.allNodes,\r\n sendEmailData: state.Content.sendEmailData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch)\r\n);\r\n\r\nconst formHook = reduxForm({\r\n form: GIFTCARD,\r\n initialValues: {\r\n LastName: '',\r\n FirstName: '',\r\n Phone: '',\r\n Sex: 'Male',\r\n Email: '',\r\n Stores: '',\r\n Comments: '',\r\n },\r\n});\r\n\r\nexport default compose(\r\n reduxHook,\r\n formHook,\r\n)(GiftCards);","import React, { PureComponent, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, formValueSelector } from 'redux-form'; \r\nimport Textinput, { regexCheck } from '../conponents/shared/Textinput';\r\nimport Textarea from '../conponents/shared/Textarea';\r\nimport Radioinput from '../conponents/shared/Radioinput';\r\nimport Dropdown from '../conponents/shared/Dropdown';\r\nimport { PRIVATE_EVENT } from '../shared/form';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index';\r\n\r\nimport privateEvent01 from '../static/private-event01.jpg';\r\nimport privateEvent02 from '../static/private-event02.jpg';\r\nimport privateEvent03 from '../static/private-event03.jpg';\r\nimport { stat } from 'fs';\r\n\r\n// const StyleTextInner = styled.div`\r\n// font-weight: 400;\r\n// font-size: 1.3rem;\r\n// line-height: 1.8rem;\r\n// text-align: ${props => props.LangStyle ? 'justify' : 'start'};\r\n// text-align-last: ${props => props.LangStyle ? 'center' : 'start'};\r\n// letter-spacing: ${props => props.LangStyle ? '1px' : '0px'};\r\n// @media (max-width: 1400px) {\r\n// font-size: ${props => props.LangStyle ? '1.2rem' : '1.2rem'};\r\n// line-height: ${props => props.LangStyle ? '1.5rem' : '1.5rem'};\r\n// }\r\n// @media (max-width: 414px) {\r\n// width:95%;\r\n// margin: 0 auto;\r\n// font-size: ${props => props.LangStyle ? '.9rem' : '1rem'};\r\n// line-height: ${props => props.LangStyle ? '1.4rem' : '1.3rem'};\r\n// }\r\n// `;\r\n\r\n// buildurl jp\r\nconst StyleTextInner = styled.div`\r\n font-family: 'MS PGothic';\r\n font-weight: 400;\r\n font-size: 1.3rem;\r\n line-height: 1.8rem;\r\n text-align: ${props => props.LangStyle ? 'justify' : 'start'};\r\n text-align-last: ${props => props.LangStyle ? 'center' : 'start'};\r\n letter-spacing: ${props => props.LangStyle ? '1px' : '0px'};\r\n @media (max-width: 1400px) {\r\n font-size: ${props => props.LangStyle ? '1.2rem' : '1.2rem'};\r\n line-height: ${props => props.LangStyle ? '1.5rem' : '1.5rem'};\r\n }\r\n @media (max-width: 414px) {\r\n width:95%;\r\n margin: 0 auto;\r\n font-size: ${props => props.LangStyle ? '.9rem' : '1rem'};\r\n line-height: ${props => props.LangStyle ? '1.4rem' : '1.3rem'};\r\n }\r\n`;\r\n\r\nconst StyleContentBg = styled.div`\r\n width: 100%;\r\n background: linear-gradient(to bottom, #f3f3eb 35%,#e8e6da 35%,#e8e6da 100%);\r\n padding-bottom: 10px;\r\n @media (max-width: 1023px) {\r\n background: none;\r\n }\r\n`;\r\n\r\nconst StyleContent = styled.div`\r\n display: flex;\r\n width: 1160px;\r\n margin: 90px auto;\r\n justify-content: space-between;\r\n flex-flow: wrap;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 90px auto 0;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 30px auto 0;\r\n }\r\n`;\r\n\r\nconst StyleServiceItem = styled.div`\r\n display: flex;\r\n width: 30%;\r\n flex-direction: column;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n margin: 35px 0;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 15px 0;\r\n }\r\n`;\r\n\r\nconst StyleServiceImg = styled.div`\r\n width: 100%;\r\n height: 300px;\r\n margin-bottom: 50px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 30px;\r\n }\r\n`;\r\n\r\n// const StyleTextTitle = styled.div`\r\n// font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n// display: block;\r\n// color: #5d5d5d;\r\n// text-transform: uppercase;\r\n// text-decoration: none;\r\n// font-size: 1.8rem;\r\n// font-weight: 700;\r\n// letter-spacing: -1px;\r\n// margin-bottom: .5em;\r\n// text-align: center;\r\n// @media (max-width: 1366px) {\r\n// font-size: 1.5rem;\r\n// margin-bottom: 5px;\r\n// }\r\n// @media (max-width: 414px) {\r\n// font-size: 1.2rem;\r\n// margin-bottom: 5px;\r\n// }\r\n// `;\r\n\r\n// buildurl jp\r\nconst StyleTextTitle = styled.div`\r\n font-family: 'MS PGothic', 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n display: block;\r\n color: #5d5d5d;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.8rem;\r\n font-weight: 700;\r\n letter-spacing: -1px;\r\n margin-bottom: .5em;\r\n text-align: center;\r\n @media (max-width: 1366px) {\r\n font-size: 1.5rem;\r\n margin-bottom: 5px;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n margin-bottom: 5px;\r\n }\r\n`;\r\n\r\nclass PrivateEvents extends PureComponent {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMan: true,\r\n errorMsg: {\r\n name: '',\r\n phone: '',\r\n email: '',\r\n },\r\n };\r\n this.setHintMsg = this.setHintMsg.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n fetchNodeData,\r\n menuData,\r\n nodeData,\r\n allNodes,\r\n footerData,\r\n sendEmailData,\r\n sendEmailSuccess,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n const contactUs = footerData.find(val => val.route === '/contact-us');\r\n if(state) {\r\n if(!nodeData['/contact-us']) {\r\n if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations']) {\r\n if (contactUs) {\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n }\r\n } \r\n }\r\n } else {\r\n if(footerData.length && menuData.length) {\r\n if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n } \r\n } \r\n } \r\n if(sendEmailData && sendEmailData.statusCode === 0) {\r\n this.props.reset(PRIVATE_EVENT);\r\n sendEmailSuccess(null);\r\n } \r\n }\r\n\r\n postData() {\r\n const {\r\n LastName,\r\n FirstName,\r\n Phone,\r\n Email,\r\n Stores,\r\n Opinion,\r\n sendEmail,\r\n nodeData,\r\n Sex,\r\n langData,\r\n } = this.props;\r\n const lastNameMsg = regexCheck('name', LastName || '');\r\n const firstNameMsg = regexCheck('name', FirstName || '');\r\n const phoneMsg = regexCheck('phone', Phone || '');\r\n const emailMsg = regexCheck('email', Email || '');\r\n const storeMail = nodeData['/reservations'].datas.find(val => val.title === Stores) || nodeData['/reservations'].datas[0];\r\n const storeName = Stores || storeMail.title;\r\n if (lastNameMsg || firstNameMsg || phoneMsg || emailMsg) {\r\n this.setState({\r\n errorMsg: {\r\n lastName: lastNameMsg,\r\n firstName: firstNameMsg,\r\n phone: phoneMsg,\r\n email: emailMsg,\r\n },\r\n })\r\n } else {\r\n const post = {\r\n email: Email,\r\n store: {\r\n name: storeName,\r\n email: storeMail.subHtml,\r\n },\r\n comments: Opinion,\r\n name: LastName + ' ' + FirstName,\r\n phone: Phone,\r\n sex: '',\r\n head: langData.emailHead['privateevents'],\r\n };\r\n sendEmail(post);\r\n }\r\n }\r\n\r\n setHintMsg(name, value) {\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n this.setState({\r\n errorMsg: {\r\n ...errorMsg,\r\n [name]: value,\r\n },\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n langData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n sendEmailData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`];\r\n const data = nodeData['/reservations'] && nodeData['/reservations'].datas;\r\n const contactData = nodeData['/contact-us'] && nodeData['/contact-us'];\r\n const contactPlaceholder = contactData && contactData.datas[1].datas;\r\n if (!contactPlaceholder) return null;\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n return (\r\n
\r\n
\r\n
{responseData.title}
\r\n
{responseData.summary}
\r\n
\r\n\r\n \r\n \r\n {responseData.datas.map(val => \r\n \r\n \r\n \r\n \r\n {val.title}\r\n \r\n \r\n {val.summary}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
{responseData.html}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
this.postData()}>{contactPlaceholder[9].title}
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nconst selector = formValueSelector(PRIVATE_EVENT);\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n LastName: selector(state, 'LastName'),\r\n FirstName: selector(state, 'FirstName'),\r\n Phone: selector(state, 'Phone'),\r\n Email: selector(state, 'Email'),\r\n Stores: selector(state, 'Stores'),\r\n Opinion: selector(state, 'Opinion'),\r\n Sex: selector(state, 'Sex'),\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n sendEmailData: state.Content.sendEmailData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch)\r\n);\r\n\r\nconst formHook = reduxForm({\r\n form: PRIVATE_EVENT,\r\n initialValues: {\r\n LastName: '',\r\n FirstName: '',\r\n Phone: '',\r\n Sex: 'Male',\r\n Email: '',\r\n Stores: '',\r\n Opinion: '',\r\n },\r\n});\r\n\r\nexport default compose(\r\n reduxHook,\r\n formHook,\r\n)(PrivateEvents);","import React, { PureComponent } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\nimport Slider from \"react-slick\";\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\nimport buttonborder from '../static/button-border-deepWhite.png';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\n\r\nconst StyleSliderWarp = styled.div`\r\n box-sizing: border-box;\r\n background: linear-gradient(to bottom, #f3f3eb 0%,#f3f3eb 20%,#e8e6da 20%,#e8e6da 80%,#f3f3eb 80%,#f3f3eb 100%);\r\n @media (max-width: 1023px) {\r\n background: linear-gradient(to bottom, #f3f3eb 0%,#f3f3eb 45%,#e8e6da 45%,#e8e6da 90%,#f3f3eb 90%,#f3f3eb 100%);\r\n }\r\n`;\r\n\r\nconst StyleSlider = styled(Slider)`\r\n width: 1160px;\r\n box-sizing: border-box;\r\n padding: 20px 0 40px;\r\n margin: 0 auto;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleBanner = styled.div`\r\n position: relative;\r\n height: 550px;\r\n width: 90%;\r\n background-image: url(\"${props => props.imgUrl}\");\r\n ${props => props.isMiddle && css`\r\n background-image: url(\"${props => props.imgUrl}\");\r\n `}\r\n background-size: 140%;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n padding: 30px;\r\n margin: 0 auto;\r\n box-sizing: border-box;\r\n color: #FFF;\r\n outline: none;\r\n transition: all .3s ease-in;\r\n word-break: break-word;\r\n @media (max-width: 1280px) {\r\n padding: 30px 15px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 50%;\r\n height: 500px;\r\n margin: 20px auto;\r\n padding: 40px 15px;\r\n }\r\n @media (max-width: 768px) {\r\n width: 70%;\r\n }\r\n @media (max-width: 540px) {\r\n width: 98%;\r\n height: 350px;\r\n padding: 30px 15px;\r\n }\r\n :after {\r\n content: '';\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 1;\r\n top: 0;\r\n left: 0;\r\n background-color: rgba(90,90,90,.9);\r\n ${props => props.isMiddle && css`\r\n background-color: rgba(190,47,55,.9);\r\n transition: all .3s ease-in;\r\n `}\r\n }\r\n :before {\r\n content: '';\r\n position: absolute;\r\n width: calc(100% - 30px);\r\n height: calc(100% - 30px);\r\n z-index: 2;\r\n top: 15px;\r\n left: 15px;\r\n border: 15px solid hsla(0,0%,100%,.5);\r\n border-image: url(\"${buttonborder}\") 18 18 stretch;\r\n box-sizing: border-box;\r\n @media (max-width: 540px) {\r\n width: calc(100% - 20px);\r\n height: calc(100% - 20px);\r\n top: 10px;\r\n left: 10px;\r\n }\r\n }\r\n > h3 {\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n position: relative;\r\n max-width: 85%;\r\n margin: 1.3rem auto .5em;\r\n letter-spacing: -1px;\r\n font-weight: 800;\r\n font-size: 2.2rem;\r\n text-align: center;\r\n z-index: 2;\r\n @media (max-width: 1280px) {\r\n font-size: 1.8rem;\r\n }\r\n @media (max-width: 450px) {\r\n font-size: 1.5rem;\r\n }\r\n }\r\n > p {\r\n position: relative;\r\n z-index: 2;\r\n max-width: 85%;\r\n font-size: 1.25rem;\r\n text-align: justify;\r\n text-align-last: center;\r\n margin: 0 auto;\r\n line-height: 1.8rem;\r\n letter-spacing: 1px;\r\n @media (max-width: 1400px) {\r\n font-size: 1.2rem;\r\n line-height: 1.6rem;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: .9rem;\r\n line-height: 1.4rem;\r\n }\r\n }\r\n &:hover {\r\n background-size: 145%;\r\n transition: all .3s ease-in;\r\n :after {\r\n background-color: rgba(90,90,90,.4);\r\n ${props => props.isMiddle && css`\r\n background-color: rgba(90,90,90,.4);\r\n `}\r\n } \r\n }\r\n`;\r\n\r\nconst StyleBannerEn = styled.div`\r\n position: relative;\r\n height: 550px;\r\n width: 90%;\r\n background-image: url(\"${props => props.imgUrl}\");\r\n ${props => props.isMiddle && css`\r\n background-image: url(\"${props => props.imgUrl}\");\r\n `}\r\n background-size: 140%;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n padding: 30px;\r\n margin: 0 auto;\r\n box-sizing: border-box;\r\n color: #FFF;\r\n outline: none;\r\n transition: all .3s ease-in;\r\n word-break: break-word;\r\n @media (max-width: 1280px) {\r\n padding: 30px 15px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 50%;\r\n height: 500px;\r\n margin: 20px auto;\r\n padding: 40px 15px;\r\n }\r\n @media (max-width: 768px) {\r\n width: 70%;\r\n }\r\n @media (max-width: 540px) {\r\n width: 98%;\r\n height: 350px;\r\n padding: 30px 15px;\r\n }\r\n :after {\r\n content: '';\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 1;\r\n top: 0;\r\n left: 0;\r\n background-color: rgba(90,90,90,.9);\r\n ${props => props.isMiddle && css`\r\n background-color: rgba(190,47,55,.9);\r\n transition: all .3s ease-in;\r\n `}\r\n }\r\n :before {\r\n content: '';\r\n position: absolute;\r\n width: calc(100% - 30px);\r\n height: calc(100% - 30px);\r\n z-index: 2;\r\n top: 15px;\r\n left: 15px;\r\n border: 15px solid hsla(0,0%,100%,.5);\r\n border-image: url(\"${buttonborder}\") 18 18 stretch;\r\n box-sizing: border-box;\r\n @media (max-width: 540px) {\r\n width: calc(100% - 20px);\r\n height: calc(100% - 20px);\r\n top: 10px;\r\n left: 10px;\r\n }\r\n }\r\n > h3 {\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n position: relative;\r\n max-width: 85%;\r\n margin: 1.3rem auto .5em;\r\n font-weight: 800;\r\n font-size: 1.8rem;\r\n text-align: center;\r\n z-index: 2;\r\n @media (max-width: 1400px) {\r\n font-size: 1.8rem;\r\n }\r\n @media (max-width: 450px) {\r\n font-size: 1.5rem;\r\n }\r\n }\r\n > p {\r\n position: relative;\r\n z-index: 2;\r\n max-width: 85%;\r\n font-size: 1.3rem;\r\n margin: 0 auto;\r\n line-height: 1.8rem;\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n }\r\n }\r\n &:hover {\r\n background-size: 145%;\r\n transition: all .3s ease-in;\r\n :after {\r\n background-color: rgba(90,90,90,.4);\r\n ${props => props.isMiddle && css`\r\n background-color: rgba(90,90,90,.4);\r\n `}\r\n } \r\n }\r\n`;\r\n\r\nconst StyleLink = styled(Link)`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n position: absolute;\r\n z-index: 2;\r\n color: #fff;\r\n text-align: center;\r\n left: 50%;\r\n bottom: 6rem;\r\n font-size: 1.25rem;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n transform: translateX(-50%);\r\n border-bottom: 1px solid;\r\n @media (max-width: 1280px) {\r\n font-size: 1.2rem;\r\n }\r\n @media (max-width: 450px) {\r\n bottom: 3rem;\r\n }\r\n`;\r\n\r\nconst StyleControl = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 8rem 0 4rem;\r\n position: unset;\r\n .slick-active > button {\r\n background: #b30013;\r\n color: #FFF;\r\n }\r\n button {\r\n background: unset;\r\n border: unset;\r\n color: #b30013;\r\n font-size: 1.5em;\r\n outline: 0;\r\n margin: 0 1.4rem;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst StyleDot = styled.div`\r\n > button {\r\n border-radius: 50%;\r\n width: 35px;\r\n height: 35px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid #b30013;\r\n color: #b30013;\r\n font-size: 1.2em;\r\n margin: 0 0.6rem;\r\n }\r\n \r\n`;\r\n\r\nclass Promotions extends PureComponent {\r\n constructor() {\r\n super();\r\n this.slider = React.createRef();\r\n }\r\n\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n const mainpPath = pathname.split(\"/\");\r\n if (state) {\r\n // if(!nodeData[state.route]) {\r\n // fetchNodeData(state.url, state.route); \r\n // }\r\n } else {\r\n // if (allNodes) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // }\r\n // }\r\n }\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n allNodes,\r\n fetchNodeData,\r\n setLastUrl,\r\n nodeData,\r\n footerData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n // setLastUrl(state ? state : pathname);\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`] || nodeData[state.route];\r\n return (\r\n
\r\n
\r\n
\r\n
{responseData.title}
\r\n
\r\n {responseData.summary}\r\n
\r\n
\r\n \r\n {\r\n return (\r\n \r\n \r\n {dots.map((dot) => (\r\n {dot.props.children}\r\n ))}\r\n \r\n \r\n );\r\n }}\r\n arrows={false}\r\n infinite={true}\r\n speed={500}\r\n slidesToShow={responseData.datas.length >= 3 ? 3 : responseData.datas.length}\r\n slidesToScroll={responseData.datas.length >= 3 ? 3 : responseData.datas.length}\r\n responsive={[{\r\n breakpoint: 1023,\r\n settings: {\r\n slidesPerRow: 1,\r\n rows: 3,\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n }\r\n }]}>\r\n {responseData.datas.map((data, index) => (\r\n
\r\n {langData.type === \"zh-TW\" ? \r\n \r\n

{data.title}

\r\n

{data.summary}

\r\n {/* more */}\r\n {data.subHtml}\r\n
:\r\n \r\n

{data.title}

\r\n

{data.summary}

\r\n {/* more */}\r\n {data.subHtml}\r\n
}\r\n
\r\n ))}\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n footerData: state.Content.footerData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Promotions);","import React, { PureComponent, Fragment } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as IndexAction from '../actions/index';\r\n\r\n\r\nclass PromotionDetail extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n } \r\n },\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n history,\r\n fetchNodeData,\r\n nodeData,\r\n changeLanguage,\r\n allNodes,\r\n getDetailListNum,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n const mainpPath = pathname.split(\"/\");\r\n if (!state) {\r\n // if (allNodes) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // }\r\n // }\r\n } else {\r\n if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if (allNodes) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // } \r\n } else {\r\n const isThisData = nodeData[`/${mainpPath[2]}`].datas.indexOf(nodeData[`/${mainpPath[2]}`].datas.find(val => val.nodeId === `${mainId}`));\r\n getDetailListNum(isThisData);\r\n }\r\n } \r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n } \r\n },\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n history,\r\n fetchNodeData,\r\n nodeData,\r\n changeLanguage,\r\n allNodes,\r\n getDetailListNum,\r\n detailListNum,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(!state) {\r\n if(nodeData[`/${mainpPath[2]}`]) {\r\n const isThisData = nodeData[`/${mainpPath[2]}`].datas.indexOf(nodeData[`/${mainpPath[2]}`].datas.find(val => val.nodeId === `${mainId}`));\r\n if(detailListNum === null) {\r\n if(isThisData === -1) {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}`);\r\n } else {\r\n getDetailListNum(isThisData);\r\n } \r\n } else {\r\n if(preprops.nodeData !== nodeData) {\r\n if(nodeData[`/${mainpPath[2]}`].datas[detailListNum]) {\r\n const isUrl = nodeData[`/${mainpPath[2]}`].datas[detailListNum].nodeId;\r\n if(isUrl) {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}/${isUrl}`);\r\n } \r\n } else {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}`);\r\n }\r\n \r\n }\r\n } \r\n } \r\n\r\n } else {\r\n if(nodeData[`/${mainpPath[2]}`]) {\r\n const isThisData = nodeData[`/${mainpPath[2]}`].datas.indexOf(nodeData[`/${mainpPath[2]}`].datas.find(val => val.nodeId === `${mainId}`));\r\n if(detailListNum === null || detailListNum !== -1) {\r\n if(isThisData === -1) return null;\r\n getDetailListNum(isThisData);\r\n }\r\n } \r\n \r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n } \r\n },\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n history,\r\n langData,\r\n detailListNum,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] || (nodeData[`/${mainpPath[2]}`] && !nodeData[`/${mainpPath[2]}`].datas)) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`].datas.find(val => val.nodeId === `${mainId}`);\r\n responseData.html = responseData.html.replace(\"src=\\\"upload/\", \"src=\\\"/upload/\");\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {langData.goBack}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n langData: state.Content.lang,\r\n allNodes: state.Content.allNodes,\r\n detailListNum: state.Content.detailListNum,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...IndexAction,\r\n }, dispatch),\r\n);\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(PromotionDetail);","import React, { PureComponent } from 'react';\r\n// import styled from 'styled-components';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, reset, Field, formValueSelector, change} from 'redux-form'; \r\nimport Textinput, { regexCheck } from '../conponents/shared/Textinput';\r\nimport APPCONFIG from '../config/config.js';\r\nimport { MEMBER_FORM } from '../shared/form';\r\nimport * as indexAction from '../actions/index';\r\n\r\nclass Member extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dateType: 'text',\r\n dateType2: 'text',\r\n isMan: true,\r\n isAgree: false,\r\n errorMsg: {\r\n name: '',\r\n phone: '',\r\n email: '',\r\n },\r\n };\r\n this.setHintMsg = this.setHintMsg.bind(this);\r\n this.changeAgree = this.changeAgree.bind(this); \r\n }\r\n\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n allNodes,\r\n footerData,\r\n fetchNodeData,\r\n nodeData,\r\n changeLanguage,\r\n sendMemberData,\r\n menuData,\r\n sendMemberSuccess,\r\n } = this.props;\r\n const contactUs = footerData.find(val => val.route === '/contact-us');\r\n const mainpPath = pathname.split(\"/\");\r\n if (state) {\r\n if(!nodeData['/contact-us']) {\r\n if(!contactUs) return null;\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n }\r\n } else {\r\n if(footerData.length && menuData.length) {\r\n if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n fetchNodeData(contactUs.url, contactUs.route);\r\n } \r\n \r\n } \r\n }\r\n if(sendMemberData && sendMemberData.statusCode === 0) {\r\n this.props.reset(MEMBER_FORM);\r\n sendMemberSuccess(null);\r\n }\r\n }\r\n\r\n changeAgree() {\r\n const {\r\n isAgree,\r\n } = this.state;\r\n this.setState({isAgree: !isAgree})\r\n }\r\n\r\n setHintMsg(name, value) {\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n this.setState({\r\n errorMsg: {\r\n ...errorMsg,\r\n [name]: value,\r\n },\r\n });\r\n }\r\n\r\n postData() {\r\n const {\r\n isAgree,\r\n } = this.state;\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n LastName,\r\n FirstName,\r\n Phone,\r\n Email,\r\n sendMember,\r\n Date,\r\n Birthday,\r\n langData,\r\n nodeData,\r\n } = this.props;\r\n const lastNameMsg = regexCheck('name', LastName || '');\r\n const firstNameMsg = regexCheck('name', FirstName || '');\r\n const phoneMsg = regexCheck('phone', Phone || '');\r\n const emailMsg = regexCheck('email', Email || '');\r\n const mainpPath = pathname.split(\"/\");\r\n const responseData = nodeData[`/${mainpPath[2]}`];\r\n if (lastNameMsg || firstNameMsg || phoneMsg || emailMsg) {\r\n this.setState({\r\n errorMsg: {\r\n lastName: lastNameMsg,\r\n firstName: firstNameMsg,\r\n phone: phoneMsg,\r\n email: emailMsg,\r\n },\r\n })\r\n } else {\r\n const post = {\r\n email: Email,\r\n date: Date,\r\n name: LastName + ' ' + FirstName,\r\n phone: Phone,\r\n birthday: Birthday,\r\n head: langData.emailHead['member'],\r\n };\r\n \r\n if(responseData.summary) {\r\n if(isAgree) {\r\n sendMember(post);\r\n let box=document.getElementById(\"check\"); \r\n box.checked=false;\r\n this.changeAgree();\r\n } else {\r\n alert(`${langData.memberAlert}`)\r\n };\r\n } else {\r\n sendMember(post);\r\n }\r\n \r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n errorMsg,\r\n dateType,\r\n dateType2,\r\n isAgree,\r\n } = this.state;\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n footerData,\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] || !nodeData['/contact-us']) return null;\r\n const privacy = footerData.find(val => val.route === '/privacy');\r\n const responseData = nodeData[`/${mainpPath[2]}`];\r\n const contactPlaceholder = nodeData['/contact-us'] && nodeData['/contact-us'].datas[1].datas;\r\n return (\r\n
this.postData()}>\r\n
\r\n
{responseData.title}
\r\n
\r\n \r\n \r\n \r\n \r\n this.setState({dateType: 'date'})}\r\n FocusType={() =>this.setState({dateType: 'date'})}\r\n BlurType={() =>this.setState({dateType: 'text'})}\r\n placeholder={contactPlaceholder[11].title}\r\n name=\"Birthday\"\r\n component={Textinput} />\r\n this.setState({dateType2: 'date'})}\r\n FocusType={() =>this.setState({dateType2: 'date'})}\r\n BlurType={() =>this.setState({dateType2: 'text'})}\r\n placeholder={contactPlaceholder[7].title}\r\n name=\"Date\"\r\n component={Textinput} />\r\n
\r\n
\r\n {responseData.summary &&
\r\n
\r\n \r\n \r\n
\r\n {/* */}\r\n

{responseData.summary}

\r\n {/* */}\r\n
}\r\n
\r\n
\r\n
{this.postData()}}>\r\n {contactPlaceholder[9].title}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst selector = formValueSelector(MEMBER_FORM);\r\n\r\nconst reduxHook = connect(\r\n state => {\r\n const initialValues = {\r\n LastName: '',\r\n FirstName: '',\r\n Phone: '',\r\n Email: '',\r\n // Date: (new Date()).toISOString().slice(0,10).replace(/-/g,\"-\"),\r\n Date: '',\r\n Birthday: '',\r\n };\r\n return {\r\n ...initialValues,\r\n LastName: selector(state, 'LastName'),\r\n FirstName: selector(state, 'FirstName'),\r\n Phone: selector(state, 'Phone'),\r\n Email: selector(state, 'Email'),\r\n Date: selector(state, 'Date'),\r\n Birthday: selector(state, 'Birthday'),\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n footerData: state.Content.footerData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n sendMemberData: state.Content.sendMemberData,\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n // reset: () => dispatch(reset()),\r\n }, dispatch)\r\n);\r\n\r\nconst formHook = reduxForm({\r\n form: MEMBER_FORM,\r\n enableReinitialize: true,\r\n initialValues: {\r\n LastName: '',\r\n FirstName: '',\r\n Phone: '',\r\n Email: '',\r\n // Date: (new Date()).toISOString().slice(0,10).replace(/-/g,\"-\"),\r\n Date: '',\r\n Birthday: '',\r\n },\r\n});\r\n\r\nexport default compose(\r\n reduxHook,\r\n formHook,\r\n)(Member);","import React, { PureComponent } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport styled from 'styled-components';\r\nimport buttonborderHover from '../static/button-border-deepGray.png';\r\nimport buttonborder from '../static/button-border-gray.png';\r\nimport store01 from '../static/store01.jpg';\r\nimport store02 from '../static/store02.jpg';\r\nimport store03 from '../static/store03.jpg';\r\nimport store04 from '../static/store04.jpg';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index.js';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock';\r\n\r\nconst StyleStoreIntro = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 2rem;\r\n justify-content: space-between;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst StyleImgBlock = styled.div`\r\n position: relative;\r\n width: 55%;\r\n height: 280px;\r\n background-image: url(\"${props => props.imgUrl}\");\r\n background-size: cover;\r\n background-position: center;\r\n :before {\r\n content: \"\";\r\n position: absolute;\r\n width: calc(100% - 30px);\r\n height: calc(280px - 30px);\r\n top: 15px;\r\n left: 15px;\r\n border: 1px solid #FFF;\r\n }\r\n @media (max-width: 768px) {\r\n width: 100%;\r\n }\r\n @media (max-width: 414px) {\r\n :before {\r\n width: calc(100% - 20px);\r\n height: calc(280px - 20px);\r\n top: 10px;\r\n left: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextBlock = styled.div`\r\n width: 43%;\r\n font-size: 1.5rem;\r\n color: #5a5a5a;\r\n > h3 {\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 2.5rem;\r\n margin-bottom: 1.5rem;\r\n }\r\n > p {\r\n margin-bottom: 0.1rem;\r\n word-break: break-word;\r\n }\r\n > button {\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n border-image: url(${buttonborder}) 18 18 stretch;\r\n padding: .1rem 2rem;\r\n border-width: 14px;\r\n background: unset;\r\n font-size: 1rem;\r\n color: #c34950;\r\n margin-top: .2rem;\r\n > a {\r\n color: #c34950;\r\n }\r\n &:hover {\r\n border-image: url(${buttonborderHover}) 18 18 stretch;\r\n }\r\n }\r\n > p > i {\r\n margin-right: 0.5rem;\r\n display: inline-block;\r\n }\r\n > p > span {\r\n border-bottom: 1px solid #c34950;\r\n }\r\n > p > a {\r\n color: #0000ee;\r\n }\r\n > p > a.zh-tw {\r\n font-weight: 500;\r\n color: #be2f37;\r\n }\r\n @media (max-width: 1023px) {\r\n > h3 {\r\n font-size: 2rem;\r\n margin-bottom: 1.2rem;\r\n }\r\n font-size: 1.2rem;\r\n }\r\n @media (max-width: 768px) {\r\n width: 90%;\r\n margin: 35px auto 0;\r\n }\r\n @media (max-width: 414px) {\r\n > h3 {\r\n font-size: 1.5rem;\r\n margin-bottom: 1.2rem;\r\n }\r\n font-size: 1rem;\r\n > button {\r\n padding: .1rem 2rem;\r\n align-self: center;\r\n display: flex;\r\n margin: 1.2rem auto 0;\r\n border-image: url(${buttonborder}) 18 18 stretch;\r\n border-width: 12px;\r\n }\r\n }\r\n`;\r\n\r\nconst data1 = [{\r\n id: 1,\r\n img: store01,\r\n location: 'Taipei',\r\n address: '2F 135 Min Sheng East Road, Section 3,',\r\n address1: 'Taipei, Taiwan',\r\n phone: '886-2-2545-8888',\r\n email: 'ez-RuthsChris@elitezone.tech',\r\n }, {\r\n id: 2,\r\n img: store02,\r\n location: 'DaiZhi, Taipei',\r\n address: 'No. 301, Lequn 3rd Rd., Zhongshan District,',\r\n address1: 'Taipei City , 104 Taiwan',\r\n phone: '886-2-8501-5900',\r\n email: 'ez-RuthsChris@elitezone.tech',\r\n }, {\r\n id: 3,\r\n img: store03,\r\n location: 'Taichung',\r\n address: '26th Floor, 367 Chung Kang Road,',\r\n address1: 'Section 1, Taiwan',\r\n phone: '886-4-2323-2872',\r\n email: 'ez-RuthsChris@elitezone.tech',\r\n }, {\r\n id: 4,\r\n img: store04,\r\n location: 'Kaohsiung',\r\n address: 'Zhongzheng 4th Road, No. 211, 25th floor-3 , Qianjin District,',\r\n address1: 'Kaohsiung, 801 Taiwan',\r\n phone: '886-7-241-8888',\r\n email: 'ez-RuthsChris@elitezone.tech',\r\n}];\r\n\r\nclass Reservation extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n changeLanguage,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n // if (state && !nodeData[state.route]) {\r\n // fetchNodeData(state.url, state.route);\r\n // } else {\r\n // const mainpPath = pathname.split(\"/\");\r\n // const data = APPCONFIG.langurage.find(val => val.type === mainpPath[1]);\r\n // changeLanguage(data);\r\n // if (allNodes.childNode && !nodeData[`/${mainpPath[2]}`]) {\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // fetchNodeData(`/${thisNodeData && thisNodeData.nodeId}`, thisNodeData && thisNodeData.route); \r\n // }\r\n // }\r\n }\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n allNodes,\r\n fetchNodeData,\r\n nodeData,\r\n } = this.props;\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!preprops.allNodes.childNode || !allNodes.childNode) return null;\r\n // console.log('111',allNodes)\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route); \r\n // }\r\n }\r\n \r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] && (!state || !nodeData[state.route])) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`].datas || nodeData[state.route].datas;\r\n //console.log('Reservation responseData : ', responseData);\r\n //console.log('Reservation langData : ', langData);\r\n return (\r\n
\r\n
\r\n {responseData.map(data => \r\n \r\n \r\n \r\n \r\n

{data.title}

\r\n

\r\n \r\n {data.summary}\r\n

\r\n

\r\n \r\n T.\r\n {data.html}\r\n

\r\n {data.subHtml.length > 0 ?\r\n

\r\n \r\n M.\r\n {data.subHtml}\r\n

\r\n :\r\n

\r\n }\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Reservation);","import React, { PureComponent } from 'react';\r\n// import styled from 'styled-components';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, formValueSelector } from 'redux-form'; \r\nimport Textinput, { regexCheck } from '../conponents/shared/Textinput';\r\nimport Textarea from '../conponents/shared/Textarea';\r\nimport Radioinput from '../conponents/shared/Radioinput';\r\nimport Dropdown from '../conponents/shared/Dropdown';\r\nimport { CONTACTUS_FORM } from '../shared/form';\r\nimport * as indexAction from '../actions/index';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock';\r\n\r\nclass ContactUs extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // isMan: true,\r\n errorMsg: {\r\n name: '',\r\n phone: '',\r\n email: '',\r\n },\r\n };\r\n this.setHintMsg = this.setHintMsg.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n sendContactUsData,\r\n sendContactUsSuccess,\r\n } = this.props;\r\n if(sendContactUsData && sendContactUsData.statusCode === 0) {\r\n this.props.reset(CONTACTUS_FORM);\r\n sendContactUsSuccess(null);\r\n }\r\n }\r\n\r\n\r\n\r\n postData() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n LastName,\r\n FirstName,\r\n Phone,\r\n Email,\r\n Item,\r\n Comments,\r\n sendContactUs,\r\n Sex,\r\n nodeData,\r\n langData,\r\n allNodes\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n const lastNameMsg = regexCheck('name', LastName || '');\r\n const firstNameMsg = regexCheck('name', FirstName || '');\r\n const phoneMsg = regexCheck('phone', Phone || '');\r\n const emailMsg = regexCheck('email', Email || '');\r\n const contactList = nodeData[`/${mainpPath[2]}`].datas[0].datas;\r\n const ItemData = Item || contactList[0].title;\r\n let country = '';\r\n switch (allNodes.nodeId) {\r\n case 'EC6038CEA6634D1D8D9FA30610004B66':\r\n country = 'tw';\r\n break;\r\n case '93394D2A0E4847F8A9EF893EBEE89D72':\r\n country = 'twen';\r\n break;\r\n case '4E23F940C2BC4930852B6E4D0DDCA477':\r\n country = 'hk';\r\n break;\r\n case 'D6E55A22847244BFB3509F539AAA923F':\r\n country = 'jp';\r\n break;\r\n case 'E14D32056D884353877DC1F090B66477':\r\n country = 'jpen';\r\n break;\r\n case '015C92B4FF634BAB9EF352F34FAEFC51':\r\n country = 'sg';\r\n break;\r\n case 'DCAFFBEA22344BB9AD52BB51C87BDB0E':\r\n country = 'id';\r\n break;\r\n case '2D6882035ECD4AC5BCEBA14A733690A4':\r\n country = 'iden';\r\n break;\r\n case '2E733BC6F54A442DA5984097BB809688':\r\n country = 'ph';\r\n break;\r\n case '3B0F68D324184DE78C686D7C0A549F70':\r\n country = 'phen';\r\n break;\r\n default:\r\n break;\r\n }\r\n if (lastNameMsg || firstNameMsg || phoneMsg || emailMsg) {\r\n this.setState({\r\n errorMsg: {\r\n lastName: lastNameMsg,\r\n firstName: firstNameMsg,\r\n phone: phoneMsg,\r\n email: emailMsg,\r\n },\r\n })\r\n } else {\r\n const post = {\r\n email: Email,\r\n item: ItemData,\r\n comments: Comments,\r\n name: LastName + ' ' + FirstName,\r\n phone: Phone,\r\n sex: '',\r\n head: langData.emailHead['contactus'],\r\n country: country,\r\n };\r\n sendContactUs(post);\r\n }\r\n }\r\n\r\n setHintMsg(name, value) {\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n this.setState({\r\n errorMsg: {\r\n ...errorMsg,\r\n [name]: value,\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n sendContactUsData,\r\n } = this.props;\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] && (!state || !nodeData[state.route])) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`] || nodeData[state.route];\r\n const contactList = responseData.datas[0].datas;\r\n const contactPlaceholder = responseData.datas[1].datas;\r\n return (\r\n
this.postData()}>\r\n
\r\n
{responseData.title}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
this.postData()}>{contactPlaceholder[9].title}
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst selector = formValueSelector(CONTACTUS_FORM);\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n LastName: selector(state, 'LastName'),\r\n FirstName: selector(state, 'FirstName'),\r\n Sex: selector(state, 'Sex'),\r\n Phone: selector(state, 'Phone'),\r\n Email: selector(state, 'Email'),\r\n Item: selector(state, 'Item'),\r\n Comments: selector(state, 'Comments'),\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n sendContactUsData: state.Content.sendContactUsData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch)\r\n);\r\n\r\nconst formHook = reduxForm({\r\n form: CONTACTUS_FORM,\r\n initialValues: {\r\n LastName: '',\r\n FirstName: '',\r\n Sex: 'Male',\r\n Phone: null,\r\n Email: '',\r\n Item: null,\r\n Comments: '',\r\n },\r\n});\r\n\r\nexport default compose(\r\n reduxHook,\r\n formHook,\r\n)(ContactUs);","import React, { PureComponent } from 'react';\r\nimport styled, { css, ThemeProvider } from 'styled-components';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: 1160px;\r\n margin: 80px auto 100px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 60px auto;\r\n }\r\n`;\r\n\r\nconst StyleItem = styled.div`\r\n width: 100%;\r\n margin-bottom: 20px;\r\n border-bottom: 1.45px solid #d2d2d2;\r\n`;\r\n\r\nconst StyleTitle = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding-bottom: 40px;\r\n cursor: pointer;\r\n letter-spacing: 1px;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n > i {\r\n width: 26px;\r\n height: 20px;\r\n transition: all .3s ease-in;\r\n transform: rotate(-180deg);\r\n }\r\n ${props => props.theme.isShow && css`\r\n > i {\r\n transform: rotate(0deg);\r\n }\r\n `}\r\n @media (max-width: 1280px) {\r\n font-size: 1.2rem;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n padding-bottom: 10px;\r\n padding-right: 10px;\r\n > i {\r\n width: 16px;\r\n height: 12px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTitleEn = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding-bottom: 40px;\r\n cursor: pointer;\r\n font-size: 1.3rem;\r\n line-height: 1.8rem;\r\n font-weight: 700;\r\n > i {\r\n width: 26px;\r\n height: 20px;\r\n transition: all .3s ease-in;\r\n transform: rotate(-180deg);\r\n }\r\n ${props => props.theme.isShow && css`\r\n > i {\r\n transform: rotate(0deg);\r\n }\r\n `}\r\n @media (max-width: 414px) {\r\n padding-bottom: 10px;\r\n > i {\r\n width: 16px;\r\n height: 12px;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleQName = styled.div`\r\n width: 100%;\r\n color: #5a5a5a;\r\n @media (max-width: 414px) {\r\n padding-right: 5px;\r\n }\r\n`;\r\n\r\nconst StyleContent = styled.div`\r\n height: 0;\r\n transition: height .3s ease-out .2s, opacity .2s ease-in;\r\n padding: 0 90px 40px;\r\n color: #7f7f7d;\r\n font-size: 1.4rem;\r\n text-align: justify;\r\n overflow: hidden;\r\n opacity: 0;\r\n letter-spacing: 1px;\r\n ${props => props.theme.isShow && css`\r\n height: ${props => props.theme.isShow.height}px;\r\n padding: 0 90px 40px;\r\n opacity: 1;\r\n transition: height .3s ease-out, opacity .2s ease-in .3s;\r\n `}\r\n a {\r\n color: #be2f37;\r\n margin-top: 20px;\r\n display: block;\r\n &:hover {\r\n text-decoration: underline; \r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n font-size: 1.2rem;\r\n padding: 0 50px 40px;\r\n }\r\n @media (max-width: 414px) {\r\n line-height: 1rem;\r\n padding: 0 20px 24px;\r\n font-size: .8rem;\r\n }\r\n`;\r\n\r\nconst StyleContentEn = styled.div`\r\n height: 0;\r\n transition: height .3s ease-out .2s, opacity .2s ease-in;\r\n padding: 0 90px 40px;\r\n color: #7f7f7d;\r\n font-size: 1.3rem;\r\n line-height: 1.8rem;\r\n overflow: hidden;\r\n opacity: 0;\r\n ${props => props.theme.isShow && css`\r\n height: ${props => props.theme.isShow.height}px;\r\n padding: 0 90px 40px;\r\n opacity: 1;\r\n transition: height .3s ease-out, opacity .2s ease-in .3s;\r\n `}\r\n a {\r\n color: #be2f37;\r\n margin-top: 20px;\r\n display: block;\r\n &:hover {\r\n text-decoration: underline; \r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n padding: 0 50px 40px;\r\n }\r\n @media (max-width: 414px) {\r\n line-height: 1rem;\r\n padding: 0 20px 24px;\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\n\r\nclass FAQ extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showAns: [],\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n changeShowAns(isShow, id) {\r\n const { showAns } = this.state;\r\n if (isShow) {\r\n this.setState({\r\n showAns: [\r\n ...showAns.filter(data => data.id !== id),\r\n ],\r\n });\r\n } else {\r\n const ansDiv = document.getElementById(`Ans_${id}`);\r\n ansDiv.style.height = 'unset';\r\n const height = ansDiv.offsetHeight;\r\n ansDiv.removeAttribute('style');\r\n setTimeout(() => {\r\n this.setState({\r\n showAns: [\r\n ...showAns,\r\n {\r\n id,\r\n height,\r\n },\r\n ]\r\n });\r\n }, 50);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n footerData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`] || nodeData[state.route];\r\n const {\r\n showAns,\r\n } = this.state;\r\n const contact = footerData.find(val => val.route === '/contact-us');\r\n return (\r\n \r\n {responseData.datas.map(data => {\r\n const isShow = showAns.find(ans => ans.id === data.id);\r\n const theme = {\r\n isShow,\r\n }\r\n return (\r\n \r\n \r\n {langData.type === \"zh-TW\" ? \r\n this.changeShowAns(isShow, data.id)}>\r\n {data.title}\r\n \r\n \r\n : \r\n this.changeShowAns(isShow, data.id)}>\r\n {data.title}\r\n \r\n \r\n }\r\n {langData.type === \"zh-TW\" ? \r\n \r\n
\r\n {data.url && (\r\n \r\n \r\n {data.html}\r\n \r\n \r\n )}\r\n \r\n :\r\n \r\n
\r\n {data.url && (\r\n \r\n \r\n {data.html}\r\n \r\n \r\n )}\r\n }\r\n \r\n \r\n );\r\n })}\r\n
\r\n \r\n {responseData.summary}\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(FAQ);","import React, { PureComponent } from 'react';\r\nimport '../static/css/html.css';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index.js';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock';\r\n\r\nclass YourPrivacy extends PureComponent {\r\n\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n changeLanguage,\r\n allNodes,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n // if (state) {\r\n // if(!nodeData[state.route]) {\r\n // fetchNodeData(state.url, state.route);\r\n // }\r\n // } else {\r\n // if (allNodes) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // }\r\n \r\n // }\r\n // }\r\n }\r\n\r\n // componentDidUpdate(preprops) {\r\n // const {\r\n // location: {\r\n // pathname,\r\n // },\r\n // allNodes,\r\n // fetchNodeData,\r\n // nodeData,\r\n // } = this.props;\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (!nodeData[`/${mainpPath[2]}`] || preprops.allNodes !== allNodes) {\r\n // if(!allNodes.childNode) return null;\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(\r\n // val => val.pageTitle === 'FOOTER'\r\n // );\r\n // const mainNodeData = thisNodeData.childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // fetchNodeData(`/${mainNodeData.nodeId}`, mainNodeData.route);\r\n // }\r\n // }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`];\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(YourPrivacy);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators, compose, combineReducers } from 'redux';\r\nimport * as IndexAction from '../actions/index';\r\nimport APPCONFIG from '../config/config.js';\r\n\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\n\r\nimport food_detail01 from '../static/food-detail-01.png';\r\nimport food_detail02 from '../static/food-detail-02.jpg';\r\nimport food_detail03 from '../static/food-detail-03.svg';\r\nimport cow from '../static/food-detail-03.svg';\r\nimport { stat } from 'fs';\r\n\r\nclass FoodMenu1 extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n history,\r\n getFoodDetailData,\r\n foodDetailHtmlData,\r\n foodDetailHtml,\r\n getFoodDetailHtml,\r\n langData,\r\n changeLanguage,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n if (!state) {\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]){\r\n // if(allNodes) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(\r\n // val => val.route === '/food-drink'\r\n // );\r\n // if(!thisNodeData) return null;\r\n // const mainNodeData = thisNodeData.childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // fetchNodeData(`/${mainNodeData.nodeId}`, mainNodeData.route);\r\n // }\r\n } else {\r\n if(foodDetailHtmlData && getFoodDetailData[`${mainpPath[1]}`]) {\r\n const isFoodDetailData = getFoodDetailData[`${mainpPath[1]}`].find(val => val.url === `/${mainId}/${subId}`);\r\n if(isFoodDetailData) {\r\n const matches = document.getElementsByClassName('html');\r\n const isTagName = matches[0];\r\n getFoodDetailHtml(isTagName ,isFoodDetailData.title);\r\n } else {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}`);\r\n } \r\n }\r\n }\r\n } else {\r\n const matches = document.getElementsByClassName('html');\r\n const isTagName = matches[0];\r\n getFoodDetailHtml(isTagName ,state.title);\r\n } \r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n foodDetailHtmlData,\r\n getFoodDetailHtml,\r\n langData,\r\n getFoodDetailData,\r\n nodeData,\r\n getDetailListNum,\r\n detailListNum,\r\n history,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(state) {\r\n if(!getFoodDetailData[langData.type]) {\r\n if(nodeData[`/${mainpPath[2]}`]) {\r\n this.fetchFoodDetailData();\r\n }\r\n } else {\r\n const isFoodDetailData = getFoodDetailData[`${mainpPath[1]}`].find(val => val.url === `/${mainId}/${subId}`);\r\n const matches = document.getElementsByClassName('html');\r\n const isTagName = matches[0];\r\n if(!foodDetailHtmlData[isFoodDetailData.title]) {\r\n getFoodDetailHtml(isTagName , isFoodDetailData.title);\r\n }\r\n if(detailListNum === null) {\r\n const isNum = getFoodDetailData[langData.type].indexOf(getFoodDetailData[langData.type].find(val => val.url === `/${mainId}/${subId}`));\r\n getDetailListNum(isNum);\r\n } else {\r\n const isNum = getFoodDetailData[langData.type].indexOf(getFoodDetailData[langData.type].find(val => val.url === `/${mainId}/${subId}`));\r\n getDetailListNum(isNum);\r\n }\r\n }\r\n \r\n } else {\r\n if(!getFoodDetailData[langData.type]) {\r\n if(nodeData[`/${mainpPath[2]}`]) {\r\n this.fetchFoodDetailData();\r\n }\r\n } else {\r\n if(detailListNum === null) {\r\n const isNum = getFoodDetailData[langData.type].indexOf(getFoodDetailData[langData.type].find(val => val.url === `/${mainId}/${subId}`));\r\n if(isNum === -1) {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}`);\r\n } else {\r\n getDetailListNum(isNum);\r\n } \r\n } else {\r\n if((langData !== preprops.langData ) || (preprops.nodeData !== nodeData)){\r\n if(getFoodDetailData[langData.type][detailListNum]) {\r\n const isUrl = getFoodDetailData[langData.type][detailListNum].url;\r\n if(isUrl) {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}${isUrl}`);\r\n } \r\n } else {\r\n history.replace(`/${mainpPath[1]}/${mainpPath[2]}`);\r\n }\r\n }\r\n }\r\n const isFoodDetailData = getFoodDetailData[`${mainpPath[1]}`].find(val => val.url === `/${mainId}/${subId}`);\r\n const matches = document.getElementsByClassName('html');\r\n const isTagName = matches[0];\r\n if(!isFoodDetailData) return null;\r\n if(!foodDetailHtmlData[isFoodDetailData.title]) {\r\n getFoodDetailHtml(isTagName , isFoodDetailData.title);\r\n }\r\n }\r\n };\r\n }\r\n\r\n fetchFoodDetailData() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n getFoodDetail,\r\n langData,\r\n } = this.props;\r\n let selectList = [];\r\n const mainpPath = pathname.split(\"/\");\r\n const responseData = nodeData[`/${mainpPath[2]}`] && nodeData[`/${mainpPath[2]}`].datas;\r\n responseData && responseData.filter(\r\n val => {\r\n if(val.datas.length) {\r\n return val.datas.filter(\r\n x => {\r\n if(x.datas) {\r\n return x.datas.filter(\r\n y => {\r\n if(y.url)\r\n {\r\n return selectList.push(y);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n ) \r\n } \r\n }\r\n );\r\n getFoodDetail(selectList, langData.type);\r\n }\r\n\r\n goTop() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n \r\n render() {\r\n const {\r\n match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n getFoodDetailData,\r\n history,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n langData,\r\n foodDetailHtmlData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!getFoodDetailData[langData.type]) return null;\r\n const isFoodDetailData = getFoodDetailData[`${mainpPath[1]}`].find(val => val.url === `/${mainId}/${subId}`);\r\n if (!isFoodDetailData) return null;\r\n const foodDetailData = getFoodDetailData[langData.type].find(data => data.url === `/${mainId}/${subId}`);\r\n const foodDetailHtml = foodDetailData && foodDetailData.html.split(\"\");\r\n const main = getFoodDetailData[langData.type].indexOf(foodDetailData);\r\n const Previous = main - 1 < 0 ? getFoodDetailData[langData.type][getFoodDetailData[langData.type].length - 1] : getFoodDetailData[langData.type][main - 1];\r\n const next = (main + 1 === getFoodDetailData[langData.type].length) ? getFoodDetailData[langData.type][0] : getFoodDetailData[langData.type][main + 1];\r\n const tagNameA = foodDetailHtmlData && foodDetailHtmlData[isFoodDetailData.title] && foodDetailHtmlData[isFoodDetailData.title].getElementsByTagName('a');\r\n const isTagNameA = tagNameA && Object.values(tagNameA).filter(x => x.className === \"\");\r\n if(isTagNameA) {\r\n if(isTagNameA[0]) {isTagNameA[0].style = \"display:none\";}\r\n if(isTagNameA[1]) {isTagNameA[1].style = \"display:none\";}\r\n } \r\n return (\r\n
\r\n this.goTop()} \r\n class=\"food-backTop-prevpage\" \r\n to={{ pathname: `/${langData.type}/${mainpPath[2]}`}}>\r\n \r\n \r\n \r\n {langData.goBackFood}\r\n \r\n \r\n
\r\n
\r\n {foodDetailHtml && foodDetailHtml.length ? \r\n \r\n
\r\n {(isTagNameA && isTagNameA.length && isTagNameA[0]) ? {isTagNameA[0].innerHTML} : null}\r\n
\r\n {(isTagNameA && isTagNameA.length && isTagNameA[1]) ? {isTagNameA[1].innerHTML} : null}\r\n
\r\n \r\n : null}\r\n
\r\n {foodDetailData && (foodDetailData.question || foodDetailData.answer) &&
\r\n \"icon\"/\r\n
\r\n {foodDetailData.question &&

{foodDetailData.question}

}\r\n
\r\n {foodDetailData.answer &&
{foodDetailData.answer}
}\r\n
}\r\n
\r\n
\r\n
{langData.previous}
\r\n {/* */}\r\n {Previous && \r\n this.goTop()} \r\n to={{ pathname: `/${langData.type}/${mainpPath[2]}${Previous.url}`, state: {...Previous} }}>\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
{langData.next}
\r\n {/* */}\r\n {next && \r\n this.goTop()} \r\n to={{ pathname: `/${langData.type}/${mainpPath[2]}${next.url}`, state: {...next} }}> \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n getFoodDetailData: state.Content.getFoodDetailData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n foodDetailHtmlData: state.Content.foodDetailHtmlData,\r\n detailListNum: state.Content.detailListNum,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...IndexAction,\r\n }, dispatch),\r\n);\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(FoodMenu1);","import React, { PureComponent } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport food06 from '../static/food06.jpg';\r\nimport whiteWine from '../static/white_wine_feature.jpg';\r\nimport home2_01 from '../static/home2-01.jpg';\r\nimport num1 from '../static/num1.svg';\r\nimport num2 from '../static/num2.svg';\r\n\r\nclass HomeContent2 extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n \r\n componentDidMount() {\r\n const {\r\n fetchSpecialBlock,\r\n } = this.props;\r\n fetchSpecialBlock(1);\r\n }\r\n \r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n menuData,\r\n specialBlock,\r\n footerData,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[1]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[1]}`].datas;\r\n const member = footerData.find(val => val.route === '/member');\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n const foodData = menuData.find(val => val.route === '/food-drink');\r\n return (\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].title}
\r\n
{responseData[0].datas[0].summary}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[2] ? responseData[0].datas[0].datas[2].title : ''}
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[3] ? responseData[0].datas[0].datas[3].title : ''}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {/* Technique */}\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[0].summary}
\r\n
{responseData[0].datas[0].datas[0].title}
\r\n
{responseData[0].datas[0].datas[0].html}
\r\n \r\n
\r\n
\r\n
\r\n {/* Ingredients */}\r\n
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].summary : ''}
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].title : ''}
\r\n
\r\n {responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].html : ''} \r\n
\r\n {/* cow */}\r\n
\r\n
\r\n {/* THE PERFECT PAIRING */}\r\n
\r\n
{responseData[0].datas[1].title}
\r\n
\r\n {/* Experience */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[1].datas[0].summary}
\r\n
{responseData[0].datas[1].datas[0].title}
\r\n
\r\n {responseData[0].datas[1].datas[0].html} \r\n
\r\n {/* explore our wines */}\r\n \r\n
\r\n
\r\n
\r\n {/* TASTING NOTES */}\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].summary : ''}
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].title : ''}
\r\n
\r\n {responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].html : ''} \r\n
\r\n
\r\n
\r\n
FAUST
\r\n
\r\n {/* HUNEEUS FAMILY WINERY */}\r\n
\r\n
{responseData[0].datas[2].datas[0] ? responseData[0].datas[2].datas[0].summary : ''}
\r\n
{responseData[0].datas[2].datas[0] ? responseData[0].datas[2].datas[0].title : ''}
\r\n
\r\n
\r\n
\r\n
\r\n {/* STAGS' LEAP WINE DINNER */}\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[3] && responseData[0].datas[3].title}
\r\n {/* button */}\r\n \r\n
\r\n
\r\n\r\n
\r\n
{specialBlock.title}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{specialBlock.summary}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n specialBlock: state.Content.specialBlock,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(HomeContent2);","import React, { PureComponent } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport { withRouter } from 'react-router';\r\n\r\nclass HomeContent3 extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n fetchSpecialBlock,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n fetchSpecialBlock(1);\r\n }\r\n\r\n \r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n menuData,\r\n specialBlock,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[1]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[1]}`].datas;\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n return (\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].title}
\r\n
\r\n {/* Technique */}\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[0].summary}
\r\n
{responseData[0].datas[0].datas[0].title}
\r\n
{responseData[0].datas[0].datas[0].html}
\r\n
\r\n
\r\n {/* Ingredients */}\r\n
\r\n
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].summary : ''}
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].title : ''}
\r\n
{responseData[0].datas[0].datas[1] ? responseData[0].datas[0].datas[1].html : ''}
\r\n
\r\n
\r\n {/* Experience */}\r\n
\r\n
\r\n
{responseData[0].datas[1].datas[0].summary}
\r\n
{responseData[0].datas[1].datas[0].title}
\r\n
{responseData[0].datas[1].datas[0].html}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* THE PERFECT PAIRING */}\r\n
\r\n
{responseData[0].datas[1].title}
\r\n
\r\n {/* TASTING NOTES */}\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].summary : ''}
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].title : ''}
\r\n
\r\n {responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[1].html : ''}\r\n
\r\n
\r\n
\r\n {/* HUNEEUS FAMILY WINERY */}\r\n
\r\n
\r\n
{responseData[0].datas[2].datas[1] ? responseData[0].datas[2].datas[0].summary : ''}
\r\n
{responseData[0].datas[2].datas[0] ? responseData[0].datas[2].datas[0].title : ''}
\r\n
\r\n
\r\n
\r\n {/* STAGS' LEAP WINE DINNER */}\r\n
\r\n
\r\n
\r\n
\r\n
{responseData[0].datas[3].title}
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
{specialBlock.title}
\r\n
{specialBlock.summary}
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n specialBlock: state.Content.specialBlock,\r\n footerData: state.Content.footerData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(HomeContent3);","import React, { PureComponent } from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, formValueSelector } from 'redux-form'; \r\nimport Textinput, { regexCheck } from '../conponents/shared/Textinput';\r\nimport Textarea from '../conponents/shared/Textarea';\r\nimport Radioinput from '../conponents/shared/Radioinput';\r\nimport Dropdown from '../conponents/shared/Dropdown';\r\nimport { GIFTCARD } from '../shared/form';\r\nimport * as indexAction from '../actions/index';\r\nimport APPCONFIG from '../config/config.js';\r\nimport SpecialBlock from '../conponents/shared/SpecialBlock.jsx';\r\nimport styled, { css, ThemeProvider } from 'styled-components';\r\n\r\nconst StyleDiv = styled.div`\r\n width: 95vw;\r\n height: 905px;\r\n margin: 85px auto;\r\n // @media (max-width: 1249px) {\r\n // height: 1105px;\r\n // }\r\n // @media (max-width: 1005px) {\r\n // height: 950px;\r\n // }\r\n // @media (max-width: 996px) {\r\n // height: 930px;\r\n // }\r\n`;\r\n\r\nclass OnlineBooking extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMan: false,\r\n // errorMsg: {\r\n // name: '',\r\n // phone: '',\r\n // email: '',\r\n // },\r\n };\r\n // this.setHintMsg = this.setHintMsg.bind(this);\r\n this.iframe = '';\r\n this.iframeEn = '';\r\n }\r\n\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n fetchNodeData,\r\n menuData,\r\n nodeData,\r\n allNodes,\r\n footerData,\r\n sendEmailData,\r\n sendEmailSuccess,\r\n } = this.props;\r\n // const contactUs = footerData.find(val => val.route === '/contact-us');\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (state) {\r\n // if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n // if(!contactUs) return null;\r\n // fetchNodeData(contactUs.url, contactUs.route);\r\n // }\r\n // } else {\r\n // if(footerData.length && menuData.length && allNodes.childNode) {\r\n // if(nodeData[`/${mainpPath[2]}`] && nodeData['/reservations'] && !nodeData['/contact-us']) {\r\n // fetchNodeData(contactUs.url, contactUs.route);\r\n // } \r\n \r\n // } \r\n // }\r\n // if(sendEmailData && sendEmailData.statusCode === 0) {\r\n // this.props.reset(GIFTCARD);\r\n // sendEmailSuccess(null);\r\n // }\r\n }\r\n\r\n // postData() {\r\n // const {\r\n // LastName,\r\n // FirstName,\r\n // Phone,\r\n // Email,\r\n // Stores,\r\n // Comments,\r\n // sendEmail,\r\n // nodeData,\r\n // langData,\r\n // } = this.props;\r\n // const lastNameMsg = regexCheck('name', LastName || '');\r\n // const firstNameMsg = regexCheck('name', FirstName || '');\r\n // const phoneMsg = regexCheck('phone', Phone || '');\r\n // const emailMsg = regexCheck('email', Email || '');\r\n // const storeMail = nodeData['/reservations'].datas.find(val => val.title === Stores) || nodeData['/reservations'].datas[0];\r\n // const storeName = Stores || storeMail.title;\r\n // if (lastNameMsg || firstNameMsg || phoneMsg || emailMsg) {\r\n // this.setState({\r\n // errorMsg: {\r\n // lastName: lastNameMsg,\r\n // firstName: firstNameMsg,\r\n // phone: phoneMsg,\r\n // email: emailMsg,\r\n // },\r\n // })\r\n // } else {\r\n // const post = {\r\n // email: Email,\r\n // store: {\r\n // name: storeName,\r\n // email: storeMail.subHtml,\r\n // },\r\n // comments: Comments,\r\n // name: LastName + ' ' + FirstName,\r\n // phone: Phone,\r\n // sex: '',\r\n // head: langData.emailHead['OnlineBooking'],\r\n // };\r\n // sendEmail(post);\r\n // }\r\n // }\r\n\r\n // setHintMsg(name, value) {\r\n // const {\r\n // errorMsg,\r\n // } = this.state;\r\n // this.setState({\r\n // errorMsg: {\r\n // ...errorMsg,\r\n // [name]: value,\r\n // },\r\n // });\r\n // }\r\n\r\n iframeHtml() {\r\n return {\r\n __html: this.iframe\r\n }\r\n }\r\n\r\n iframeHtmlEn() {\r\n return {\r\n __html: this.iframeEn\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n sendEmailData,\r\n langData,\r\n } = this.props;\r\n // const {\r\n // errorMsg,\r\n // } = this.state;\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (!nodeData[`/${mainpPath[2]}`] || !nodeData['/reservations'] || !nodeData['/contact-us']) return null;\r\n // const data = nodeData['/reservations'].datas;\r\n // const responseData = nodeData[`/${mainpPath[2]}`];\r\n // const contactPlaceholder = nodeData['/contact-us'].datas[1].datas;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst selector = formValueSelector(GIFTCARD);\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n LastName: selector(state, 'LastName'),\r\n FirstName: selector(state, 'FirstName'),\r\n Phone: selector(state, 'Phone'),\r\n Email: selector(state, 'Email'),\r\n Stores: selector(state, 'Stores'),\r\n Comments: selector(state, 'Comments'),\r\n Sex: selector(state, 'Sex'),\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n footerData: state.Content.footerData,\r\n allNodes: state.Content.allNodes,\r\n sendEmailData: state.Content.sendEmailData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch)\r\n);\r\n\r\nconst formHook = reduxForm({\r\n form: GIFTCARD,\r\n initialValues: {\r\n LastName: '',\r\n FirstName: '',\r\n Phone: '',\r\n Sex: 'Male',\r\n Email: '',\r\n Stores: '',\r\n Comments: '',\r\n },\r\n});\r\n\r\nexport default compose(\r\n reduxHook,\r\n formHook,\r\n)(OnlineBooking);","import React, { PureComponent } from 'react';\r\n// import styled from 'styled-components';\r\n\r\nclass HeaderTop2 extends PureComponent {\r\n render() {\r\n return (\r\n
\r\n
FIND YOUR RUTH'S CHRIS
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default HeaderTop2;","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { withRouter } from 'react-router';\r\nimport { compose, bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\n\r\nimport HeaderTop2 from './HeaderTop2.jsx';\r\n\r\nclass NavList2 extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n menuVisible: false,\r\n };\r\n }\r\n\r\n // componentDidUpdate(prevProps) {\r\n // const {\r\n // getMenu,\r\n // getFooter,\r\n // langData,\r\n // } = this.props;\r\n // if (prevProps.langData !== langData) {\r\n // getMenu('');\r\n // getFooter('');\r\n // }\r\n // }\r\n\r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n menuData,\r\n langData,\r\n } = this.props;\r\n\r\n const {\r\n menuVisible,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n {/* */}\r\n
\r\n
\r\n
{\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })\r\n }}>\r\n
\r\n
\r\n
\r\n
\r\n
MENU
\r\n
\r\n
\r\n
\r\n {menuData.map(val => val.route !== '/reservations' ? (\r\n {\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}} \r\n to={{ pathname: `/${langData.type}${val.route}`, state: {...val} }}>\r\n \r\n {val.title}\r\n \r\n ) : null)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n menuData: state.Content.menuData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(NavList2);","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { compose, bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\n\r\nimport Logo from './../static/ruthschris_global_logo.png';\r\nimport userCircleWhite from './../static/user-circle-solid.png';\r\nimport HeaderTop from './HeaderTop.jsx';\r\n\r\nclass NavList3 extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n menuVisible: false,\r\n };\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n menuData,\r\n langData,\r\n } = this.props;\r\n\r\n const {\r\n menuVisible,\r\n } = this.state;\r\n\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n\r\n return (\r\n
\r\n {/* */}\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n {menuData.map(val => val.route !== '/reservations' ? (\r\n {\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}} \r\n to={{ pathname: `/${langData.type}${val.route}`, state: {...val} }}>\r\n {val.title}\r\n \r\n ) : null)}\r\n\r\n \r\n
\r\n {langData.bookingName}\r\n \r\n
\r\n {langData.bookingName}\r\n
{\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })\r\n }}>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n menuData: state.Content.menuData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(NavList3);","import React, { Component } from 'react';\r\nimport styled from 'styled-components';\r\nimport Slider from \"react-slick\";\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport ReactPlayer from 'react-player';\r\nimport { Link } from 'react-router-dom';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\nimport headerBanner from '../static/food09.jpg';\r\nimport bookingImg from '../static/home2-01.jpg';\r\nimport icon04 from '../static/icon04.svg';\r\nimport fb from '../static/fb-gray.svg';\r\nimport IG from '../static/IG-gray.svg';\r\nimport userCircleGray from '../static/user-circle-solid.svg';\r\nimport Logo from '../static/ruthschris_global_logo.png';\r\n\r\nimport icon1 from '../static/icon1.svg';\r\nimport icon2 from '../static/icon2.svg';\r\nimport icon3 from '../static/icon3.svg';\r\nimport icon4 from '../static/icon4.svg';\r\n\r\nimport './../static/css/banner.css';\r\n\r\nconst StyleBanner = styled.div`\r\n position: relative;\r\n width: 100%;\r\n background-image: url('${props => props.imgUrl}');\r\n height: 700px;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1400px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 336px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 240px;\r\n }\r\n`;\r\n\r\nconst arrayData = [{\r\n path: '/home2',\r\n title: \"STAGS' LEAP WINE DINNER\",\r\n icon: icon04,\r\n description: 'Gather around our table. Let us take care of the rest.',\r\n img: [headerBanner, headerBanner],\r\n }, {\r\n path: '/',\r\n title: \"STAGS' LEAP WINE DINNER\",\r\n icon: icon04,\r\n description: 'Gather around our table. Let us take care of the rest.',\r\n img: [headerBanner, headerBanner],\r\n }\r\n]\r\n\r\nclass Header2 extends Component {\r\n // constructor(props) {\r\n // super(props);\r\n // this.state = {\r\n // showData: this.getTitleName(),\r\n // };\r\n // }\r\n\r\n // componentDidUpdate(prevProps) {\r\n // const {\r\n // pathname,\r\n // getMenu,\r\n // getFooter,\r\n // langData,\r\n // } = this.props;\r\n // if (prevProps.pathname !== pathname) this.setState({ showData: this.getTitleName() });\r\n // if (prevProps.langData !== langData) {\r\n // getMenu('');\r\n // getFooter('');\r\n // }\r\n // }\r\n\r\n setLang(data) {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n langData,\r\n changeLanguage,\r\n getMenu,\r\n getFooter,\r\n getAllNodes,\r\n clearData,\r\n history,\r\n } = this.props;\r\n if (langData.type !== data.type) {\r\n const mainpPath = pathname.split(\"/\");\r\n if(mainpPath[2]) {\r\n if(mainId && subId) {\r\n history.replace(`/${data.type}/${mainpPath[2]}/${mainId}/${subId}`);\r\n } else if (mainId && !subId) {\r\n history.replace(`/${data.type}/${mainpPath[2]}/${mainId}`);\r\n } else {\r\n history.replace(`/${data.type}/${mainpPath[2]}`);\r\n } \r\n } else {\r\n history.replace(`/${data.type}`);\r\n } \r\n changeLanguage(data);\r\n clearData();\r\n getMenu('');\r\n getAllNodes();\r\n getFooter(''); \r\n }\r\n }\r\n \r\n // getTitleName() {\r\n // const {\r\n // pathname,\r\n // } = this.props;\r\n // if (!pathname) return arrayData.find(data => data.path === '/') || {};\r\n // return arrayData.find(data => data.path === pathname) || {};\r\n // }\r\n\r\n getHeaderIcon(number) {\r\n switch (number) {\r\n case \"1\":\r\n // 雕花\r\n return \"icon\"/;\r\n case \"2\":\r\n // 禮物盒\r\n return \"icon\"/;\r\n case \"3\":\r\n // 牛排\r\n return \"icon\"/;\r\n case \"4\":\r\n // 酒杯\r\n return \"icon\"/;\r\n default:\r\n // 雕花\r\n return null;\r\n }\r\n }\r\n\r\n render() {\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n };\r\n \r\n const {\r\n langData,\r\n nodeData,\r\n menuData,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n footerData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[1]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[1]}`];\r\n if (!responseData) return null;\r\n const member = footerData.find(val => val.route === '/member');\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n return (\r\n
\r\n {/*
\r\n {responseData.map(data => (\r\n
\r\n {data.icon ? \"icon\"/ : null}\r\n
{data.title}
\r\n
{data.summary}
\r\n
))}\r\n \r\n {responseData.map(data => (\r\n \r\n ))}\r\n */}\r\n {responseData.isVideo ?\r\n \r\n {responseData.banners.map(data => (\r\n
\r\n
\r\n
\r\n {this.getHeaderIcon(data.icon)}\r\n {data.title &&
{data.title}
}\r\n {data.summary &&
}\r\n
\r\n \r\n
\r\n ))}\r\n \r\n \r\n :\r\n \r\n {responseData.banners.map(data => (\r\n \r\n
\r\n
\r\n {this.getHeaderIcon(data.icon)}\r\n {data.title &&
{data.title}
}\r\n {data.summary &&
}\r\n
\r\n \r\n ))}\r\n \r\n } \r\n
\r\n
\r\n {langData.bookingName}\r\n
\r\n
\r\n \"member\"/\r\n \"fb\"/\r\n \"IG\"/\r\n {APPCONFIG.langurage.filter(data => data.type !== langData.type).map(data => (\r\n
this.setLang(data)}>{data.name}
\r\n ))}\r\n
\r\n \r\n \"Logo\"\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n langData: state.Content.lang,\r\n menuData: state.Content.menuData,\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\nexport default reduxHook(Header2);","import React, { Component } from 'react';\r\nimport styled from 'styled-components';\r\nimport Slider from \"react-slick\";\r\nimport { Link } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\nimport ReactPlayer from 'react-player';\r\n\r\nimport fb from '../static/fb-gray.svg';\r\nimport IG from '../static/IG-gray.svg';\r\nimport userGray from '../static/icon_account_hover-01.svg';\r\nimport Logo from '../static/ruthschris_global_logo.png';\r\n\r\nimport icon1 from '../static/icon1.svg';\r\nimport icon2 from '../static/icon2.svg';\r\nimport icon3 from '../static/icon3.svg';\r\nimport icon4 from '../static/icon4.svg';\r\n\r\nimport './../static/css/banner.css';\r\n\r\nconst StyleBanner = styled.div`\r\n position: relative;\r\n width: 100%;\r\n background-image: url('${props => props.imgUrl}');\r\n height: 700px;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1400px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 336px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 200px;\r\n }\r\n`;\r\n\r\nclass Header3 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n }\r\n\r\n setLang(data) {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n langData,\r\n changeLanguage,\r\n getMenu,\r\n getFooter,\r\n getAllNodes,\r\n clearData,\r\n history,\r\n } = this.props;\r\n if (langData.type !== data.type) {\r\n const mainpPath = pathname.split(\"/\");\r\n if(mainpPath[2]) {\r\n if(mainId && subId) {\r\n history.replace(`/${data.type}/${mainpPath[2]}/${mainId}/${subId}`);\r\n } else if (mainId && !subId) {\r\n history.replace(`/${data.type}/${mainpPath[2]}/${mainId}`);\r\n } else {\r\n history.replace(`/${data.type}/${mainpPath[2]}`);\r\n } \r\n } else {\r\n history.replace(`/${data.type}`);\r\n } \r\n changeLanguage(data);\r\n clearData();\r\n getMenu('');\r\n getAllNodes();\r\n getFooter(''); \r\n }\r\n }\r\n\r\n // componentDidUpdate(prevProps) {\r\n // const {\r\n // getMenu,\r\n // getFooter,\r\n // langData,\r\n // } = this.props;\r\n // if (prevProps.langData !== langData) {\r\n // getMenu('');\r\n // getFooter('');\r\n // }\r\n // }\r\n\r\n getHeaderIcon(number) {\r\n switch (number) {\r\n case \"1\":\r\n // 雕花\r\n return \"icon\"/;\r\n case \"2\":\r\n // 禮物盒\r\n return \"icon\"/;\r\n case \"3\":\r\n // 牛排\r\n return \"icon\"/;\r\n case \"4\":\r\n // 酒杯\r\n return \"icon\"/;\r\n default:\r\n // 雕花\r\n return null;\r\n }\r\n }\r\n\r\n render() {\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n };\r\n const {\r\n langData,\r\n nodeData,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n footerData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[1]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[1]}`];\r\n if (!responseData) return null;\r\n const member = footerData.find(val => val.route === '/member');\r\n return (\r\n
\r\n {/*
\r\n {responseData.map(data => (\r\n
\r\n {data.icon ? \"icon\"/ : null}\r\n
{data.title}
\r\n
{data.summary}
\r\n
))}\r\n \r\n {responseData.map(data => (\r\n \r\n ))}\r\n */}\r\n {responseData.isVideo ?\r\n \r\n {responseData.banners.map(data => (\r\n
\r\n
\r\n
\r\n {this.getHeaderIcon(data.icon)}\r\n {data.title &&
{data.title}
}\r\n {data.summary &&
}\r\n
\r\n \r\n {/* */}\r\n
\r\n ))}\r\n \r\n \r\n :\r\n \r\n {responseData.banners.map(data => (\r\n \r\n
\r\n
\r\n {this.getHeaderIcon(data.icon)}\r\n {data.title &&
{data.title}
}\r\n {data.summary &&
}\r\n
\r\n \r\n ))}\r\n \r\n } \r\n\r\n {/*
\r\n
\r\n
RESERVATIONS
\r\n
*/}\r\n
\r\n \"member\"/\r\n \"fb\"/\r\n \"IG\"/\r\n {APPCONFIG.langurage.filter(data => data.type !== langData.type).map(data => (\r\n
this.setLang(data)}>{data.name}
\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n langData: state.Content.lang,\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\nexport default reduxHook(Header3);","import React, { PureComponent } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nconst StyleWarpper = styled.div`\r\n position: fixed;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n text-align: center;\r\n width: 80px;\r\n height: 80px;\r\n color: #5a5a5a;\r\n background-color: #fff;\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n text-transform: uppercase;\r\n font-weight: bolder;\r\n z-index: 1;\r\n right: 50px;\r\n padding: 0 5px;\r\n letter-spacing: .02em;\r\n bottom: -6.25rem;\r\n opacity: 0;\r\n transition: bottom .5s ease-out, opacity .5s ease-in;\r\n cursor: pointer;\r\n > i {\r\n width: 17px;\r\n height: 14px;\r\n margin: 10px auto 0;\r\n }\r\n ${props => props.visible && css`\r\n bottom: 0;\r\n opacity: 1;\r\n `}\r\n @media (max-width: 414px) {\r\n font-size: 12px;\r\n width: 65px;\r\n height: 60px;\r\n padding: 10px 5px;\r\n right: 10px;\r\n bottom: 10px;\r\n border-radius: 5px;\r\n }\r\n`;\r\n \r\nclass BackTopBtn extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n visible: false,\r\n };\r\n this.beforeScrollTop = 0;\r\n this.ShowBtnHeight = this.getShowBtnHeight();\r\n this.winScroll = this.winScroll.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('scroll', this.winScroll);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { pathname } = this.props;\r\n if (prevProps.pathname !== pathname) this.ShowBtnHeight = this.getShowBtnHeight();\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('scroll', this.winScroll);\r\n }\r\n\r\n winScroll() {\r\n const afterScrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n const delta = afterScrollTop - this.beforeScrollTop;\r\n const { visible } = this.state;\r\n\r\n if (delta < 0 && afterScrollTop > this.ShowBtnHeight){\r\n if (!visible) this.setState({ visible: true });\r\n } else if (visible) this.setState({ visible: false });\r\n\r\n this.beforeScrollTop = afterScrollTop;\r\n }\r\n\r\n getShowBtnHeight() {\r\n const totalHeight = document.documentElement.offsetHeight || document.body.offsetHeight;\r\n const overHeight = totalHeight * 0.2;\r\n return (overHeight > 1000) ? 1000 : overHeight;\r\n }\r\n\r\n render() {\r\n const {\r\n visible,\r\n } = this.state;\r\n return (\r\n { window.scrollTo(0, 0); }}\r\n visible={visible}>\r\n GO TOP\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default (BackTopBtn);","import React, { PureComponent } from 'react';\r\nimport styled, { ThemeProvider } from 'styled-components';\r\nimport MetaTags from 'react-meta-tags';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport * as indexAction from '../actions/index.js';\r\nimport Loading from '../conponents/Loading/loading';\r\nimport AboutUs from './AboutUs.jsx';\r\nimport FoodAndDrink from './FoodAndDrink.jsx';\r\nimport Food from './Food.jsx';\r\nimport Drinks from './Drinks.jsx';\r\nimport Lunch from './Lunch.jsx';\r\nimport HappyHour from './HappyHour.jsx';\r\nimport GiftCards from './GiftCards.jsx';\r\nimport PrivateEvents from './PrivateEvents.jsx';\r\nimport Promotions from './Promotions.jsx';\r\nimport PromotionDetail from './PromotionDetail.jsx';\r\nimport Member from './Member.jsx';\r\nimport Reservation from './Reservation.jsx';\r\nimport ContactUs from './ContactUs.jsx';\r\nimport FAQ from './FAQ.jsx';\r\nimport YourPrivacy from './YourPrivacy.jsx';\r\nimport FoodMenu1 from './FoodMenu1.jsx';\r\nimport HomeContent from './HomeContent.jsx';\r\nimport HomeContent2 from './HomeContent2.jsx';\r\nimport HomeContent3 from './HomeContent3.jsx';\r\nimport OnlineBooking from './OnlineBooking.jsx';\r\n\r\nimport NavList from '../conponents/NavList.jsx';\r\nimport NavList2 from '../conponents/NavList2.jsx';\r\nimport NavList3 from '../conponents/NavList3.jsx';\r\nimport Header from '../conponents/Header.jsx';\r\nimport Header2 from '../conponents/Header2.jsx';\r\nimport Header3 from '../conponents/Header3.jsx';\r\nimport Footer from '../conponents/shared/Footer.jsx';\r\nimport BackTopBtn from '../conponents/shared/BackTopBtn.jsx';\r\nimport APPCONFIG from '../config/config';\r\nimport { declaredPredicate } from '@babel/types';\r\n\r\nconst theme = {\r\n backgroundColor: '#f3f3eb',\r\n color: '#333',\r\n}\r\n\r\nconst StyleWarpper = styled.div`\r\n // font-family: 'Open Sans',serif;\r\n box-sizing: border-box;\r\n width: 100%;\r\n font-size: 16px;\r\n background-color: ${props => props.theme.backgroundColor};\r\n -webkit-font-smoothing: antialiased;\r\n @media (max-width: 1280px) {\r\n font-size: 16px;\r\n }\r\n`;\r\n\r\nconst StyleContent = styled.div`\r\n width: 100%;\r\n`;\r\n\r\n\r\nclass MainBoard extends PureComponent {\r\n componentDidMount() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n getMenu,\r\n getFooter,\r\n getAllNodes,\r\n fetchNodeData,\r\n langData,\r\n history,\r\n changeLanguage,\r\n nodeData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n if(pathname.indexOf('/hk/') >= 0 || pathname.indexOf('/sg/') >= 0 || pathname.indexOf('/ph/') >= 0) {\r\n history.replace(`/${ APPCONFIG.langurage[0].type}`); // default to en-us\r\n } else if(pathname === '/') {\r\n if(langData) {\r\n history.replace(`/${ langData.type}`);\r\n } else {\r\n history.replace(`/${ APPCONFIG.langurage[0].type}`);\r\n }\r\n } else {\r\n const data = APPCONFIG.langurage.find(val => val.type === mainpPath[1]);\r\n if(data) {\r\n changeLanguage(data);\r\n } else {\r\n if(langData) {\r\n history.replace(`/${ langData.type}`);\r\n } else {\r\n history.replace(`/${ APPCONFIG.langurage[0].type}`);\r\n }\r\n } \r\n }\r\n getMenu('');\r\n getAllNodes();\r\n getFooter('');\r\n \r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n getFoodDetailHtml,\r\n foodDetailHtmlData,\r\n nodeData,\r\n langData,\r\n fetchNodeData,\r\n menuData,\r\n footerData,\r\n allNodes,\r\n history,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(state) {\r\n if(footerData.length && menuData.length && allNodes.childNode) {\r\n const reservations = menuData.find(val => val.route === '/reservations'); \r\n if(nodeData[`/${mainpPath[2]}`]) {\r\n if(!nodeData['/reservations']) {\r\n fetchNodeData(reservations.url, reservations.route);\r\n }\r\n } else {\r\n const thisNodeData = menuData.find(val => val.route === `/${mainpPath[2]}`);\r\n const thatNodeData = footerData.find(val => val.route === `/${mainpPath[2]}`);\r\n const onlineBookingNodeData = menuData.find(val => val.route === `/${mainpPath[2]}`);\r\n if(thisNodeData) {\r\n fetchNodeData(thisNodeData.url, thisNodeData.route);\r\n } else if (thatNodeData) {\r\n fetchNodeData(thatNodeData.url, thatNodeData.route);\r\n } else if (onlineBookingNodeData) {\r\n fetchNodeData(onlineBookingNodeData.url, onlineBookingNodeData.route);\r\n } else {\r\n if(!allNodes.childNode) return null;\r\n const thisNodeData = allNodes.childNode[0].childNode.find(\r\n val => val.route === '/food-drink'\r\n );\r\n const mainNodeData = thisNodeData.childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n fetchNodeData(`/${mainNodeData.nodeId}`, mainNodeData.route); \r\n }\r\n }\r\n }\r\n } else {\r\n if((pathname === `/${langData.type}` || pathname === `/${langData.type}/`)) {\r\n if(footerData.length && menuData.length && allNodes.childNode) {\r\n const reservations = menuData.find(val => val.route === '/reservations'); \r\n if(!nodeData[`/${mainpPath[1]}`]) {\r\n fetchNodeData('', `/${langData.type}`);\r\n } else {\r\n if(!nodeData['/reservations']) {\r\n fetchNodeData(reservations.url, reservations.route);\r\n }\r\n } \r\n }\r\n } else {\r\n if(footerData.length && menuData.length && allNodes.childNode) {\r\n const reservations = menuData.find(val => val.route === '/reservations'); \r\n const thisNodeData = menuData.find(val => val.route === `/${mainpPath[2]}`);\r\n const thatNodeData = footerData.find(val => val.route === `/${mainpPath[2]}`);\r\n if(!nodeData[`/${mainpPath[2]}`]) {\r\n if(thisNodeData) {\r\n fetchNodeData(thisNodeData.url, thisNodeData.route);\r\n } else if (thatNodeData) {\r\n fetchNodeData(thatNodeData.url, thatNodeData.route);\r\n } else {\r\n if(!allNodes.childNode) return null;\r\n const thisNodeData = allNodes.childNode[0].childNode.find(\r\n val => val.route === '/food-drink'\r\n );\r\n const mainNodeData = thisNodeData.childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n if(mainNodeData) {\r\n fetchNodeData(`/${mainNodeData.nodeId}`, mainNodeData.route); \r\n } else {\r\n if(langData) {\r\n history.replace(`/${ langData.type}`);\r\n } else {\r\n history.replace(`/${ APPCONFIG.langurage[0].type}`);\r\n }\r\n } \r\n }\r\n } else {\r\n if(!nodeData['/reservations']) {\r\n fetchNodeData(reservations.url, reservations.route);\r\n }\r\n } \r\n }\r\n }\r\n } \r\n }\r\n\r\n home() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n switch(nodeData[`/${langData.type}`] && nodeData[`/${langData.type}`].title) {\r\n case '1':\r\n return ;\r\n\r\n case '2':\r\n \r\n return ;\r\n case '3':\r\n \r\n return ;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n navList() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n switch(nodeData[`/${langData.type}`] && nodeData[`/${langData.type}`].title) {\r\n case '1':\r\n return ;\r\n\r\n case '2':\r\n \r\n return ;\r\n case '3':\r\n \r\n return ;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n header() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n langData,\r\n } = this.props;\r\n switch(nodeData[`/${langData.type}`] && nodeData[`/${langData.type}`].title) {\r\n case '1':\r\n return ;\r\n\r\n case '2':\r\n \r\n return ;\r\n\r\n case '3':\r\n \r\n return ;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n const data = APPCONFIG.langurage.find(val => val.type === mainpPath[1]);\r\n return (\r\n \r\n \r\n \r\n \r\n {(pathname === `/${langData.type}` || pathname === `/${langData.type}/`) && this.navList()}\r\n \r\n \r\n \r\n \r\n \r\n {(pathname === `/${langData.type}` || pathname === `/${langData.type}/`) && this.header()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.home()}\r\n \r\n \r\n