{"version":3,"sources":["static/home2-01.jpg","static/fb-gray.svg","static/IG-gray.svg","static/button-border-deepWhite.png","static/button-border-gray.png","static/icon04.svg","config/config.js","App.js","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-white.png","static/user-circle-solid.svg","static/icon_account_hover-01.svg","static/footer-border.png","static/fb.svg","static/IG.svg","conponents/Loading/loading.jsx","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","conponents/shared/SpecialBlock.jsx","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/HomeContent.jsx","containers/HomeContent2.jsx","containers/HomeContent3.jsx","containers/OnlineBooking.jsx","conponents/HeaderTop.jsx","conponents/NavList.jsx","conponents/HeaderTop2.jsx","conponents/NavList2.jsx","conponents/NavList3.jsx","conponents/Header.jsx","conponents/Header2.jsx","conponents/Header3.jsx","conponents/shared/Footer.jsx","conponents/shared/BackTopBtn.jsx","containers/MainBoard.jsx","static/divider-center.png","static/divider-left.png","static/divider-right.png","static/private-event01.jpg","static/private-event02.jpg","static/private-event03.jpg","static/food-detail-01.png","static/food-detail-02.jpg","static/feature_lobster.jpg","static/feature_steak.jpg","static/tile_diagram.png","static/huneeus-small.jpg","static/feature_faust.jpg","static/stagsleaphero.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","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":["module","exports","langurageData","console","log","process","name","type","bookingName","option","emailHead","fb","ig","country","memberAlert","APPCONFIG","countryID","BackEndWebApi","intervalsTime","langurage","hot","useEffect","TagManager","initialize","gtmId","store","history","path","render","Loading","this","props","loading","class","PureComponent","reduxHook","connect","state","Content","compose","AboutUs","location","pathname","fetchNodeData","nodeData","allNodes","document","body","scrollTop","documentElement","mainpPath","split","responseData","route","dangerouslySetInnerHTML","__html","html","width","height","url","loop","controls","langData","lang","footerData","menuData","dispatch","bindActionCreators","indexAction","withRouter","StyleImg","styled","div","imgUrl","imgRight","getLength","StyleMenu","StyleMenuLeft","StyleMenuList","StyleMenuItemWep","StyleMenuItem","Link","StyleLink","StyleInnerBlockL","FoodAndDrink","bottomHeight","selectList","childNode","filter","data","x","y","pageTitle","push","length","nodeId","datas","map","val","index","title","id","to","getSummary","summary","className","hash","achor","src","StyleSubTitleRed","isClick","StyleSubTitle","StyleContentFoodList","StyleFoodItem","StyleTextTitleLink","StyleTextTitle","StyleContentImg","StyleDividingLine","StyleIconFleur","iconFleur","StyleDividingText","dividerLeft","dividerRight","dividerCenter","StyleContentSpecialtyList","StyleSpecialtytItem","StyleDividingType","dots","StyleIconFleurWep","StyleSeafoodImg","Food","preprops","getFoodDetailData","fetchFoodDetailData","getFoodDetail","Datas","reservations","find","isDynamicArea","dynamicData","steaksArticleData","isArticle","steaksData","appetizersArticleData","appetizersData","style","transform","color","backgroundImage","iconSteak","alt","list","href","target","StyleContentBg","BarCocktailsLeft","BarCocktailsRight","StyleContent","StyleLeft","StyleImgRight","StyleRight","StyleTextItalic","StyleDessertContent","StyleDessertItem","StyleImgRedWine","StyleRedWineItem","StyleRedWineTextInner","StyleWineOpenImg","StyleRightDown","StyleWhiteWineImg","StyleWineEnd","StyleImgChampagne","StyleSparklingItem","Drinks","margin","wineRed","Component","StyleLunchImg","StyleContentLunchList","StyleLunchItem","StyleLunchItemTitle","Lunch","AppetizersData","BurgersData","EntreesData","drinkPromo","StyleHappyHourImg","StyleHappyHourImgFull","StyleHappyHourItemTitle","StyleSwirlItem","HappyHour","FoodData","StyleWarpper","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","LET_STAY_IN_TOUCH","specialBlock","subHtml","If_you_need","Search_all_store","SpecialBlock","temp","fetchSpecialBlock","content","GiftCards","isMan","phone","email","bind","sendEmailData","sendEmailSuccess","contactUs","statusCode","reset","LastName","FirstName","Phone","Email","Stores","Comments","sendEmail","lastNameMsg","firstNameMsg","phoneMsg","emailMsg","storeMail","storeName","lastName","firstName","comments","sex","head","contactPlaceholder","onSubmit","postData","Field","component","Textinput","onClick","selector","formValueSelector","Sex","formHook","reduxForm","form","initialValues","StyleTextInner","LangStyle","StyleServiceItem","StyleServiceImg","PrivateEvents","Opinion","contactData","fontFamily","StyleSliderWarp","StyleSlider","Slider","StyleBanner","isMiddle","css","buttonborder","StyleBannerEn","StyleControl","StyleDot","Promotions","slider","React","createRef","setLastUrl","ref","appendDots","current","slickPrev","dot","key","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","address","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","HomeContent","backgroundSize","food_detail03","HomeContent2","member","foodData","num1","num2","home2_01","HomeContent3","paddingBottom","StyleDiv","OnlineBooking","iframe","iframeEn","iframeHtml","iframeHtmlEn","NavList","menuVisible","getMenu","getFooter","getAllNodes","clearData","onlinebooking","excludeRoute","hasonlinebooking","Logo","setLang","userCircleWhite","onlinebookingName","foodDetailUrl","NavList2","NavList3","Header","img","number","icon1","icon2","icon3","icon4","isVideo","banners","getHeaderIcon","playing","muted","config","youtube","playerVars","modestbranding","Header2","icon04","headerBanner","bookingImg","userCircleGray","IG","Header3","userGray","StyleFooterBorder","footerBorder","StyleStoreWarp","StyleStore","Footer","storeData","fleurGray","footerStore","visible","BackTopBtn","beforeScrollTop","ShowBtnHeight","getShowBtnHeight","winScroll","addEventListener","prevProps","removeEventListener","afterScrollTop","delta","overHeight","window","scrollTo","backgroundColor","MainBoard","thisNodeData","thatNodeData","onlineBookingNodeData","mainNodeData","navList","header","home","Boolean","hostname","ReactDOM","App","navigator","serviceWorker","ready","then","registration","unregister","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.c268c83d.chunk.js","sourcesContent":["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\";","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){ //'tw' :localhost\r\n case 'tw':\r\n countryNodeID = '919AB72486624AA5A521A16FF014140B';\r\n langurageData = [{\r\n name: '繁中',\r\n type: 'zh-TW',\r\n bookingName: '分店資訊',\r\n onlinebookingName: '線上訂位',\r\n option: {'store': '請選擇分店', 'other': '請選擇',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Taiwan Official website\",\r\n },\r\n fb: 'https://www.facebook.com/ruthschris.tw/',\r\n ig: 'https://www.instagram.com/ruthschristw/',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'STORE INFORMATION',\r\n onlinebookingName: 'ONLINE BOOKING',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Taiwan Official website\",\r\n },\r\n fb: 'https://www.facebook.com/ruthschris.tw/',\r\n ig: 'https://www.instagram.com/ruthschristw/',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'hk':\r\n countryNodeID = '1BCB6B48E9D8411C9973A966C5FF8EA2';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Hong Kong Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseHK',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'jp':\r\n countryNodeID = '358D7623AB3849109CBC39652EEBB70F';\r\n langurageData = [{\r\n name: '日本語',\r\n type: 'jp',\r\n bookingName: '予約',\r\n option: {'store': '店舗を選択してください。', 'other': '選択してください。',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Japan Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Japan Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'sg':\r\n countryNodeID = 'C6545B60CC464421B8B116D2E653F872';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Singapore Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseSG',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'id':\r\n countryNodeID = 'A6BC1D35E2494D4C924367591747B99C';\r\n langurageData = [{\r\n name: '印尼',\r\n type: 'id',\r\n bookingName: '訂位資訊',\r\n option: {'store': '請選擇分店', 'other': '請選擇',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Indonesia Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseJKT',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: '請勾選同意「隱私權與個人資料保護政策」'\r\n }, {\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Indonesia Official website\",\r\n },\r\n fb: 'https://www.facebook.com/RuthsChrisSteakHouseJKT',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n case 'ph':\r\n countryNodeID = 'E31E3A7250AC45DEBBBF4C01EA33E1A1';\r\n langurageData = [{\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n emailHead:{\r\n 'giftcards': 'From Official website-Gift Cards', \r\n 'privateevents': 'From Official website-Private Events',\r\n 'member': 'From Official website-Member',\r\n 'contactus': \"From Ruth's Chris Philippines Official website\",\r\n },\r\n fb: '',\r\n ig: '',\r\n country: process.env.LANG,\r\n memberAlert: 'Please check the privacy policy and personal information protection notification'\r\n }];\r\n break;\r\n};\r\n//console.log('config.js - countryNodeID', countryNodeID);\r\n//console.log('config.js - langurageData', langurageData);\r\nlet APPCONFIG = {\r\n countryID: process.env.COUNTRY || countryNodeID, ///new\r\n //countryID: process.env.COUNTRY || '919AB72486624AA5A521A16FF014140B', ///tw\r\n // countryID: process.env.COUNTRY || '1BCB6B48E9D8411C9973A966C5FF8EA2', ///hk\r\n // countryID: process.env.COUNTRY || '358D7623AB3849109CBC39652EEBB70F', ///jp\r\n // countryID: process.env.COUNTRY || 'C6545B60CC464421B8B116D2E653F872', ///sg\r\n // countryID: process.env.COUNTRY || 'A6BC1D35E2494D4C924367591747B99C', ///id\r\n // countryID: process.env.COUNTRY || 'E31E3A7250AC45DEBBBF4C01EA33E1A1', ///ph\r\n // BackEndWebApi: 'http://40.74.70.104:9995/',\r\n //BackEndWebApi: 'http://104.42.40.253:9995/',\r\n // BackEndWebApi: 'http://180.218.64.109:5000',\r\n //BackEndWebApi: 'http://localhost:8007/',\r\n // BackEndWebApi: 'http://104.42.40.253/RuthschrisApi/',\r\n BackEndWebApi: 'https://www.ruthschris.com.tw/Api', // buildurl\r\n // BackEndWebApi: 'http://184.168.121.140/RuthschrisApi/', // UAT\r\n // BackEndWebApi: 'http://localhost:2695/', //local test\r\n intervalsTime: 10000,\r\n};\r\nconsole.log('config.js - process.env.COUNTRY', process.env.COUNTRY);\r\n//console.log('config.js - APPCONFIG', APPCONFIG);\r\nswitch (process.env.COUNTRY) {\r\n case '919AB72486624AA5A521A16FF014140B': ///tw\r\n // case '1BCB6B48E9D8411C9973A966C5FF8EA2': ///hk\r\n // case '358D7623AB3849109CBC39652EEBB70F': ///jp\r\n // case 'C6545B60CC464421B8B116D2E653F872': ///sg\r\n // case 'A6BC1D35E2494D4C924367591747B99C': ///id\r\n // case 'E31E3A7250AC45DEBBBF4C01EA33E1A1': ///ph\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///tw\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: '繁中',\r\n type: 'zh-TW',\r\n bookingName: '分店資訊',\r\n onlinebookingName: '線上訂位',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '成功寄出',\r\n goBackFood: '回到食物菜單',\r\n goBack: '回到特別活動',\r\n next: '下一頁',\r\n previous: '上一頁',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'STORE INFORMATION',\r\n onlinebookingName: 'ONLINE BOOKING',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n\r\n ///hk\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///jp\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: '日文',\r\n // type: 'jp',\r\n // bookingName: '訂位資訊',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: '成功寄出',\r\n // goBackFood: '回到食物菜單',\r\n // goBack: '回到特別活動',\r\n // next: '下一頁',\r\n // previous: '上一頁',\r\n // }, {\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///sg\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///id\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: '印尼',\r\n // type: 'id',\r\n // bookingName: '訂位資訊',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: '成功寄出',\r\n // goBackFood: '回到食物菜單',\r\n // goBack: '回到特別活動',\r\n // next: '下一頁',\r\n // previous: '上一頁',\r\n // }, {\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n\r\n ///ph\r\n // langurage: [{\r\n // title: \"Ruth's Chris Steak House\",\r\n // url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n // description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n // keyWord: 'Ruth’s Chris,茹絲葵',\r\n // seoScript: 'SEO',\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // email: 'marketing@hasmoreltd.com',\r\n // fb: 'https://www.facebook.com/ruthschris.tw/?fref=ts',\r\n // ig: 'https://reurl.cc/gvRqbQ',\r\n // send: 'send success',\r\n // goBackFood: 'BACK TO DINNER MENU',\r\n // goBack: 'BACK TO PROMOTIONS',\r\n // next: 'next',\r\n // previous: 'previous',\r\n // }],\r\n }\r\n break;\r\n case '1BCB6B48E9D8411C9973A966C5FF8EA2': ///hk\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///hk\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case '358D7623AB3849109CBC39652EEBB70F': ///jp\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///jp\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'ルースクリスはアメリカ中西部のプライムビーフを厳選されています。',\r\n keyWord: 'Ruth’s Chris;ルースクリス',\r\n seoScript: 'SEO',\r\n name: '日本語',\r\n type: 'jp',\r\n bookingName: '予約',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '送信',\r\n goBackFood: 'メニューへ',\r\n goBack: 'イベントへ',\r\n next: '次に進む',\r\n previous: '戻る',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'C6545B60CC464421B8B116D2E653F872': ///sg\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///sg\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'A6BC1D35E2494D4C924367591747B99C': ///id\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///id\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: '印尼',\r\n type: 'id',\r\n bookingName: '訂位資訊',\r\n email: 'marketing@hasmoreltd.com',\r\n send: '成功寄出',\r\n goBackFood: '回到食物菜單',\r\n goBack: '回到特別活動',\r\n next: '下一頁',\r\n previous: '上一頁',\r\n }, {\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n case 'E31E3A7250AC45DEBBBF4C01EA33E1A1': ///ph\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///ph\r\n langurage: [{\r\n title: \"Ruth's Chris Steak House\",\r\n url: 'https://www.ruthschris.com.tw',\r\n // imageUrl:'http://ruthschris.shinda.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png',\r\n imageUrl:'https://www.ruthschris.com.tw/backend/upload/pic/2020-03/202003171439143297864652.png', // buildurl\r\n description: 'Ruth’s Chris茹絲葵僅選用佔市場總產量不到2%的U.S. Prime牛肉,絕妙滋味歷久彌新。',\r\n keyWord: 'Ruth’s Chris,茹絲葵',\r\n seoScript: 'SEO',\r\n name: 'EN',\r\n type: 'en-US',\r\n bookingName: 'RESERVATIONS',\r\n email: 'marketing@hasmoreltd.com',\r\n send: 'send success',\r\n goBackFood: 'BACK TO DINNER MENU',\r\n goBack: 'BACK TO PROMOTIONS',\r\n next: 'next',\r\n previous: 'previous',\r\n }],\r\n }\r\n break;\r\n default:\r\n APPCONFIG = {\r\n ...APPCONFIG,\r\n ///new\r\n langurage: [...langurageData],\r\n\r\n ///tw\r\n // langurage: [{\r\n // name: '繁中',\r\n // type: 'zh-TW',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///hk\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///jp\r\n // langurage: [{\r\n // name: '日文',\r\n // type: 'jp',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///sg\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///id\r\n // langurage: [{\r\n // name: '印尼',\r\n // type: 'id',\r\n // bookingName: '訂位資訊',\r\n // option: {'store': '請選擇分店', 'other': '請選擇',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }, {\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n\r\n ///ph\r\n // langurage: [{\r\n // name: 'EN',\r\n // type: 'en-US',\r\n // bookingName: 'RESERVATIONS',\r\n // option: {'store': 'Choose Location', 'other': 'Please Select',},\r\n // emailHead:{\r\n // 'giftcards': 'From Official website-Gift Cards', \r\n // 'privateevents': 'From Official website-Private Events',\r\n // 'member': 'From Official website-Member',\r\n // 'contactus': 'From Official website-Contact Us',\r\n // },\r\n // }],\r\n }\r\n break;\r\n}\r\n\r\nexport default APPCONFIG;\r\n","import React, { useEffect } from 'react';\r\nimport { MemoryRouter, Router } from 'react-router';\r\nimport { Switch, Route,} 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 MainBoard from './containers/MainBoard.jsx';\r\nimport './static/sass/style.scss';\r\nimport TagManager from 'react-gtm-module';\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n const tagManagerArgs = {\r\n gtmId: 'GTM-TXVHPZHC'\r\n };\r\n TagManager.initialize(tagManagerArgs);\r\n }, []);\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 = __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 = \"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 = __webpack_public_path__ + \"static/media/user-circle-solid.bbaceeb9.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_account_hover-01.1d9a8871.svg\";","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\";","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);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { connect } from 'react-redux';\r\nimport ReactPlayer from 'react-player';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport APPCONFIG from '../config/config.js';\r\nimport { withRouter } from 'react-router';\r\n\r\n\r\n\r\nclass AboutUs extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n // if (state) {\r\n // if(!nodeData[state.route]) {\r\n // fetchNodeData(state.url, state.route);\r\n // } \r\n // } else {\r\n // const mainpPath = pathname.split(\"/\");\r\n // if (allNodes && !nodeData[`/${mainpPath[2]}`]) {\r\n // const thisNodeData = allNodes.childNode && allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route); \r\n // }\r\n // }\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`] || nodeData[state.route];\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(AboutUs);","import React, { PureComponent, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport APPCONFIG from '../config/config.js';\r\nimport * as indexAction from '../actions/index.js'\r\n\r\nconst StyleImg = styled.div`\r\n width: 65%;\r\n height: 550px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center 15%;\r\n box-shadow: ${props => props.imgRight ? \"20px -20px #dad8c7\" : \"-20px -20px #dad8c7\"};\r\n margin-bottom: ${props => (props.getLength > 8 ? (props.getLength-8)*70 : 0)}px;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n height: 450px;\r\n box-shadow: none;\r\n margin-bottom: ${props => props.getLength*70}px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 350px;\r\n margin-bottom: ${props => props.getLength*26+63}px;\r\n }\r\n`;\r\n\r\nconst StyleMenu = styled.div`\r\n position: absolute;\r\n width: 45%;\r\n background-color: #fff;\r\n right: 0;\r\n display: flex;\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n left: 50%;\r\n top: 440px;\r\n transform: translate(-50%,0);\r\n }\r\n @media (max-width: 414px) {\r\n top: 320px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n`;\r\n\r\nconst StyleMenuLeft = styled.div`\r\n position: absolute;\r\n width: 45%;\r\n background-color: #fff;\r\n left: 0;\r\n display: flex;\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n left: 50%;\r\n top: 440px;\r\n transform: translate(-50%, 0);\r\n }\r\n @media (max-width: 414px) {\r\n top: 320px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n`;\r\n\r\nconst StyleMenuList = styled.div`\r\n width: 100%;\r\n border: 1px solid #d2d2d2;\r\n padding: 2em 0;\r\n @media (max-width: 768px) {\r\n padding-top: 1.5rem;\r\n padding-bottom: 1.5rem;\r\n padding-left: 1.5rem;\r\n padding-right: 1.5rem;\r\n }\r\n @media (max-width: 414px) {\r\n padding-top: 20px;\r\n padding-bottom: 20px;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n`;\r\n\r\nconst StyleMenuItemWep = styled.div`\r\n margin: 0 auto;\r\n width: fit-content;\r\n @media (max-width: 414px) {\r\n display: flex; \r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nconst StyleMenuItem = styled(Link)`\r\n width: fit-content;\r\n display: flex;\r\n font-size: 1.5rem;\r\n align-items: center;\r\n color: #be2f37;\r\n margin: 1.2rem 0;\r\n scroll-behavior: smooth;\r\n text-decoration: none;\r\n >span {\r\n position: relative;\r\n display: block;\r\n }\r\n >span >i {\r\n margin-left: 20px;\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: 0rem;\r\n top: 0;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .3rem;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n margin-left: 15px;\r\n width: 16px;\r\n height: 12px;\r\n top: 55%;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .3rem;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n margin: .5rem 30px 0 0;\r\n text-align: start;\r\n >span {\r\n height: 18px;\r\n }\r\n >span >i {\r\n margin-left: 15px;\r\n width: 13px;\r\n height: 10px;\r\n top: 40%;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleLink = styled(Link)`\r\n text-decoration: none;\r\n display: block;\r\n`;\r\n\r\nconst StyleInnerBlockL = styled.div`\r\n width: 100%;\r\n height: 100px;\r\n`;\r\n\r\n\r\nclass FoodAndDrink extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n bottomHeight: 350,\r\n };\r\n }\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n getSummary(name) {\r\n const {\r\n allNodes,\r\n } = this.props;\r\n let selectList = [];\r\n const foodNodeId = allNodes.childNode && allNodes.childNode.filter(\r\n data => data.childNode.filter(\r\n x => x.childNode.filter(\r\n y => {\r\n \r\n if(y.pageTitle === name)\r\n {\r\n return selectList.push(y);\r\n }\r\n }\r\n )\r\n )\r\n );\r\n if (selectList.length) {\r\n return selectList[0].nodeId\r\n }\r\n }\r\n componentWillUnmount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`] || (state && !nodeData[state.route])) return null;\r\n // if (!nodeData[pathname] && (!state || !nodeData[state.route])) return null;\r\n const responseData = nodeData[`/${mainpPath[2]}`].datas || nodeData[state.route].datas;\r\n return (\r\n
\r\n \r\n
\r\n {\r\n responseData.map((val, index) => (\r\n \r\n
\r\n
{val.title}
\r\n
\r\n {val.html}\r\n
\r\n
\r\n \r\n \r\n {index % 2 ? (\r\n \r\n \r\n \r\n \r\n \r\n {val.summary}\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n // food\r\n \r\n \r\n \r\n \r\n \r\n {val.summary}\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n ))}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n menuData: state.Content.menuData,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(FoodAndDrink);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport * as indexAction from '../actions/index.js';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport iconSteak from '../static/icon01.svg';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\n\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width:1400px) {\r\n height: 550px;\r\n }\r\n @media (max-width:1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n box-shadow: none;\r\n height: 550px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleSubTitleRed = styled(Link)`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n width: fit-content;\r\n color: ${props => props.isClick ? '#be2f37': '#5d5d5d'};\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n display: block;\r\n align-items: center;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .3rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .5rem;\r\n top: 30%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n font-weight: 700;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: .7rem;\r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n >span >i {\r\n width: 18px;\r\n height: 15px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n >span >i {\r\n width: 16px;\r\n height: 12px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 2px;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n >span {\r\n line-height: 1rem;\r\n }\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleSubTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n width: fit-content;\r\n color: #5d5d5d;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n display: block;\r\n align-items: center;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .3rem;\r\n >span {\r\n position: relative;\r\n font-weight: 700;\r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 2px;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n >span {\r\n line-height: 1rem;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleContentFoodList = styled.div`\r\n display: flex;\r\n width: 1160px;\r\n margin: 70px auto;\r\n justify-content: center;\r\n flex-flow: wrap;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 768px) {\r\n justify-content: flex-start;\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleFoodItem = styled.div`\r\n width: 22%;\r\n margin: 0 3% 35px 0;\r\n padding: 25px 0;\r\n >div {\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n } \r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n margin-bottom: 35px;\r\n padding: 0;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 20px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n margin-bottom: .5rem;\r\n font-weight: 700;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 30%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem; \r\n >span >i {\r\n width: 16px;\r\n height: 12px;\r\n top: 30%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.8rem;\r\n line-height: 2rem;\r\n margin-bottom: .5rem;\r\n font-weight: 700;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.7rem;\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.4rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 200px;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 0 auto 50px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 40px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1rem;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0 30px;\r\n } \r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleSeafoodImg = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 414px) {\r\n height: 200px;\r\n }\r\n`;\r\n\r\n\r\nclass Food extends PureComponent {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n\r\n componentDidUpdate(preprops) {\r\n const {\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n nodeData,\r\n langData,\r\n getFoodDetailData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if(!state) {\r\n if(nodeData[`/${mainpPath[2]}`]){\r\n if(!getFoodDetailData[langData.type]) {\r\n this.fetchFoodDetailData(); \r\n }\r\n } \r\n } else { \r\n if(nodeData[`/${mainpPath[2]}`]){\r\n if(!getFoodDetailData[langData.type]) {\r\n this.fetchFoodDetailData(); \r\n }\r\n } \r\n }\r\n }\r\n\r\n fetchFoodDetailData() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n nodeData,\r\n getFoodDetail,\r\n langData,\r\n getFoodDetailData,\r\n } = this.props;\r\n let selectList = [];\r\n const mainpPath = pathname.split(\"/\");\r\n const responseData = nodeData[`/${mainpPath[2]}`] && nodeData[`/${mainpPath[2]}`].datas;\r\n responseData && responseData.filter(\r\n val => {\r\n if(val.datas.length) {\r\n return val.datas.filter(\r\n x => {\r\n if(x.datas) {\r\n return x.datas.filter(\r\n y => {\r\n if(y.url)\r\n {\r\n return selectList.push(y);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n ) \r\n } \r\n }\r\n );\r\n getFoodDetail(selectList, langData.type);\r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n menuData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n if(!Datas.length) return null;\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n const promotions = menuData.find(val => val.route === '/promotions');\r\n const responseData = Datas.filter(val => val.isDynamicArea === false);\r\n const dynamicData = Datas.filter(val => val.isDynamicArea === true);\r\n const steaksArticleData = responseData[0].datas.filter(val => val.isArticle === true);\r\n const steaksData = responseData[0].datas.filter(val => val.isArticle === false);\r\n const appetizersArticleData = responseData[2].datas.filter(val => val.isArticle === true);\r\n const appetizersData = responseData[2].datas.filter(val => val.isArticle === false);\r\n return (\r\n
\r\n
\r\n
\r\n {responseData[0].title &&
{responseData[0].title}
}\r\n {responseData[0].summary &&
{responseData[0].summary}
}\r\n
\r\n\r\n {steaksData[0] &&
\r\n
\r\n {steaksData[0].url && }\r\n
\r\n
\r\n
\r\n {steaksData[1].datas.length && steaksData[1].datas.map(val => (\r\n
\r\n {val.url ? \r\n \r\n \r\n {val.url ? \r\n \r\n : null}\r\n :\r\n \r\n \r\n \r\n }\r\n
{val.summary}
\r\n
))}\r\n
\r\n
\r\n {steaksData[0].datas.length && steaksData[0].datas.map(val => (\r\n
\r\n {val.url ? \r\n \r\n \r\n {val.url ? \r\n \r\n : null}\r\n :\r\n \r\n \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n {steaksData[1].url && }\r\n
\r\n
}\r\n\r\n {steaksData[2] && steaksData[2].datas.length && \r\n {steaksData[2].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
}\r\n\r\n {steaksData[2] && steaksData[2].url && }\r\n\r\n {steaksArticleData.map(data => (\r\n
\r\n {data.datas.length ? \r\n \r\n \r\n
{data.title}
\r\n
\r\n
: null}\r\n \r\n {data.datas.length ? data.datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n )) :null}\r\n
\r\n
))}\r\n \r\n {/* {responseData[0].datas[4] && responseData[0].datas[4].title &&\r\n \r\n \r\n \r\n
{responseData[0].datas[4].title}
\r\n
\r\n
}\r\n\r\n {responseData[0].datas[4] && \r\n {responseData[0].datas[4].datas.length ? responseData[0].datas[4].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}>\r\n {val.title}\r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {val.title}\r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n )) : null}\r\n
} */}\r\n\r\n {/* PERFECTLY PRIME */}\r\n {steaksData[3] && \r\n
\r\n \"icon\"/\r\n {steaksData[3].title &&
\r\n
{steaksData[3].title}
\r\n
}\r\n {steaksData[3].summary &&
{steaksData[3].summary}
}\r\n {steaksData[3].html && {steaksData[3].html}}\r\n
}\r\n {/* SEAFOOD & SPECIALITIES */}\r\n {responseData[1] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
\r\n {responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas.length && responseData[1].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
}\r\n {responseData[1].datas[0] && responseData[1].datas[0].url && }\r\n
}\r\n \r\n {/* APPETIZERS & SIDES */}\r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
\r\n {responseData[2].url && }\r\n {appetizersArticleData.map(data => (\r\n
\r\n {data.title && \r\n \r\n \r\n
{data.title}
\r\n
\r\n
}\r\n \r\n {data.datas.length && data.datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {val.summary &&
{val.summary}
}\r\n
\r\n ))}\r\n
\r\n
))}\r\n {/* \r\n \r\n \r\n
{responseData[2].datas[1].title}
\r\n
\r\n
\r\n \r\n {responseData[2].datas[1].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}>\r\n {val.title}\r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {val.title}\r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
*/}\r\n {appetizersData[0] && appetizersData[0].url && }\r\n
}\r\n\r\n {/* SOUPS & SALADS */}\r\n {responseData[3] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{responseData[3].title}
\r\n
{responseData[3].summary}
\r\n
\r\n \r\n \r\n {responseData[3].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n {/* {val.title} */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n {/* {val.title} */}\r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
\r\n
}\r\n\r\n {/* DESSERTS */}\r\n {responseData[4] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[4].title &&
{responseData[4].title}
}\r\n {responseData[4].summary &&
{responseData[4].summary}
}\r\n
\r\n {responseData[4].url && }\r\n \r\n {responseData[4].datas[0].datas.map(val => (\r\n \r\n {val.url ? \r\n \r\n {/* to={val.url ? {pathname: `${val.route}`, state: {...val}} : null}> */}\r\n \r\n \r\n {val.url ? : null}\r\n \r\n : \r\n \r\n }\r\n
{val.summary}
\r\n
\r\n ))}\r\n
\r\n
}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n {/* to={list.url ? {pathname: `${list.route}`, state: {...list}} : null}> */}\r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n\r\n {/* SPECIALTY DIETS */}\r\n {/* {responseData[5] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[5].title &&
{responseData[5].title}
}\r\n {responseData[5].summary &&
{responseData[5].summary}
}\r\n {responseData[5].datas[0] &&
\r\n {responseData[5].datas[0].title && {responseData[5].datas[0].title}}\r\n
}\r\n
\r\n {responseData[5].html &&
\r\n
{responseData[5].html}
\r\n
}\r\n
} */}\r\n {/* MORE */}\r\n {responseData[5] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[5].summary &&
{responseData[5].summary}
}\r\n {responseData[5].html &&
\r\n {responseData[5].html && {responseData[5].html}}\r\n
}\r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n menuData: state.Content.menuData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n getFoodDetailData: state.Content.getFoodDetailData,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Food);\r\n","import React, { Component } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport BarCocktailsLeft from '../static/Bar_Cocktails-left.jpg';\r\nimport BarCocktailsRight from '../static/Bar_Cocktails-right.jpg';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\nimport wineRed from '../static/wine-red.svg';\r\n\r\n\r\nconst StyleContentBg = styled.div`\r\n width: 100%;\r\n min-height: 500px;\r\n background: url('${BarCocktailsLeft}') 0 3em no-repeat,\r\n url('${BarCocktailsRight}') 100% 3em no-repeat;\r\n background-size: 20em 30em,20em 30em;\r\n display: flex;\r\n align-items: center;\r\n @media (max-width: 1023px) {\r\n background: none;\r\n min-height: auto;\r\n }\r\n`;\r\n\r\nconst StyleContent = styled.div`\r\n display: flex;\r\n width: 1160px;\r\n margin: 90px auto 130px;\r\n justify-content: space-between;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n flex-direction: column;\r\n margin: 70px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 0 auto 50px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleLeft = styled.div`\r\n width: 46%;\r\n display: flex;\r\n flex-direction: column;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n box-shadow: none;\r\n height: 530px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 450px;\r\n }\r\n`;\r\n\r\nconst StyleImgRight = styled.div`\r\n width: 100%;\r\n height: 730px;\r\n background-image: url('${props => props.src}'); // rositaFeatured\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1366px) {\r\n height: 550px;\r\n }\r\n @media (max-width: 1280px) {\r\n height: 500px;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n height: 530px;\r\n box-shadow: none;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n }\r\n`;\r\n\r\nconst StyleRight = styled.div`\r\n width: 46%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst StyleTextItalic = styled.div`\r\n font-style: italic;\r\n font-weight: 400;\r\n font-size: 1.2rem;\r\n @media (max-width: 768px) {\r\n padding-bottom: 2px;\r\n font-size: 1rem;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: .8rem;\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n text-transform: uppercase;\r\n padding: .1rem 0 .4rem;\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n padding: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 600px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 550px;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleDessertContent = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 35px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleDessertItem = styled.div`\r\n width: 25%;\r\n padding: 25px;\r\n margin-top: 35px;\r\n color: #5d5d5d;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n padding: 0;\r\n }\r\n @media (max-width: 768px) {\r\n margin-top: 25px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1rem;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 4rem 0 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 4rem 0 30px;\r\n } \r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleImgRedWine = styled.div`\r\n width: 80%;\r\n height: 25vw;\r\n margin: 0 auto;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n`;\r\n\r\nconst StyleRedWineItem = styled.div`\r\n margin: 15px 0;\r\n color: #5d5d5d;\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleRedWineTextInner = styled.div`\r\n font-weight: 600;\r\n font-size: 1.3rem;\r\n @media (max-width: 1023px) {\r\n font-size: 1rem;\r\n font-weight: 500;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: .9rem;\r\n line-height: 1rem;\r\n }\r\n`;\r\n\r\nconst StyleWineOpenImg = styled.div`\r\n width: 100%;\r\n height: 820px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-position: center;\r\n margin: 0 auto;\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleRightDown = styled.div`\r\n width: 100%;\r\n`;\r\n\r\nconst StyleWhiteWineImg = styled.div`\r\n width: 100%;\r\n height: 720px;\r\n background-image: url('${props => props.src}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n height: 450px;\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleWineEnd = styled.div`\r\n width: 100%;\r\n height: 600px;\r\n margin-top: -50px; \r\n background-image: url('${props => props.src}'); // wineEnd\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1400px) {\r\n height: 480px;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n height: 200px;\r\n }\r\n`;\r\n\r\nconst StyleImgChampagne = styled.div`\r\n width: 80%;\r\n height: 25vw;\r\n margin: 0 auto;\r\n background-image: url('${props => props.src}'); // champagneBottle\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSparklingItem = styled.div`\r\n width: 25%;\r\n padding: 25px;\r\n margin-top: 35px;\r\n color: #5d5d5d;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n padding: 0;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 80%;\r\n margin: 0 auto;\r\n @media (max-width: 1400px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nclass Drinks extends Component {\r\n componentWillMount() {\r\n const {\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n fetchNodeData,\r\n nodeData,\r\n allNodes,\r\n } = this.props;\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n state,\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n if(!Datas.length) return null;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {responseData[0].html &&
{responseData[0].html}
}\r\n {responseData[0].summary &&
{responseData[0].summary}
}\r\n
\r\n
\r\n\r\n\r\n {/* // 雞尾酒 */} \r\n {responseData[0].datas[0] && responseData[0].datas[0].title && \r\n \r\n \r\n \r\n
{responseData[0].datas[0].title}
\r\n
\r\n
}\r\n {responseData[0].datas[1] &&
\r\n
\r\n {responseData[0].datas[1].url && }\r\n
\r\n
\r\n
\r\n {responseData[0].datas[2].datas.length && responseData[0].datas[2].datas.map(val => \r\n
\r\n {val.title &&
{val.title}
}\r\n {val.summary &&
{val.summary}
}\r\n {val.html &&
{val.html}
}\r\n
\r\n )}\r\n
\r\n
\r\n {responseData[0].datas[1].datas.length && responseData[0].datas[1].datas.map(val => \r\n
\r\n {val.title &&
{val.title}
}\r\n {val.summary &&
{val.summary}
}\r\n {val.html &&
{val.html}
}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {responseData[0].datas[2].url && \r\n } \r\n
\r\n
}\r\n\r\n\r\n\r\n {responseData[0].datas[3] && responseData[0].datas[3].datas.length && \r\n {responseData[0].datas[3].datas.map(data => (\r\n \r\n
{data.title}
\r\n {data.summary}\r\n
{data.html}
\r\n
\r\n ))}\r\n
}\r\n\r\n {responseData[0].datas[3] && responseData[0].datas[3].url && }\r\n\r\n {/* 使用IsDynamicArea變數儲存節點管理是否顯示設定 */} \r\n {responseData[0].datas[4].isDynamicArea && responseData[0].datas[4] && responseData[0].datas[4].title && \r\n \r\n \r\n
{responseData[0].datas[4].title}
\r\n
\r\n
}\r\n\r\n {responseData[0].datas[4].isDynamicArea && responseData[0].datas[4] && responseData[0].datas[4].datas.length && \r\n {responseData[0].datas[4].datas.map(data => (\r\n \r\n
{data.title}
\r\n {data.summary}\r\n
{data.html}
\r\n
\r\n ))}\r\n
}\r\n\r\n {responseData[0].datas[5] &&
\r\n \"icon\"/\r\n {responseData[0].datas[5].title &&
\r\n
{responseData[0].datas[5].title}
\r\n
}\r\n {responseData[0].datas[5].summary &&
{responseData[0].datas[5].summary}
}\r\n
}\r\n\r\n {/* 紅酒 */}\r\n {responseData[1] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
\r\n {responseData[1].url && }\r\n\r\n {responseData[1].datas[2] && responseData[1].datas[2].title && }\r\n\r\n {responseData[1].datas[0] && responseData[1].datas[0].title && \r\n \r\n \r\n
{responseData[1].datas[0].title}
\r\n
\r\n
}\r\n \r\n {responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas[1] && responseData[1].datas[0].datas[1].datas.length &&\r\n \r\n {responseData[1].datas[0].datas[1].datas.map(data => (\r\n \r\n {data.title &&
{data.title}
}\r\n {data.summary && {data.summary}}\r\n {data.html && {data.html}}\r\n
\r\n ))}\r\n
}\r\n\r\n
\r\n\r\n \r\n {responseData[1].datas[0].datas[0] && responseData[1].datas[0].datas[0].url &&\r\n }\r\n
\r\n\r\n {responseData[1].datas[0].datas[2] && responseData[1].datas[0].datas[2].datas.length && \r\n \r\n {responseData[1].datas[0].datas[2].datas.map(data => (\r\n \r\n {data.title &&
{data.title}
}\r\n {data.summary && {data.summary}}\r\n {data.html && {data.html}}\r\n
\r\n ))}\r\n
}\r\n \r\n }\r\n\r\n {responseData[1].datas[1] &&
\r\n \"icon\"/\r\n {responseData[1].datas[1].title &&
\r\n
{responseData[1].datas[1].title}
\r\n
}\r\n {responseData[1].datas[1].summary &&
{responseData[1].datas[1].summary}
}\r\n
}\r\n
}\r\n\r\n {/* // 白酒 */} \r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
\r\n {responseData[2].url && }\r\n \r\n \r\n \r\n \r\n
{responseData[2].datas[0].title}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {responseData[2].datas[0].datas[2] && responseData[2].datas[0].datas[2].datas.map(data =>(\r\n \r\n {data.title}\r\n {data.summary}\r\n {data.html}\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n {responseData[2].datas[0].datas[1] && responseData[2].datas[0].datas[1].datas.map(data =>(\r\n \r\n {data.title}\r\n {data.summary}\r\n {data.html}\r\n \r\n ))}\r\n \r\n \r\n \r\n
}\r\n\r\n {/* // 氣泡酒 */} \r\n {responseData[3] &&
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {responseData[3].html &&
{responseData[3].html}
}\r\n {responseData[3].summary &&
{responseData[3].summary}
}\r\n
\r\n {responseData[3].url && }\r\n {responseData[3].datas[1] &&
\r\n {responseData[3].datas[1].title && {responseData[3].datas[1].title}}\r\n
}\r\n \r\n \r\n \r\n
{responseData[3].datas[0].title}
\r\n
\r\n
\r\n
\r\n {responseData[3].datas[0].datas.length && responseData[3].datas[0].datas.map(val => \r\n \r\n {val.title}\r\n {val.summary}\r\n {val.html}\r\n \r\n )}\r\n
\r\n
}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.html &&
{val.html}
}\r\n {val.summary &&
{val.summary}
}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas.length ? data.datas.map(list => (\r\n \r\n {list.title ? {list.title} : null}\r\n {list.summary ? {list.summary} : null}\r\n {list.html ? {list.html} : null}\r\n \r\n )) : null}\r\n \r\n
)) : null}\r\n
\r\n )) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(Drinks);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport dots from '../static/dots.png';\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport drinkPromo from '../static/drink_promo.jpg';\r\nimport wineRed from '../static/wine-red.svg';\r\n\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1em;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0px 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0px 30px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleLunchImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleContentLunchList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 50px auto 0;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleLunchItem = styled.div`\r\n width: 22%;\r\n margin: 1% 1.5% 4%;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleLunchItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1.2rem;\r\n line-height: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 50px auto;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 80%;\r\n margin: 0 auto;\r\n @media (max-width: 1400px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n letter-spacing: -1px;\r\n margin-bottom: .5rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 20%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n font-size: 1.5rem;\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 25%;\r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n top: 15%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\nclass Lunch extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n const AppetizersData = responseData[1].datas.filter(val => val.isArticle === true);\r\n const BurgersData = responseData[2].datas.filter(val => val.isArticle === true);\r\n const EntreesData = responseData[3].datas.filter(val => val.isArticle === true);\r\n return (\r\n
\r\n {responseData[0] &&
\r\n
{responseData[0].summary}
\r\n
{responseData[0].title}
\r\n
{responseData[0].html}
\r\n
}\r\n {responseData[0] && responseData[0].datas[0].datas.length && responseData[0].datas[0].datas.map( data => (\r\n
\r\n
{data.title}
\r\n
{data.summary}
\r\n
\r\n ))}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {responseData[1] &&
\r\n {responseData[1].title &&
{responseData[1].title}
}\r\n {responseData[1].summary &&
{responseData[1].summary}
}\r\n
}\r\n\r\n {responseData[1].url && }\r\n \r\n {/* {responseData[1] && responseData[1].datas[0] && \r\n {responseData[1].datas[0].datas.length && responseData[1].datas[0].datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
} */}\r\n {AppetizersData.map(val =>(
\r\n {(val.title && val.title !== \"chart\") && \r\n \r\n \r\n
{val.title}
\r\n
\r\n
}\r\n\r\n {val.datas && \r\n {val.datas.length && val.datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
}\r\n
))}\r\n \r\n
\r\n \"icon\"/\r\n {responseData[1].datas[2].title &&
\r\n
{responseData[1].datas[2].title}
\r\n
}\r\n {responseData[1].datas[2].summary &&
{responseData[1].datas[2].summary}
}\r\n {/*
*/}\r\n {responseData[1].datas[2].html}\r\n {/*
*/}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {responseData[2] &&
\r\n {responseData[2].title &&
{responseData[2].title}
}\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n
}\r\n\r\n {responseData[2].url && }\r\n\r\n {BurgersData.map(val => (\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title && {data.title}}\r\n {data.summary &&
{data.summary}
}\r\n
\r\n ))}\r\n
\r\n ))}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
{responseData[3].title}
\r\n
{responseData[3].summary}
\r\n
\r\n\r\n {responseData[3].url && }\r\n\r\n {EntreesData.map(val => (\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title && {data.title}}\r\n {data.summary &&
{data.summary}
}\r\n
\r\n ))}\r\n
\r\n ))}\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n {/* to={list.url ? {pathname: `${list.route}`, state: {...list}} : null}> */}\r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n \r\n
\r\n
{responseData[3].datas[2].summary}
\r\n
\r\n
{responseData[3].datas[2].html}
\r\n
\r\n\r\n {/* MORE */}\r\n {responseData[4] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[4].summary &&
{responseData[4].summary}
}\r\n {responseData[4].html &&
\r\n {responseData[4].html && {responseData[4].html}}\r\n
}\r\n
\r\n
}\r\n
\r\n );\r\n }\r\n }\r\n \r\n const reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n \r\n export default compose(\r\n withRouter,\r\n reduxHook,\r\n )(Lunch);","import React, { PureComponent } from 'react';\r\nimport styled from 'styled-components';\r\n// import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n compose,\r\n bindActionCreators,\r\n} from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../actions/index.js';\r\n\r\nimport iconFleur from '../static/fleur-gray.svg';\r\nimport dividerCenter from '../static/divider-center.png';\r\nimport dividerLeft from '../static/divider-left.png';\r\nimport dividerRight from '../static/divider-right.png';\r\nimport dots from '../static/dots.png';\r\n\r\n\r\n\r\nconst StyleHappyHourImg = styled.div`\r\n width: 80%;\r\n height: 550px;\r\n margin: 0 auto;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n width: 90%;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleHappyHourImgFull = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1023px) {\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleDividingLine = styled.div`\r\n width: 1160px;\r\n margin: 50px auto;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 35px auto;\r\n }\r\n`;\r\n\r\nconst StyleDividingText = styled.div`\r\n width: 100%;\r\n background: url('${dividerLeft}') 0 .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerRight}') 100% .5rem/1.9375rem .375rem no-repeat,\r\n url('${dividerCenter}') 0 .5rem/.0625rem .375rem repeat-x;\r\n background-position: 0 .75rem,100% .75rem,0 .75rem;\r\n background-size: 4rem .75rem,4rem .75rem,.0625rem .75rem;\r\n @media (max-width: 768px) {\r\n background: url('${dividerLeft}') 0 .5em/2.5em .6em no-repeat,\r\n url('${dividerRight}') 100% .5em/2.5em .6em no-repeat,\r\n url('${dividerCenter}') 0 .5em/1em .6em repeat-x;\r\n }\r\n`;\r\n\r\nconst StyleIconFleur = styled.div`\r\n width: 35px;\r\n height: 38px;\r\n margin-bottom: 10px;\r\n background-image: url('${iconFleur}');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n @media (max-width: 414px) {\r\n width: 25px;\r\n height: 26px;\r\n }\r\n`;\r\n\r\nconst StyleContentLunchList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 50px auto 0;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleLunchItem = styled.div`\r\n width: ${props => props.length > 3 ? \"20%\" : \"28%\"};\r\n margin: 1% 2.5% 4%;\r\n color: #5d5d5d;\r\n text-align: center;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin-bottom: 15px;\r\n }\r\n`;\r\n\r\nconst StyleLunchItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-align: center; \r\n text-transform: uppercase;\r\n text-decoration: none;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleHappyHourItemTitle = styled.div`\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n letter-spacing: -1px;\r\n font-size: 1.8rem;\r\n line-height: 1.8rem;\r\n display: block;\r\n color: #5d5d5d;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n margin-bottom: 0;\r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1.2rem;\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nconst StyleImg = styled.div`\r\n width: 100%;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 100%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 768px) {\r\n height: 350px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n }\r\n`;\r\n\r\nconst StyleSwirlItem = styled.div`\r\n margin: 0 0 30px;\r\n color: #5d5d5d;\r\n @media (max-width: 414px) {\r\n margin: 0 0 15px;\r\n }\r\n`;\r\n\r\nconst StyleDividingType = styled.div`\r\n height: 1em;\r\n background: url('${dots}') 50% 0 repeat-x;\r\n background-size: 30px 4px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 3rem 0px 4.5rem;\r\n @media (max-width: 414px) {\r\n margin: 2rem 0px 30px;\r\n }\r\n`;\r\n\r\nconst StyleIconFleurWep = styled.div`\r\n width: 60px;\r\n height: 35px;\r\n background-color: #f3f2eb;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n top: -1em;\r\n`;\r\n\r\nconst StyleContentImg = styled.div`\r\n width: 1160px;\r\n height: 550px;\r\n margin: 0 auto 120px;\r\n background-image: url('${props => props.imgUrl}');\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n background-size: cover;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n margin: 0 auto 70px;\r\n }\r\n @media (max-width: 414px) {\r\n margin: 0 auto 35px;\r\n height: 350px;\r\n }\r\n`;\r\n\r\nconst StyleContentSpecialtyList = styled.div`\r\n display: flex;\r\n flex-flow: wrap;\r\n justify-content: center;\r\n width: 1160px;\r\n margin: 0 auto 40px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n`;\r\n\r\nconst StyleSpecialtytItem = styled.div`\r\n width: 22%;\r\n margin: 1% 3% 4% 0;\r\n padding: 25px 0;\r\n color: #5d5d5d;\r\n color: #868686;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n text-align: start;\r\n margin: 0 0 35px;\r\n }\r\n @media (max-width: 768px) {\r\n margin: 0 0 20px;\r\n padding: 0px;\r\n }\r\n @media (max-width: 414px) {\r\n margin-bottom: 10px;\r\n }\r\n`;\r\n\r\nconst StyleTextTitleLink = styled(Link)`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n letter-spacing: -1px;\r\n margin-bottom: .5rem;\r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n position: absolute;\r\n transition: left .5s;\r\n left: .7rem;\r\n top: 20%;\r\n transform: translate(-50%, -50%) rotate(-90deg);\r\n }\r\n >span {\r\n position: relative;\r\n }\r\n &:hover {\r\n >span >i {\r\n left: 1rem; \r\n }\r\n }\r\n @media (max-width: 1366px) {\r\n font-size: 1.5rem;\r\n >span >i {\r\n width: 18px;\r\n height: 14px;\r\n top: 25%;\r\n }\r\n }\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 768px) {\r\n font-size: 1.5rem; \r\n >span >i {\r\n width: 20px;\r\n height: 16px;\r\n top: 15%;\r\n }\r\n }\r\n @media (max-width: 414px) {\r\n letter-spacing: 0;\r\n font-size: 1rem;\r\n margin-bottom: 2px;\r\n >span >i {\r\n width: 12px;\r\n height: 10px;\r\n }\r\n }\r\n`;\r\n\r\nconst StyleTextTitle = styled.div`\r\n display: block;\r\n color: #be2f37;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n margin-bottom: .5rem;\r\n @media (max-width: 1280px) {\r\n font-size: 1.3rem;\r\n }\r\n @media (max-width: 1023px) {\r\n text-align: start; \r\n }\r\n @media (max-width: 414px) {\r\n font-size: 1rem;\r\n line-height: 1.2rem;\r\n margin-bottom: 2px;\r\n }\r\n`;\r\n\r\nclass HappyHour extends PureComponent {\r\n componentWillMount() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera \r\n }\r\n render() {\r\n const {\r\n nodeData,\r\n location: {\r\n pathname,\r\n },\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n if (!nodeData[`/${mainpPath[2]}`]) return null;\r\n const Datas = nodeData[`/${mainpPath[2]}`].datas;\r\n const responseData = Datas.filter(val => val.title !== 'Dynamic Area');\r\n const dynamicData = Datas.filter(val => val.title === 'Dynamic Area');\r\n const FoodData = responseData[0].datas[0].datas.filter(val => val.isArticle === true);\r\n return (\r\n
\r\n
\r\n
{responseData[0].summary}
\r\n
\r\n
\r\n
{responseData[0].html}
\r\n
\r\n\r\n {/* food */}\r\n {responseData[0] && responseData[0].datas[0] &&
\r\n {responseData[0].datas[0].title &&
{responseData[0].datas[0].title}
}\r\n {responseData[0].datas[0].summary &&
{responseData[0].datas[0].summary}
}\r\n
}\r\n\r\n \r\n\r\n {FoodData.map(val =>(\r\n
\r\n \r\n \r\n \r\n
{val.title}
\r\n
\r\n
\r\n\r\n \r\n {val.datas.map(data => (\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n
))}\r\n\r\n {responseData[0].datas[0].datas[1].url && \r\n }\r\n\r\n {/* drink */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{responseData[1].datas[0].title}
\r\n
{responseData[1].datas[0].summary}
\r\n
\r\n\r\n
\r\n
\r\n \r\n {responseData[1].datas[1].datas[0].datas.map(data =>(\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n {responseData[1].datas[2].datas[0].datas.map(data =>(\r\n \r\n {data.title}\r\n
{data.summary}
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* Dynamic Area */}\r\n {dynamicData.length ? dynamicData.map(val => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {val.title ?
{val.title}
: null}\r\n {val.summary ?
{val.summary}
: null}\r\n
\r\n {val.url ? : null}\r\n {val.datas.length ? val.datas.map(data => (\r\n
\r\n \r\n \r\n \r\n
{data.title}
\r\n
\r\n
\r\n \r\n {data.datas ? data.datas.map(list => (\r\n \r\n {list.url ? \r\n \r\n \r\n \r\n {list.url ? : null}\r\n \r\n : \r\n \r\n }\r\n {list.summary ?
{list.summary}
: null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
)) : null}\r\n
\r\n )) : null}\r\n\r\n
\r\n
{responseData[1].datas[3].summary}
\r\n
\r\n
{responseData[1].datas[3].html}
\r\n
\r\n\r\n {/* MORE */}\r\n {responseData[2] &&
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {responseData[2].summary &&
{responseData[2].summary}
}\r\n {responseData[2].html &&
\r\n {responseData[2].html && {responseData[2].html}}\r\n
}\r\n
\r\n
}\r\n\r\n
\r\n );\r\n }\r\n }\r\n \r\n const reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n );\r\n \r\n export default compose(\r\n withRouter,\r\n reduxHook,\r\n )(HappyHour);","// @flow\r\n\r\nimport React, { PureComponent, Fragment } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: ${props => props.isFullWidth ? '100%' : '48%'};\r\n position: relative;\r\n @media (max-width: 1023px) {\r\n width: 100%;\r\n}\r\n`;\r\nconst StyleErrorMsg = styled.div`\r\n position: absolute;\r\n color: red;\r\n font-size: 12px;\r\n left: 0;\r\n bottom: 0;\r\n`\r\n\r\nexport const regexCheck = (name, value) => {\r\n switch (name) {\r\n case 'name':\r\n if (!value || value.match(/\\d/)) {\r\n return '姓名格式錯誤';\r\n }\r\n return '';\r\n\r\n case 'phone':\r\n if (!value.match(/\\(?([0-9]{4})\\)?([ .-]?)([0-9]{3})\\2([0-9]{3})/)) {\r\n return '電話格式錯誤';\r\n }\r\n return '';\r\n\r\n case 'email':\r\n if (!value.match(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/)) {\r\n return '信箱格式錯誤';\r\n }\r\n return '';\r\n\r\n // case 'date':\r\n // if (!value.match(/^(0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])[\\/\\-]\\d{4}$/)) {\r\n // return '日期格式錯誤(mm/dd/yyyy)';\r\n // }\r\n // return '';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nclass TextInput extends PureComponent {\r\n state = {\r\n errorMsg: '',\r\n }\r\n \r\n render() {\r\n const {\r\n input: {\r\n onChange,\r\n value,\r\n },\r\n placeholder,\r\n isFullWidth,\r\n regex,\r\n setHintMsg,\r\n hintMsg,\r\n type,\r\n changeType,\r\n FocusType,\r\n BlurType,\r\n } = this.props;\r\n const {\r\n errorMsg,\r\n } = this.state;\r\n \r\n return (\r\n \r\n aaa()}\r\n onBlur={() => {\r\n if (regex) {\r\n const msg = regexCheck(regex, value);\r\n setHintMsg(regex, msg);\r\n this.setState({ errorMsg: msg});\r\n };\r\n if(BlurType){\r\n if(!value){BlurType();};\r\n };\r\n }}\r\n onChange={(e) => {\r\n onChange(e);\r\n if(changeType){changeType();}\r\n // if (regex && (hintMsg || errorMsg)) {\r\n // const msg = regexCheck(regex, e.target.value);\r\n // setHintMsg(regex, msg);\r\n // this.setState({ errorMsg: msg });\r\n // }\r\n }} \r\n onFocus={(e) => {\r\n if(FocusType){FocusType();}\r\n }} \r\n />\r\n {hintMsg || errorMsg}\r\n \r\n );\r\n }\r\n}\r\n \r\n \r\nexport default TextInput;\r\n ","// @flow\r\n\r\nimport React, { PureComponent } from 'react';\r\n\r\nclass Textarea extends PureComponent { \r\n render() {\r\n const {\r\n input: {\r\n value,\r\n onChange,\r\n },\r\n placeholder,\r\n } = this.props;\r\n \r\n return (\r\n onChange(e)} />\r\n );\r\n }\r\n }\r\n \r\n \r\n export default Textarea;\r\n ","import React, { PureComponent } from 'react';\r\n\r\nclass Radioinput extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMan: true,\r\n sex: 'Male', \r\n };\r\n }\r\n componentDidUpdate() {\r\n const {\r\n reset,\r\n } = this.props;\r\n \r\n if(reset) {\r\n this.setState({\r\n isMan: true,\r\n });\r\n }\r\n }\r\n\r\n getValue(val) {\r\n this.setState({\r\n isMan: val,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n input: {\r\n onChange,\r\n },\r\n placeholder,\r\n } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n

{placeholder[1].title}

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

{placeholder[2].title}

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

{data.title}

\r\n

{data.summary}

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

{data.title}

\r\n

{data.summary}

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

{responseData.summary}

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

{data.title}

\r\n

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

\r\n

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

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

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

\r\n :\r\n

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

{foodDetailData.question}

}\r\n
\r\n {foodDetailData.answer &&
{foodDetailData.answer}
}\r\n
}\r\n
\r\n
\r\n
{langData.previous}
\r\n {/* */}\r\n {Previous && \r\n this.goTop()} \r\n to={{ pathname: `/${langData.type}/${mainpPath[2]}${Previous.url}`, state: {...Previous} }}>\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
{langData.next}
\r\n {/* */}\r\n {next && \r\n this.goTop()} \r\n to={{ pathname: `/${langData.type}/${mainpPath[2]}${next.url}`, state: {...next} }}> \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst reduxHook = connect(\r\n state => ({\r\n nodeData: state.Content.nodeData,\r\n getFoodDetailData: state.Content.getFoodDetailData,\r\n allNodes: state.Content.allNodes,\r\n langData: state.Content.lang,\r\n foodDetailHtmlData: state.Content.foodDetailHtmlData,\r\n detailListNum: state.Content.detailListNum,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...IndexAction,\r\n }, dispatch),\r\n);\r\n\r\nexport default compose(\r\n withRouter,\r\n reduxHook,\r\n)(FoodMenu1);","import React, { PureComponent } from 'react';\r\nimport 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 { 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 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 { withRouter } from 'react-router';\r\nimport Logo from './../static/ruthschris_global_logo.png';\r\nimport userCircleWhite from './../static/user-circle-white.png';\r\nimport HeaderTop from './HeaderTop.jsx';\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\nclass NavList 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 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 render() {\r\n const {\r\n location: {\r\n pathname,\r\n },\r\n history,\r\n menuData,\r\n langData,\r\n footerData,\r\n allNodes,\r\n match,\r\n } = this.props;\r\n\r\n const {\r\n menuVisible,\r\n } = this.state;\r\n if (!menuData && !footerData) return null;\r\n const reservations = menuData.find(val => val.route === '/reservations');\r\n const onlinebooking = menuData.find(val => val.route === '/online-booking');\r\n const member = footerData.find(val => val.route === '/member');\r\n let excludeRoute = '/reservations';\r\n let hasonlinebooking = false;\r\n if (onlinebooking){\r\n hasonlinebooking = true;\r\n excludeRoute = '/online-booking';\r\n };\r\n //console.log('navlist.js - APPCONFIG.langurage', APPCONFIG.langurage);\r\n //console.log('navlist.js - langData', langData);\r\n \r\n return (\r\n
\r\n
\r\n
\r\n {\r\n if (menuVisible)\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}}>\r\n Logo\r\n \r\n
\r\n {menuData.map(val =>val.route !== excludeRoute ? (\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
1 ? \"nav-change-lang\" : \"display-none\"}>\r\n {APPCONFIG.langurage.filter(x => x.type !== langData.type).map(data => (\r\n \r\n {\r\n this.setLang(data);\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}}\r\n >\r\n {APPCONFIG.langurage.find(x => x.type !== langData.type).name}\r\n \r\n
\r\n ))}\r\n
\r\n {\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}}>\r\n \"member\"\r\n \r\n
\r\n { hasonlinebooking ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n\r\n { hasonlinebooking ?\r\n {\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}}>\r\n {langData.onlinebookingName}\r\n \r\n :\r\n {\r\n this.setState({\r\n menuVisible: !menuVisible,\r\n })}}>\r\n {langData.bookingName}\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
\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 footerData: state.Content.footerData,\r\n allNodes: state.Content.allNodes,\r\n foodDetailUrl: state.Content.foodDetailUrl,\r\n getFoodDetailData: state.Content.getFoodDetailData,\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)(NavList);","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 { 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 Slider from \"react-slick\";\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\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// const StyleBanner = styled.div`\r\n// position: relative;\r\n// width: 100%;\r\n// `;\r\n\r\nconst StyleBannerImg = styled.img`\r\n width: 100%;\r\n`;\r\n\r\n\r\nclass Header extends Component {\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\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 match: {\r\n params: {\r\n mainId,\r\n subId,\r\n } \r\n },\r\n match,\r\n nodeData,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n location,\r\n getFoodDetailData,\r\n foodDetailUrl,\r\n langData,\r\n } = this.props;\r\n const mainpPath = pathname.split(\"/\");\r\n // if (!`/${mainpPath[2]}`) return null;\r\n \r\n let responseData = nodeData[`/${mainpPath[2]}`];\r\n if (mainpPath[0] === '' && !mainpPath[2]) {\r\n responseData = nodeData[`/${langData.type}`];\r\n }\r\n if (mainId && !subId) {\r\n responseData = nodeData[`/${mainpPath[2]}`] && nodeData[`/${mainpPath[2]}`].datas.find(val => val.nodeId === `${mainId}`);\r\n }\r\n // if ((state && (state.route === \"/food-detail\")) || (pathname === `/food${foodDetailUrl}` && pathname !== \"/food\")) {\r\n if (mainId && subId) {\r\n // responseData = getFoodDetailData.length && getFoodDetailData.find(val => val.url === (foodDetailUrl || state.url));\r\n responseData = getFoodDetailData[langData.type] && getFoodDetailData[langData.type].length && getFoodDetailData[langData.type].find(val => val.url === `/${mainId}/${subId}`);\r\n }\r\n if (!responseData) return null;\r\n return (\r\n responseData.route !== '/online-booking' ?\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 :\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 langData: state.Content.lang,\r\n getFoodDetailData: state.Content.getFoodDetailData,\r\n foodDetailUrl: state.Content.foodDetailUrl,\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)(Header);","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 from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport footerBorder from '../../static/footer-border.png';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withRouter } from 'react-router';\r\nimport * as indexAction from '../../actions/index.js';\r\n\r\nimport fleurGray from '../../static/fleur-gray.svg';\r\nimport fb from '../../static/fb.svg';\r\nimport IG from '../../static/IG.svg';\r\nimport { compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\n\r\nconst StyleWarpper = styled.div`\r\n width: 100%;\r\n font-family: 'Trade Gothic',\"Microsoft JhengHei\",\"微軟正黑體\";\r\n color: #f3f3eb;\r\n background-color: #5a5a5a;\r\n position: relative;\r\n padding: 30px 0;\r\n`;\r\n\r\nconst StyleFooterBorder = styled.div`\r\n display: flex;\r\n width: 100%;\r\n height: 3.125rem;\r\n top: -1.5625rem;\r\n left: 0;\r\n position: absolute;\r\n background-size: 390px 100%;\r\n background: url('${footerBorder}') 50% 0 no-repeat;\r\n z-index: 1;\r\n @media (max-width: 414px) {\r\n width: 90%;\r\n height: 25px;\r\n top: -24px;\r\n left: 50%;\r\n transform: translate(-50%, 0);\r\n background-size: cover;\r\n }\r\n`;\r\n\r\nconst StyleStoreWarp = styled.div`\r\n width: 1160px;\r\n display: flex;\r\n margin: 30px auto 20px;\r\n @media (max-width: 1366px) {\r\n width: 90%;\r\n }\r\n @media (max-width: 1023px) {\r\n flex-wrap: wrap;\r\n justify-content: space-around;\r\n }\r\n`;\r\n\r\nconst StyleStore = styled.div`\r\n width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: .9rem;\r\n letter-spacing: 1px;\r\n > div {\r\n font-weight: 600;\r\n text-align: center;\r\n width: fit-content;\r\n margin: 0 auto 10px;\r\n } \r\n > div > p {\r\n word-break: break-all;\r\n text-align: start;\r\n }\r\n > div > p >a {\r\n color: #f3f3eb;\r\n }\r\n @media (max-width: 1023px) {\r\n width: 45%;\r\n }\r\n @media (max-width: 414px) {\r\n width: 100%;\r\n > div > p {\r\n letter-spacing: 0px;\r\n }\r\n }\r\n`;\r\n\r\nclass Footer extends PureComponent {\r\n // componentDidUpdate(preprops) {\r\n // const {\r\n // location: {\r\n // state,\r\n // pathname,\r\n // },\r\n // allNodes,\r\n // fetchNodeData,\r\n // nodeData,\r\n // langData,\r\n // menuData,\r\n // footerData,\r\n // } = this.props;\r\n // const mainpPath = pathname.split(\"/\");\r\n // if(!state) {\r\n // if(!nodeData['/reservations'] && allNodes.childNode) {\r\n // // const reservations = allNodes.childNode[0].childNode.find(val => val.route === '/reservations');\r\n // if((pathname === `/${langData.type}` || pathname === `/${langData.type}/`)) {\r\n // if(preprops.footerData !== footerData) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!allNodes.childNode) return null;\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // if(!thisNodeData) return null;\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // } \r\n // } \r\n // } else {\r\n // if(preprops.footerData !== footerData) {\r\n // if(!nodeData[`/${mainpPath[2]}`]) {\r\n // if(!allNodes.childNode) return null;\r\n // const thisNodeData = allNodes.childNode[0].childNode.find(val => val.route === `/${mainpPath[2]}`);\r\n // console.log('111',preprops);\r\n // fetchNodeData(`/${thisNodeData.nodeId}`, thisNodeData.route);\r\n // } \r\n // } \r\n // }\r\n // }\r\n // } else { \r\n // if(menuData.length) {\r\n // const reservations = menuData.find(val => val.route === '/reservations');\r\n // if(!reservations) return null;\r\n // if(!nodeData['/reservations']) { \r\n // fetchNodeData(reservations.url, reservations.route);\r\n // }\r\n // }\r\n // } \r\n // }\r\n\r\n render() {\r\n const {\r\n footerData,\r\n langData,\r\n nodeData,\r\n location: {\r\n pathname,\r\n state,\r\n },\r\n } = this.props;\r\n\r\n const storeData = nodeData[\"/reservations\"] && nodeData[\"/reservations\"].datas;\r\n const mainpPath = pathname.split(\"/\");\r\n \r\n return (\r\n \r\n \r\n fleurGray\r\n
\r\n {footerData.map(val => ( val.route !== '/careers' ? \r\n (val.route !== '/member' ?\r\n \r\n {val.title}\r\n \r\n : \r\n {val.title} \r\n )\r\n : \r\n {val.title} \r\n \r\n ))}\r\n
\r\n
\r\n {langData.fb && fb}\r\n {langData.ig && IG}\r\n
\r\n \r\n {storeData && storeData.map(val => (\r\n \r\n
{val.title}
\r\n
\r\n

T : {val.html}

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

E : {val.subHtml}

\r\n :\r\n

\r\n }\r\n {/* starWhite2 */}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst reduxHook = connect(\r\n state => ({\r\n langData: state.Content.lang,\r\n nodeData: state.Content.nodeData,\r\n footerData: state.Content.footerData,\r\n menuData: state.Content.menuData,\r\n footerStore: state.Content.footerStore,\r\n allNodes: state.Content.allNodes,\r\n }),\r\n dispatch => bindActionCreators({\r\n ...indexAction,\r\n }, dispatch),\r\n);\r\n\r\nexport default compose(\r\n reduxHook,\r\n withRouter,\r\n)(Footer);","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