{"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","onlinebookingName","option","emailHead","country","memberAlert","APPCONFIG","countryID","BackEndWebApi","intervalsTime","langurage","LET_STAY_IN_TOUCH","specialBlock","member","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","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","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","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.95f61eea.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 \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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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 Official website-Contact Us',\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/',\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 {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] && 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\nconst 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\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\nconst 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\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 } = 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 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 };\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