{"version":3,"sources":["Lib/variables.js","Lib/utils.js","Lib/axios.js","Pages/Home/Section/renew/popupModal.js","theme.js","Components/User/Mate/reserve.js","Components/Common/input.js","Components/Common/button.js","Components/modal.js","Pages/Home/Section/reserve.js","Pages/Home/Section/renew/MainNumber.js","Pages/Home/Section/renew/main.js","Pages/Home/Section/renew/video.js","Pages/Home/Section/renew/guide.js","Pages/Home/Section/renew/banner.js","Pages/Home/home.styled.js","Pages/Home/Section/renew/siteBanner.js","Pages/Home/Section/renew/numberCount.js","Pages/Home/Section/partners.js","Pages/Home/home.js","Lib/Api/app.js","Lib/Api/auth.js","Lib/middleware.js","Reducer/Modules/app.js","Reducer/Modules/auth.js","Pages/Home/home.container.js","Pages/NotFound.js","Pages/Auth/AuthPages/Login/login.styled.js","Components/Common/tab.js","Components/Common/text.js","Components/Common/container.js","Lib/regex.js","Components/Reserve/step.js","Components/Reserve/editStep.js","Components/newModal.js","Pages/Auth/AuthPages/Login/KakaoLogin.js","Pages/Auth/AuthPages/Login/login.js","Pages/Auth/AuthPages/Login/login.container.js","Pages/Auth/AuthPages/MainRegister/main.js","Pages/Auth/AuthPages/MainRegister/main.styled.js","Pages/Auth/AuthPages/MainRegister/main.container.js","Pages/Auth/AuthPages/Register/register.styled.js","Pages/Policy/Terms/terms.styled.js","Pages/Policy/Terms/terms.js","Pages/Policy/Terms/terms.container.js","Pages/Policy/Privacy/privacy.styled.js","Pages/Policy/Privacy/privacy.js","Pages/Policy/Privacy/privacy.container.js","Pages/Policy/Marketing/marketing.styled.js","Pages/Policy/Marketing/marketing.js","Pages/Policy/Marketing/marketing.container.js","Pages/Policy/Essential/Normal/normal.styled.js","Pages/Policy/Essential/Normal/normal.js","Pages/Policy/Essential/Normal/normal.container.js","Pages/Policy/Essential/Sensitive/sensitive.styled.js","Pages/Policy/Essential/Sensitive/sensitive.js","Pages/Policy/Essential/Sensitive/sensitive.container.js","Pages/Policy/Selective/Normal/normal.styled.js","Pages/Policy/Selective/Normal/normal.js","Pages/Policy/Selective/Normal/normal.container.js","Pages/Policy/Selective/Sensitive/sensitive.styled.js","Pages/Policy/Selective/Sensitive/sensitive.js","Pages/Policy/Selective/Sensitive/sensitive.container.js","Pages/Policy/Advertisement/advertisement.styled.js","Pages/Policy/Advertisement/advertisement.js","Pages/Policy/Advertisement/advertisement.container.js","Pages/Auth/AuthPages/Register/register.js","Pages/Auth/AuthPages/Register/register.container.js","Pages/Auth/AuthPages/Logout/index.js","Pages/Auth/AuthPages/Find/find.styled.js","Pages/Auth/AuthPages/Find/find.js","Pages/Auth/AuthPages/Find/find.container.js","Pages/Auth/AuthPages/Mate/mate.styled.js","Components/User/Mate/auth.js","Pages/Auth/AuthPages/Mate/mate.js","Pages/Auth/AuthPages/Mate/mate.container.js","Pages/Auth/AuthPages/Normal/normal.styled.js","Components/User/Normal/auth.js","Components/User/Normal/statistics.js","Components/User/Normal/navi.js","Pages/Auth/AuthPages/Profile/profile.styled.js","Pages/Guide/guide.styled.js","Pages/Auth/AuthPages/Profile/profile.js","Pages/Auth/AuthPages/Card/card.styled.js","Pages/Auth/AuthPages/Card/card.js","Pages/Auth/AuthPages/Card/cardInfoCheck.js","Pages/Auth/AuthPages/Profile/profileInfoCheck.js","Components/Columns/normal.js","Pages/Auth/AuthPages/Normal/normal.js","Pages/Auth/AuthPages/Normal/normal.container.js","Pages/Auth/AuthPages/Pending/pending.styled.js","Pages/Auth/AuthPages/Pending/pending.js","Pages/Auth/AuthPages/Pending/pending.container.js","Pages/Auth/auth.js","Pages/Auth/auth.styled.js","Pages/Auth/auth.container.js","Pages/Company/company.styled.js","Pages/Company/Section/fst.js","Pages/Company/Section/snd.js","Pages/Company/Section/trd.js","Pages/Company/Section/fth.js","Pages/Company/Section/fifth.js","Pages/Company/Section/sth.js","Pages/Company/company.js","Pages/Company/company.container.js","Pages/Faq/faq.styled.js","Pages/Faq/faq.js","Pages/Faq/faq.container.js","Pages/Product/ProductPages/Buy/buy.styled.js","Pages/Product/ProductPages/Buy/buy.js","Pages/Product/ProductPages/Buy/buy.container.js","Pages/Product/product.js","Pages/Product/product.container.js","Pages/Reserve/reserve.styled.js","Pages/Apply/Ready/ready.styled.js","Pages/LongtermCare/longTermCare.js","Pages/Success/success.js","Pages/Manual/Service/servicePDF.js","Pages/Manual/Service/service.js","Pages/Manual/Platform/platformPDF.js","Pages/Manual/Platform/platform.js","Pages/Manual/MateEduVideo/VideoList/Video1.js","Pages/Manual/MateEduVideo/VideoList/Video2.js","Pages/Manual/MateEduVideo/VideoList/Video3.js","Pages/Manual/MateEduVideo/VideoList/Video4.js","Pages/Manual/MateEduVideo/eduVideo.js","Pages/NewsEvent/List/list.styled.js","Pages/Review/List/list.styled.js","Components/Columns/user.js","Pages/NewsEvent/List/list.js","Lib/Api/newsEvent.js","Reducer/Modules/newsEvent.js","Pages/NewsEvent/List/list.container.js","Pages/NewsEvent/Info/info.styled.js","Components/Common/block.js","Pages/NewsEvent/Info/info.js","Pages/NewsEvent/Info/info.container.js","Pages/NewsEvent/index.js","Reducer/Modules/review.js","Lib/Api/review.js","Pages/Review/Add/add.styled.js","Components/Templates/Review/header.js","Pages/Review/Add/add.js","Pages/Review/Add/add.container.js","Pages/Review/List/list.js","Pages/Review/List/list.container.js","Pages/Review/MyList/mylist.styled.js","Pages/Review/MyList/mylist.js","Pages/Review/MyList/mylist.container.js","Pages/Apply/Ready/ready.js","Pages/Apply/Form/form.styled.js","Pages/Apply/Form/form.js","Pages/Apply/MateApplyForm/mateApply.styled.js","Pages/Apply/MateApplyForm/mateApply.js","Pages/Guide/Section/nav.js","Pages/Guide/Section/concept.js","Pages/Guide/Section/detail.js","Pages/Guide/Section/usage.js","Pages/Guide/Section/merit.js","Pages/Guide/Section/withmate.js","Pages/Guide/Section/banner.js","Pages/Guide/guide.js","Pages/Guide/guide.container.js","Pages/Nemt/nemt.styled.js","Pages/Nemt/nemt.js","Pages/Nemt/nemt.container.js","Pages/Reserve/patientListModal.js","Pages/Reserve/mateListModal.js","Pages/Reserve/cardListModal.js","Pages/Reserve/reserve.js","Pages/MetLife/MetLifeLanding/Section/reserve.js","Pages/MetLife/MetLifeLanding/Section/renew/main.js","Pages/MetLife/MetLifeLanding/Section/renew/guide.js","Pages/MetLife/MetLifeLanding/home.styled.js","Pages/MetLife/MetLifeLanding/Section/renew/numberCount.js","Pages/MetLife/MetLifeLanding/Section/partners.js","Pages/MetLife/MetLifeLanding/home.js","Pages/MetLife/MetLifeLanding/home.container.js","Pages/MetLife/MetLifeGuide/guide.styled.js","Pages/MetLife/MetLifeGuide/Section/nav.js","Pages/MetLife/MetLifeGuide/Section/concept.js","Pages/MetLife/MetLifeGuide/Section/detail.js","Pages/MetLife/MetLifeGuide/Section/usage.js","Pages/MetLife/MetLifeGuide/Section/merit.js","Pages/MetLife/MetLifeGuide/Section/withmate.js","Pages/MetLife/MetLifeGuide/Section/banner.js","Pages/MetLife/MetLifeGuide/guide.js","Pages/MetLife/MetLifeGuide/guide.container.js","Pages/MetLife/Review/review.styled.js","Pages/MetLife/Review/review.js","Pages/MetLife/Review/review.container.js","Pages/MetLife/NewsEvent/List/list.styled.js","Pages/MetLife/NewsEvent/List/list.js","Pages/MetLife/NewsEvent/List/list.container.js","Pages/MetLife/NewsEvent/Info/info.styled.js","Pages/MetLife/NewsEvent/Info/info.js","Pages/MetLife/NewsEvent/Info/info.container.js","Pages/MetLife/NewsEvent/index.js","Pages/MetLife/Faq/faq.styled.js","Pages/MetLife/Faq/faq.js","Pages/MetLife/Faq/faq.container.js","Pages/MetLife/MetLifePolicy/Privacy/privacy.styled.js","Pages/MetLife/MetLifePolicy/Privacy/privacy.js","Pages/MetLife/MetLifePolicy/Privacy/privacy.container.js","Pages/MetLife/MetLifePolicy/Terms/terms.styled.js","Pages/MetLife/MetLifePolicy/Terms/terms.js","Pages/MetLife/MetLifePolicy/Terms/terms.container.js","Pages/Big5Department/department.js","Components/Templates/Nav/nav.js","Components/Templates/Nav/nav.styled.js","Components/Templates/Nav/nav.container.js","Components/Templates/MetLifeNav/nav.js","Components/Templates/MetLifeNav/nav.styled.js","Components/Templates/MetLifeNav/nav.container.js","Components/Templates/Footer/footer.js","Components/Templates/Footer/footer.styled.js","Components/Templates/Footer/footer.container.js","App.js","serviceWorker.js","Reducer/index.js","index.js","Pages/Home/Section/renew/img/alimtalk_error_popup.png","Pages/Home/Section/renew/img/new-gov-care.png","Pages/Auth/AuthPages/Login/o2.png","Pages/Auth/AuthPages/Login/o.png","Pages/Success/login_bg.png","Pages/Success/checkpoint.png","Styles/index.js","Styles sync //.scss$"],"names":["USER","MATE","LOCAL","KAKAO","ASSIST","UNEMER","ScrollTop","prevProps","this","props","location","window","scrollTo","children","React","PureComponent","withRouter","currencyFormatter","currency","reg","n","test","replace","combineDateAndTime","date","time","minute","length","moment","format","toDate","colorParserByStatus","status","axios","defaults","withCredentials","client","create","headers","post","paramsSerializer","params","qs","stringify","indices","baseURL","interceptors","request","use","config","error","Promise","reject","response","localStorage","clear","reload","ModalInner2","styled","div","ImgStyle","CloseStyle","Close","span","ModalWrapper","visible","ModalOverlay","ModalInner","fontSize","memo","className","onClose","maskClosable","closable","VISITED_BEFORE_DATE","getItem","VISITED_NOW_DATE","Math","floor","Date","getDate","useEffect","removeItem","onClick","e","target","currentTarget","tabIndex","src","img","style","width","height","alt","expiryDate","setItem","paddingLeft","paddingRight","sizeHandler","size","ColorPallete","blue50","blue100","green100","dark100","dark80","dark70","dark60","dark50","dark30","dark20","dark10","NoCatchedList","list","detailHandler","onRefresh","data","FullContainer","Inner","NoCatchTitle","RefreshButton","ListConatiner","Array","isArray","map","item","serviceType","productInfo","usePro","useBasic","service","serviceName","name","key","_id","toString","patient","reserveDate","destination","shortStarting","call","onDetail","ReserveItem","usageTime","ItemContainer","TitleSection","ItemColumn","ItemTitle","ItemContents","color","ContentSection","DetailButton","EmptyList","p","hiddenMobile","DivisionLine","big","x_small","small","BorderDivisionLine","Pallete","WithmateLabelText","WithmateLabel","required","rest","WithmateInput","InputTextButton","WithamteInputWithButton","withValue","inputConfig","buttonName","onButton","BorderFlexWrapper","WithmateTextarea","TextArea","middle","WithmateSelect","FlexWrapper","withHalf","StyledHotFix","WithmateDatePicker","WithmateValue","WithmateValueTip","FullWidthButton","a","border","bg","HalfWidthButton","RadiusFullWidthButton","RadiusHalfWidthButton","ButtonWrapper","half","MateReserveInfoModal","visibleHandler","info","onCatch","Container","ModalBlock","ModalTitle","ModalCloseButtons","ModalLabel","ModalInfo","transport","proPrice","basicPrice","WhiteButton","ModalFlexbox","sex","marginBottom","comment","MateCallStatusModal","onNext","starting","contact","type","getNextStatus","BlueButton","ShareCarRequestModal","inputHandler","onSave","ModalLargeBlock","FlexBox","placeholder","value","corp","onChange","ev","address","manager","FlexFullBox","message","EmergencyCorpSearchModal","keyword","TableWrapper","TableHeaderWrapper","FlexColumn","filter","addr1","includes","addr2","index","TableRowWrapper","EmptyTable","CardModal","state","modal","componentDidMount","modalValidation","lastTime","JSON","parse","subtract","setState","onCloseToday","id","Top","Title","Bottom","display","justifyContent","paddingTop","marginTop","MessageRow","history","push","EndBottom","CloseToday","CloseNow","ManagerModal","pathname","EventModal","NoticeModal","onCloseToday2","ContentRow","textAlign","MetlifeModal","MetlifePopup","BottomImage","WarningRow","WarningContentRow","Reserve","reserveModal","reserveInfo","refreshing","fetchList","debounce","mateId","get","then","resolve","catch","onCatchCall","auth","warning","put","callId","result","success","SpinWrapper","MainNumber","SwiperCore","Navigation","Pagination","Autoplay","UserMain","UserMainContainer","UserMainInnerContainer","TitleSticker","WithmateSpecRow","GooglePlayButton","open","marginRight","BottomSection","ReserveButton","CallButton","swal","fire","title","text","icon","confirmButtonText","cancelButtonText","showCancelButton","isConfirmed","document","href","HighLight","ButtonCommon","GPButtonCommon","br","UserVideoSection","VideoSectionContainer","VideoSectionInnerContainer","VideoArea","controls","loop","autoplay","muted","playsinline","h4","UserGuideSection","UserGuideContainer","UserGuideInnerContainer","UserGuideTitle","UserGuideStepWrapper","TextStep","ImgStep","MainStepRow","webArrow","mArrow","source","description","num","MainStep","MainStepWrapper","MainStepImageSection","MainStepTextSection","StepIndex","StepTitle","StepDescription","split","word","KeepBr","UserMainBanner","goPage","BannerContainer","Description","LinkButton","HomeStyledContainer","UserMainTitleDeco","PartnerContainer","PartnerInnerContainer","PartnerTitle","PartnerListRow","PartnerItem","IntroduceSection","MobileBr","Withmate","UserNumberCount","RollingContainer","NumberLabel","faHospitalUser","end","suffix","fontWeight","faUsers","faRectangleList","SatisfactionContainer","SatisfactionLabel","ReviewContainer","direction","spaceBetween","slidesPerView","breakpoints","768","pagination","clickable","navigation","modules","allowTouchMove","threshold","delay","speed","ReviewMainContainer","ReviewMainInnerContainer","alignItems","margin","borderRadius","label","WithmatePartners","baseUrl","fstRow","sndRow","trdRow","fthRow","ftfRow","paddingBottom","HomePage","searchModal","emergencyList","emergencyKeyword","requestModal","requestInfo","onShareRequest","userType","prevState","modifyUserInfo","photo","imageUpload","file","formData","FormData","append","register","termsOfUse","privacyPolicy","essentialGeneral","essentialSensitive","selectiveGeneral","selectiveSensitive","selectiveAdvertise","password","code","identify","reason","marketing","connection","recommenderName","longtermCare","birth","email","urlSource","search","addPatient","relate","age","environment","caution","addCard","userName","cardName","cardNum","year","month","getCardInfo","cardId","fetchCard","deleteCard","modifyCard","getMateInfo","fetchMate","getPatientInfo","patientId","fetchPatient","deletePatient","modifyPatient","checkAuth","onAddLongTermCare","userId","createReduxThunk","SUCCESS","FAILURE","dispatch","refreshToken","decoded","jwt","decode","authAPI","accessToken","payload","meta","console","log","getUserInfo","appAPI","getServiceInfo","buyTicket","serviceReserve","getReserveList","getReserveInfo","page","reserveId","getContractPartners","acceptCall","cancelCall","completeCall","modifyReserve","cancelReserve","editViewType","createAction","input","editResrveForm","editContractForm","editBuyForm","editUserForm","editReserveDetailView","editReserveLatestView","editCallPage","appReducer","handleActions","action","produce","draft","loading","addTime","payMethod","_","isEmpty","l","count","userInfo","serviceInfo","reserveForm","report","reserve","unemergency","assist","contractForm","buyForm","mateCallPage","mateCallList","reserveList","mateReserveList","mateViewType","mateReserveLatest","mateReserveDetail","payHistory","partners","contractServices","login","logout","checkUserId","findPassword","modifyPassword","newPassword","withdrawlUser","withdrawlKakao","confirmEmailAuth","verificationCode","editAuth","editLoginForm","editRegisterForm","editAddPatientForm","editAddCardForm","editFindPasswordForm","editPasswordForm","initialState","allowed","ticket","loginForm","registerForm","agree","longTermCare","longTermCareInfo","patientList","patientInfo","addPatientForm","cardList","cardInfo","addCardForm","findForm","passwordForm","reNewPassword","infoForm","mateInfo","authReducer","region","gradePresence","gradeLevel","HomeContainer","prevList","fetchPartners","connect","app","editForm","editLatest","editDetail","NotFoundPage","padding","verticalAlign","LoginStyledContainer","TabContainer","Tab","active","H1","h1","bold","h2","h3","h5","h6","isNotNumber","celluarValidate","phone","result2","lang","weekdays","weekdaysShort","EditStep1","inputDeepHandler","setDestination","setStarting","onTab","tab","deepType","onSex","disabled","undefined","Option","reserveHotFix","some","r","parseFloat","nativeEvent","preventDefault","fix","EditStep2","onModify","sick","onCalendar","meetDate","locale","inputReadOnly","disabledDate","current","add","holidayKR","isSolarHoliday","meetTime","numValue","meetMinute","usingPoint","RelativeWrapper","SigleButtonWrapper","SigleButton","AlertMessage","customStyles","overlay","backgroundColor","zIndex","content","boxShadow","top","left","right","bottom","CustomModal","addEventListener","onCheckSize","body","overflow","componentWillUnmount","removeEventListener","windowWidth","innerWidth","windowHeight","innerHeight","innerContent","getElementById","childrenId","clientHeight","maxWidth","isOpen","onAfterOpen","CommonWithmateModal","onCancel","onOk","ModalInnerContainer","noClose","CloseButton","CommonModalTitle","CommonModalSubtitle","wordBreak","cancelText","confirmText","NoramlReserveEditModal","step","NewHandleReportModal","WideModalTitle","AlertText","care","medicine","nextSchedule","mateComment","doctorComment","NoReportModal","ReportMoal","timeline","selectedServiceName","ReportInfoBlock","createdAt","ReportDescription","complete","diff","receipt","mode","Item","start","arrived","careStart","careDone","treatmentStart","treatmentDone","careStart_second","careDone_second","treatmentStart_second","treatmentDone_second","careStart_third","careDone_third","treatmentStart_third","treatmentDone_third","backStart","onlyMobile","withSub","Kakao","KakaoLogin","onEdit","checkUser","gender","modalTitle","modalInfo","loginWithKakao","that","Auth","scope","setAccessToken","access_token","API","url","kakao_account","fail","viewToShow","ButtonWrap","ButtonWrap2","Component","Styled","KakaoLoginImg","KakaoLoginImgM","LoginComponent","onPressEnter","LoginPage","goBack","MainComponent","MainRegisterStyledContainer","MainRegisterPage","RegisterStyledContainer","TermsStyledContainer","component","TermsComponent","TermsContainer","isComponent","PrivacyStyledContainer","PrivacyComponent","PrivacyContainer","MarketingStyledContainer","MarketingComponent","class","MarketingContainer","NromalStyledContainer","EssentialComponent","NormalContainer","SensitiveComponent","SensitiveContainer","NormalComponent","SensitiveStyledContainer","AdvertisementStyledContainer","AdvertisementComponent","AdvertisementContainer","RegisterComponent","createdAuthCode","authCodeCheck","vaildated","handleCheckAllChange","checkAll","onSendMailHandler","event","alert","onCheckHandler","notification","pageOneValidator","pageSndValidator","onRegister","repassword","validator","isEmail","setPhoto","originFileObj","formCompleteStatus","valid","Agree","checked","AgreeLinkText","cursor","maxLength","marginLeft","borderColor","outline","Alert","RegisterPage","LogoutPage","StyledFindContainer","Find","editFindForm","onFind","setTimeout","FindPage","StyledMateContainer","UserPhoto","GuideRowWrapper","GuideRowWrapper2","GuideContainer","GuideDescriptionSectionTitle","GuideDescriptionSection","GuideDescriptionSectionContent","StudyButton","InputFilter","keywordHandler","FilterWrapper","CalleList","onRow","reserveCode","Mate","reservedFilter","onRowModal","rowDetail","handleReportModal","callList","syncStep","componentDidUpdate","match","d","reportId","noReportModal","updateBasicInfo","newPhoto","modify","editPassword","withdrawl","temp","tabHandler","onNextProcess","startOf","valueOf","unemergencyService","doReceipt","doStart","doArrive","doCare","doCareDone","doBackStart","doComplete","openReportForm","assistService","err","onAddReport","filteredList","toLowerCase","m","hidden","accept","files","click","URL","createObjectURL","doProducts","link","footer","flex","GuideBlock","GuideBlock2","Filter","MatePage","StyledNormalContainer","PointBoxRow","PointBox","PointBox2","PointBox3","PointContent","PointBoxTitle","PointTotal","PointHistoryRow","PointHistoryNameRow","PointHistoryValueRow","NoHistory","ReserveList","onDetailModal","onMateModal","onReport","onMate","mate","confirm","UserStatistics","pro","basic","UserContainer","UserNavigation","onPatientModal","NaviWrapper","ProfileStyledContainer","StyledContainer","GuideNavContainer","InnerContainer","GuideNavWrapper","NavTab","GuideConceptContainer","GuideConceptTitle","DesktopBr","MeritContainer","MeritHeaderWrapper","MeritCardList","MeritCardWrapper","MeritCardNumber","MeritCardTitleRow","MeritCardDesc","GuideDetailContainer","GuideDetailServiceCardWrapper","GuideDetailServiceCard","GuideCardImage","GuideCardSpecTitle","GuideCardSpecRow","GuideCardName","GuideCardType","GuideCardDescription","GuideDetailSubFlexWrapper","GuideDetailSubFlexbox","GuideUsingContainer","GuideUsingSubFlexWrapper","GuideUsageFlexbox","WithmateContainer","FlexDivWrapper","HiddenType","mHidden","BigSideBox","SmallSideBox","WithmateBg","WithmateTitle","position","background","WebkitOverflowScrolling","NewProfileComponent","onStarting","daum","Postcode","oncomplete","sido","sigungu","bname","roadAddress","buildingName","onProfile","ariaHideApp","trim","CardStyledContainer","onCard","YMWrapper","ModifyProfileComponent","stopPropagation","patientColumn","onDelete","dataIndex","align","render","EditOutlined","DeleteOutlined","cardColumn","slice","NormalUser","paidFilter","kakaoModal","selected","cancelModal","modifyModal","detailModalPage","reserveDetailModal","mateModal","serviceStatus","serviceModal","addHalfTime","totalPro","totalBasic","pointUsingHistory","pointAddHistory","couponAddHistory","patientModal","patientModifyModal","cardModal","cardModifyModal","appointedCode","patientModalOff","patientModifyModalOff","cardModalOff","cardModifyModalOff","fetchUserInfo","reserves","actionType","callStatus","onRematch","warn","confirmReserve","onViewReport","onReportMoal","onPatientModifyModal","onCardModal","onCardModifyModal","row","html","onFetchPatientInfo","onPatientModify","onPatientDelete","onCardModify","onCardDelete","kakaoUnlink","onAddCoupon","couponName","couponValue","handleChange","dataSource","columns","pageSize","Password","point","addedAt","leftValue","usedAt","CouponInput","review","starCount","score","renderStarIcon","onStarClick","NormalPage","StyledPendingContainer","Pending","PendingPage","dsipatch","AuthPage","exact","path","Login","Logout","Register","Main","Normal","NotFound","AuthStyledContainer","AuthPages","StyledCompanyContainer","FstBlock","SndBlock","TrdBlock","FthBlock","data-aos","data-aos-anchor-placement","data-aos-duration","CoCompany","StyledCoCompany","SthSection","Company","CompanyPage","StyledFaqContainer","Panel","FAQ","hash","to","scroll","el","scrollIntoView","behavior","block","expandIconPosition","bordered","expandIcon","isActive","rotate","header","rowIndex","PanelHeader","PanelContent","FAQContainer","StyledBuyContainer","BuyTicket","edit","payment","defaultPrice","totalPrice","IMP","init","request_pay","pg","pay_method","merchant_uid","amount","buyer_email","buyer_name","buyer_tel","m_redirect_url","rsp","productCode","paid_amount","productId","merchantUid","impUid","imp_uid","unit","paidStatus","paid","card_name","bankName","bank_name","cardQuota","card_quota","buyerEmail","discount","min","max","val","formatter","BuyTicketPage","ProductRenderPages","Buy","ProductPages","ReservePageContainer","ResrevePageInnerContainer","smallPadding","mobileBg","mobieBg","ReserveTopCover","isMain","TopBannerSubDescription","TopBannerSection","TopBannerText","TopBannerDescription","StepSectionContainer","StepButtonWrapper","StepButton","button","UnderLineText","StepArrow","NextStepGudieContainer","useBg","NextStepEmoj","NextStepTitle","NextStepArrowDown","ServiceSectionContainer","ServiceSectionTitle","ServiceSectionDescription","ServiceCardList","ServiceCardWrapper","on","ServiceCardButton","ServiceTypeSectionContainer","gap","ServiceTypeWrapper","ServiceTypeCardWrapper","ServiceTypeCardImg","ServiceTypeName","ServiceTypeDescription","NextStepButton","LastStepButton","FormContainer","FormWrapper","FormMainTitle","FormMainAlert","ServiceName","Sexes","LabelDescription","FlexFormWrapper","ResultFormWrapper","LabelAndValueRow","LabelValue","PriceValue","PriceDetailLabel","PriceDetailValue","DashAndText","CongraturateLogo","DoneResultWrapper","MobileStepImage","TopWrapper","BottomWrapper","MediumText","Noti","ApplyButton","FlexTitle","Contact","ContactTime","Link","LongTermCareComponent","onLongTermCare","SuccessComponent","backgroundImage","Background","Checkpoint","textAlgn","ServicePDF","iFrameHeight","frameBorder","ManualComponent","PlatformPDF","EduVideo1","allow","allowFullScreen","EduVideo2","EduVideo3","EduVideo4","StyledListContainer","HeaderButton","CountDisplay","CollapseContainer","CollapseHeader","CollapseTab","CollapseTabOnlyDesktop","PanelField","onlyDesktop","Star","ReviewTextWrapper","ReviewText","MyReview","ReviewMobileInfo","ReviewerName","newsEvent","Event","rowKey","newsEventList","addNewsEvent","url2","urlSource2","getNewsEventInfo","newsEventId","newsEventAPI","fetchNewsEvent","newsEventInfo","InfoContainer","StyledInfoContainer","InfoBlock","borderBottom","fetchInfo","Label","objectFit","whiteSpace","float","ValueBox","NewsEvent","List","Info","addReview","editReview","reviewId","reviewList","reviewPage","StyledAddContainer","WritePaper","FormHeader","FormTitle","FormSubtitle","FormTypeWrapper","FormTypeBlock","FormTypeDesc","FormDescription","StarImg","FormButtonWrapper","FormButton","FormTitleRowWrapper","FormRowTitle","CheckboxGroup","HeaderContainer","HeaderWrapper","HeaderBlock","HeaderTitle","HeaderDescription","MainImageWrapper","MainImage","CommentPageHeader","desc","AddComment","star","useAgain","corpSatisfied","corpSatisfiedReason","doctorSatisfied","doctorSatisfiedReason","hope","checkReserveValidation","reviewStatus","starHandler","nextValue","prevValue","onAddReview","PaddingDiv","AddCommentPageContainer","getReserve","PerPage","CommentList","total","pageCnt","renderStar","fill","getAutoTitle","rate","user","parseInt","reply","CommentListPage","TableContainer","TableHeader","TableTitle","TableSubTitle","TableBody","TableRow","TableField","desktopOnly","TableButton","EmptyWrapper","EmptyImage","EmptyText","MyReviewList","onReserve","done_list","substr","MyCommentListPage","fetchReserveList","ReadyApplyPage","LargeText","InputWrapper","InputLabel","StyledInput","FormImgWrapper","photoFst","photoSnd","fileFst","fileSnd","photoFstValue","photoSndValue","fileFstValue","fileSndValue","onSpin","MateFormPage","fetchForm","form","sendForm","careCareer","question","_info","MateApplyPage","handleTrimChange","onAddress","editApply","onSendApply","connection_etc","activity_area","drive","care_experience","insurance","privacy","license_photo","image","join","si","GuideNav","activeTab","GuideConcept","GuideDetail","spec1","spec2","spec3","spec4","GuideCard","GuideUsage","Merit","number","MeritCard","Block","bigMargin","noMargin","GuideBanner","GuideBannerContainer","GuidePage","reserveType","mobile_menu","onRoute","popoverVisible","NemtTitleWrapper","NemtTitle","NemtServiceWrapper","NemtServiceFlexWrapper","NemtBox","NemtColumnBox","NemtBoxTitle","NemtServiceImageWrapper","NemtInfobox","NemtDescription","NemtPage","NemtContainer","onCheck","PatientProfileListComponent","onChoose","reservedStarting","walk","onChangeCheckbox","onUpdatePatient","hideOnSinglePage","mateListColumn","sorter","b","localeCompare","photoURL","mateList","getList","onUpdateMate","CardListComponent","onUpdateCard","ReservationPage","big5","local","corpBy","zzz","alzhe","chooseMate","fetchItemList","prevParams","usePoint","onPrevSetting","patientProfileListModal","onPrevSetting2","mateListModal","onPrevSetting3","cardListModal","isOption","onSelectService","isZzz","isAlzhe","reservedDestination","reservedShortStarting","shortDestination","reservedShortDestination","goSecondStep","querySelector","getClientRects","scrollY","goNextButton","onDestination","stepHandler","currentStep","recommender","recommenderContact","guardContact","mateGender","reserveTime","reserveMinute","mateName","installment","totalFee","proDiscount","basicDiscount","product","stepHandler2","prevStep","patientProfileListModalOff","mateListModalOff","cardListModalOff","mateContact","emoj","logo","onSelect","CustomButtonWrapper","BannerSection","StepSection","NextGuider","ServiceSection","mBg","Card","ServiceTypeSection","ServiceTypeCard","BasicForm","MainForm","allowClear","readonly","hour","ConfirmForm","_transport","_service","_point","DoneForm","DepartmentComponent","useState","isChecked","setIsChecked","Set","checkedItems","setCheckedItems","checkedItemHandler","box","has","delete","parentNode","checkHandler","NavComponent","menu","onMobileMenuHandler","activeClassName","NavStyledContainer","NavContainer","FooterComponent","darkMode","indexOf","startsWith","rel","FooterStyledContainer","FooterContainer","Modal","setAppElement","App","AOS","Home","Product","Privacy","Terms","Marketing","EssentialNormal","EssentialSensitive","SelectiveNormal","SelectiveSensitive","Advertisement","MateReady","MateApplyForm_v2","MateApplyForm","ReviewList","ReviewMylist","ReviewAdd","LongTermCare","Success","SManual","PManual","EduVideo","MetLife","MetLifeNemt","MetLifeReviewList","MetLifeNewsEvent","MetLifeFAQ","MetLifePrivacy","MetLifeTerms","Department","Nemt","Boolean","hostname","reducers","combineReducers","store","createStore","applyMiddleware","thunk","ReactDOM","navigator","serviceWorker","ready","registration","unregister","module","exports","req","require","keys","forEach","webpackContext","webpackContextResolve","__webpack_require__","o","Error","Object"],"mappings":"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","file":"static/js/main.4a739e6e.chunk.js","sourcesContent":["export const BASE_URL = 'https://server.withmate.kr';\nexport const DEV = false;\n\n// info\nexport const COMPANY_NANE = 'WITHMATE';\nexport const COMPANY_NANE_EN = 'withmate';\nexport const CONTACT_TEL = '010-xxxx-xxxx';\nexport const CONTACT_EMAIL = 'withmate@mail.com';\nexport const CUSTOMER_SERVICE = 'customer@withmate.com';\nexport const USER = 'user';\nexport const MATE = 'mate';\nexport const LOCAL = 'local';\nexport const KAKAO = 'kakao';\nexport const ASSIST = 'assist';\nexport const UNEMER = 'unemergency';\nexport const HAPPYCARE = 'happycare';\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport moment from 'moment';\nimport { UNEMER } from '../Lib/variables';\n\nclass ScrollTop extends React.PureComponent {\n componentDidUpdate(prevProps) {\n if (this.props.location !== prevProps.location) {\n window.scrollTo(0, 0);\n }\n }\n render() {\n return <>{this.props.children};\n }\n}\nexport default withRouter(ScrollTop);\n\nexport const currencyFormatter = currency => {\n if (currency === 0) return 0;\n\n var reg = /(^[+-]?\\d+)(\\d{3})/;\n var n = currency + '';\n\n while (reg.test(n)) n = n.replace(reg, '$1' + ',' + '$2');\n\n return n;\n};\n\nexport const timeFormatter = ({ hour, minute = '00' }) => {\n const year = moment().format('YYYY').toString();\n const month = moment().format('MM').toString();\n const date = moment().format('DD').toString();\n\n if (hour && hour.length <= 1) hour = '0' + hour;\n if (minute && minute.length <= 1) minute = '0' + minute;\n return year + month + date + ' ' + hour + minute + '00';\n};\n\nexport const datetimeFormatter = ({ date, hour, minute = '00' }) => {\n const year = moment(date).format('YYYY').toString();\n const month = moment(date).format('MM').toString();\n const _date = moment(date).format('DD').toString();\n\n if (hour && hour.length <= 1) hour = '0' + hour;\n if (minute && minute.length <= 1) minute = '0' + minute;\n return year + month + _date + ' ' + hour + minute + '00';\n};\n\nexport const combineDateAndTime = ({ date, time, minute }) => {\n if (time && time.length === 1) time = '0' + time;\n if (minute && minute.length === 1) minute = '0' + minute;\n\n return moment(moment(date).format('YYYYMMDD') + ' ' + time + minute + '00').toDate();\n};\n\nexport const serviceParser = service => {\n switch (service) {\n case 'assist':\n return '병원 동행 Basic';\n case 'unemergency':\n return '병원 동행 Pro';\n case 'happycare':\n return '해피케어';\n }\n};\n\nexport const getNextStatus = (type, status) => {\n if (type === 'unemergency') {\n switch (status) {\n case '예약접수':\n return '';\n case '예약완료':\n return '접선';\n case '접선':\n return '병원 출발';\n case '병원 출발':\n return '병원 도착';\n case '병원 도착':\n return '진료 시작';\n case '진료 시작':\n return '진료 종료';\n case '진료 종료':\n return '귀가 시작';\n case '자택 출발':\n return '서비스 종료';\n case '서비스 종료':\n return '종료된 서비스';\n }\n }\n\n if (type === 'assist') {\n switch (status) {\n case '예약접수':\n return '';\n case '예약완료':\n return '접선';\n case '접선':\n return '진료 시작';\n case '진료 시작':\n return '진료 종료';\n case '진료 종료':\n return '서비스 종료';\n case '서비스 종료':\n return '종료된 서비스';\n }\n }\n\n if (type === 'happycare') {\n switch (status) {\n case '예약완료':\n return '접선';\n case '접선':\n return '진료 시작';\n case '진료 시작':\n return '진료 종료';\n case '진료 종료':\n return '서비스 종료';\n case '서비스 종료':\n return '종료된 서비스';\n }\n }\n};\n\nexport const getTotal = (service, addTime, transport) => {\n if (transport === 'withcar' && service === UNEMER) {\n return getWithcarPrice(addTime);\n } else if (service === UNEMER) {\n return 20000 * addTime + (transport === 'own' ? 20000 : 0);\n } else {\n return 15000 * addTime;\n }\n};\n\nexport const colorParserByStatus = status => {\n switch (status) {\n case '접수대기':\n return '#161616';\n case '예약접수':\n return '#43b30c';\n case '예약완료':\n return '#3bc1ff';\n case '서비스 종료':\n return '#ff5500';\n default:\n return '#606060';\n }\n};\n\nexport const getWithcarPrice = time => {\n switch (time) {\n case 1:\n return 93500;\n case 1.5:\n return 93500 + 93500 / 2;\n case 2:\n return 143000;\n case 2.5:\n return 143000 + 93500 / 2;\n case 3:\n return 181500;\n case 3.5:\n return 181500 + 93500 / 2;\n case 4:\n return 220000;\n case 4.5:\n return 220000 + 93500 / 2;\n case 5:\n return 264000;\n case 5.5:\n return 264000 + 93500 / 2;\n case 6:\n return 308000;\n case 6.5:\n return 308000 + 93500 / 2;\n case 7:\n return 352000;\n case 7.5:\n return 352000 + 93500 / 2;\n case 8:\n return 396000;\n }\n};\n","import axios from 'axios';\nimport qs from 'qs';\nimport { BASE_URL, DEV } from './variables';\naxios.defaults.withCredentials = true;\nconst client = axios.create({\n headers: {\n post: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n // withCredentials: true,\n },\n paramsSerializer: function (params) {\n return qs.stringify(params, { indices: false });\n },\n baseURL: DEV === 'beta' ? `https://beta.server.withmate.kr` : DEV ? '/' : BASE_URL,\n});\n\nclient.interceptors.request.use(\n config => {\n // const token = localStorage.getItem('accessToken');\n // config.headers = {\n // Authorization: `Bearer ${token}`,\n // };\n return config;\n },\n error => {\n return Promise.reject(error);\n },\n);\n// 인터셉터 설정\nclient.interceptors.response.use(\n response => {\n return response;\n },\n error => {\n if (error && error.request && error.request.status === 403) {\n localStorage.clear();\n window.location.reload();\n }\n return error;\n },\n);\n\nexport default client;\n","import React, { useEffect } from 'react'\nimport styled from 'styled-components'\nimport PropTypes from 'prop-types'\nimport img from './img/alimtalk_error_popup.png'\n\nfunction Modal({ className, onClose, maskClosable, closable, visible }) {\n const onMaskClick = (e) => {\n if (e.target === e.currentTarget) {\n onClose(e)\n }\n }\n\n // 이전방문 날짜\n const VISITED_BEFORE_DATE = localStorage.getItem('VisitCookie')\n // 현재 날짜\n const VISITED_NOW_DATE = Math.floor(new Date().getDate())\n\n // console.log(VISITED_BEFORE_DATE)\n // console.log(VISITED_NOW_DATE)\n // localStorage.removeItem('VisitCookie')\n\n useEffect(() => {\n // 팝업 오늘 하루닫기 체크\n if (VISITED_BEFORE_DATE !== null) {\n // 날짜가 같을경우 노출\n if (VISITED_BEFORE_DATE === VISITED_NOW_DATE) {\n localStorage.removeItem('VisitCookie')\n onClose(true)\n }\n // 날짜가 다를경우 비노출\n if (VISITED_BEFORE_DATE !== VISITED_NOW_DATE) {\n onClose(false)\n }\n }\n }, [VISITED_BEFORE_DATE])\n\n // 하루동안 팝업 닫기\n const Dayclose = (e) => {\n if (onClose) {\n onClose(e)\n\n const expiry = new Date()\n // +1일 계산\n const expiryDate = expiry.getDate() + 1\n // 로컬스토리지 저장\n localStorage.setItem('VisitCookie', expiryDate)\n }\n }\n\n const close = (e) => {\n if (onClose) {\n onClose(e)\n }\n }\n\n return (\n
\n \n \n \n \n \n {/* */}\n \"\"\n {/* */}\n \n {closable && (\n \n \n 오늘 하루 닫기\n \n \n 닫기\n \n \n )}\n \n \n \n
\n )\n}\n\nModal.propTypes = {\n visible: PropTypes.bool,\n}\n\nconst ModalInner2 = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst ImgStyle = styled.div`\n width: 130%;\n height: auto;\n`\n\nconst CloseStyle = styled.div`\n display: flex;\n justify-content: space-between;\n background-color: #282828;\n width: 420px;\n padding: 5px;\n border-radius: 0 0 15px 15px;\n color: #ffffff;\n font-size: 13px;\n`\n\nconst Close = styled.span`\n cursor: pointer;\n`\n\nconst ModalWrapper = styled.div`\n box-sizing: border-box;\n display: ${(props) => (props.visible ? 'block' : 'none')};\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n overflow: auto;\n outline: 0;\n @media (max-width: 768px) {\n align-items: center;\n width: 400px;\n height: auto;\n margin: 0 auto;\n }\n`\n\nconst ModalOverlay = styled.div`\n box-sizing: border-box;\n display: ${(props) => (props.visible ? 'block' : 'none')};\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.6);\n z-index: 999;\n`\n\nconst ModalInner = styled.div`\n box-sizing: border-box;\n position: relative;\n // box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);\n // background-color: #fff;\n // border-radius: 10px;\n width: 360px;\n max-width: 480px;\n top: 50%;\n transform: translateY(-50%);\n margin: 0 auto;\n padding: 40px 20px;\n`\n\nexport default React.memo(Modal)","export const gray = ['#f8f9fa', '#f1f3f5', '#e9ecef', '#dee2e6', '#ced4da', '#adb5bd', '#868e96', '#495057', '#343a40', '#212529'];\nexport const cyan = ['#e3fafc', '#c5f6fa', '#99e9f2', '#66d9e8', '#3bc9db', '#22b8cf', '#15aabf', '#1098ad', '#0c8599', '#0b7285'];\nexport const red = ['#fff5f5', '#ffe3e3', '#ffc9c9', '#ffa8a8', '#ff8787', '#ff6b6b', '#fa5252', '#f03e3e', '#e03131', '#c92a2a'];\nexport const yellow = ['#fff9db', '#fff3bf', '#ffec99', '#ffe066', '#ffd43b', '#fcc419', '#fab005', '#f59f00', '#f08c00', '#e67700'];\nexport const blue = ['#e7f5ff', '#d0ebff', '#a5d8ff', '#74c0fc', '#4dabf7', '#339af0', '#228be6', '#1c7ed6', '#1971c2', '#1864ab'];\nexport const grape = ['#f8f0fc', '#f3d9fa', '#eebefa', '#e599f7', '#da77f2', '#cc5de8', '#be4bdb', '#ae3ec9', '#9c36b5', '#862e9c'];\nexport const borderColor = '#e8e8e8';\n\nexport const fontSize = {\n b8: '8px',\n b10: '10px',\n b12: '12px',\n b14: '14px',\n b16: '16px',\n b18: '18px',\n b20: '20px',\n b22: '22px',\n b24: '24px',\n b26: '26px',\n b28: '28px',\n b30: '30px',\n b32: '32px',\n b34: '34px',\n};\n\nexport const sizeHandler = size => {\n return size + 'px';\n};\nexport const mainColor = '#3bc1ff';\nexport const mainBoldColor = '#4dabf7';\nexport const bgDarkColor = '#212529';\n\nconst ColorPallete = {\n blue50: '#3bc1ff',\n blue100: '#4dabf7',\n green100: '#49a938',\n dark100: '#161616',\n dark80: 'rgba(0,0,0,0.8)',\n dark70: 'rgba(0,0,0,0.7)',\n dark60: '#a6a6a6',\n dark50: '#e9e9e9',\n dark30: '#ececec',\n dark20: '#dddddd',\n dark10: '#f5f5f5',\n};\n\nexport default ColorPallete;\n","import React from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport Popup from '../../../Pages/Home/Section/renew/Popup';\n\n// utils\nimport { sizeHandler, mainColor } from '../../../theme';\nimport { UNEMER } from '../../../Lib/variables';\n\nexport const NoCatchedList = ({ list, detailHandler, data, onRefresh }) => {\n return (\n \n {/* */}\n \n \n 실시간 예약 내역\n 새로고침\n \n \n {list && Array.isArray(list) && list.length > 0 ? (\n list.map(item => {\n const serviceType =\n !item.productInfo || !item.productInfo.usePro || !item.productInfo.useBasic ? '' : item.service === UNEMER ? 'Pro' : 'Basic';\n const serviceName = (item.productInfo && item.productInfo.name && item.service && item.productInfo.name + serviceType) || '-';\n return (\n {\n detailHandler(item);\n }}\n />\n );\n })\n ) : (\n 현재 예약내역이 없습니다.\n )}\n \n \n \n );\n};\n\nconst ReserveItem = ({ service, name, reserveDate, shortStarting, destination, serviceType, status, onDetail, usageTime }) => (\n \n \n \n 서비스 명\n {service}\n \n \n\n \n \n 환자 성함\n {name}\n \n \n 병원 진료 예약 시간\n {reserveDate}\n \n {serviceType === UNEMER && (\n \n 자택 주소\n {shortStarting}\n \n )}\n \n 병원 주소\n {destination}\n \n \n\n \n \n 자세히보기\n \n \n \n);\n\nconst TitleSection = styled.div``;\n\nconst ContentSection = styled.div`\n flex: 1;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n\n width: 300px;\n height: 316px;\n overflow-y: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n`;\n\nconst EmptyList = styled.p`\n font-size: 20px;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 16px;\n position: relative;\n`;\n\nconst FullContainer = styled.div`\n width: 100%;\n height: 100vh;\n background: linear-gradient(to top, #3bc1ff, #5b62f5);\n`;\n\nconst Inner = styled.div`\n max-width: 1024px;\n height: 100%;\n max-height: 628px;\n\n margin: 0 auto;\n background-image: url('/assets/images/w_main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: 120px;\n padding-bottom: 120px;\n\n @media (max-width: 1080px) {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n @media (max-width: 768px) {\n padding-top: 40px;\n background: transparent;\n }\n`;\n\nconst NoCatchTitle = styled.p`\n font-size: 28px;\n font-weight: bold;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 24px;\n position: relative;\n\n @media (max-width: 480px) {\n margin-bottom: 16px;\n }\n`;\n\nconst RefreshButton = styled.span`\n position: absolute;\n margin-left: 8px;\n top: 16px;\n\n font-size: 14px;\n color: #161616;\n text-decoration: underline;\n cursor: pointer;\n`;\n\nconst ListConatiner = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-wrap: wrap;\n\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n > div:nth-child(3n) {\n margin-right: 16px;\n }\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n\n @media (max-width: 480px) {\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n width: 340px;\n height: 340px;\n overflow: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n\n padding: 20px;\n margin-bottom: 16px;\n margin-right: 16px;\n\n border-radius: 4px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n\n @media (max-width: 768px) {\n margin-bottom: 16px;\n }\n\n @media (max-width: 480px) {\n width: 100%;\n max-width: initial;\n margin-right: 0px;\n }\n`;\n\nconst ItemTitle = styled.p`\n color: #a7a7a7;\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(11)};\n }\n`;\n\nconst ItemContents = styled.p`\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n margin: 0px;\n padding: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n margin-bottom: 4px;\n }\n`;\n\nconst ItemColumn = styled.div`\n width: 100%;\n margin-bottom: 6px;\n\n @media (max-width: 768px) {\n display: ${props => (props.hiddenMobile ? 'none' : 'block')};\n width: 100%;\n }\n`;\n\nconst DetailButton = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 44px;\n\n border-radius: 4px;\n border: 1px solid ${mainColor};\n cursor: pointer;\n transition: all 0.3s;\n text-align: center;\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: ${mainColor};\n text-align: center;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n }\n }\n\n &:hover {\n background-color: ${mainColor};\n span {\n color: white;\n }\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: 34px;\n font-size: ${sizeHandler(12)};\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Input, Select, DatePicker, TimePicker } from 'antd';\n\nimport Pallete from '../../theme';\n\nconst DivisionLine = styled.div`\n width: 100%;\n height: ${props => (props.big ? '32px' : props.x_small ? '8px' : props.small ? '16px' : '24px')};\n\n @media (max-width: 480px) {\n height: ${props => (props.big ? '24px' : props.x_small ? '4px' : props.small ? '8px' : '16px')};\n }\n`;\n\nconst BorderDivisionLine = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${Pallete.dark50};\n\n margin-top: ${props => (props.x_small ? '4px' : props.small ? '8px' : '12px')};\n margin-bottom: ${props => (props.x_small ? '4px' : props.small ? '8px' : '12px')};\n`;\n\nconst WithmateLabelText = styled.div`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n\n > span {\n color: ${Pallete.blue50};\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n`;\n\nconst WithmateLabel = ({ children, required, ...rest }) => {\n return (\n \n {required && * }\n {children}\n \n );\n};\n\nWithmateLabel.propTypes = {\n required: PropTypes.bool,\n};\n\nconst WithmateInput = styled(Input)`\n width: 100%;\n height: 46px;\n line-height: 44px;\n ${props => props.small && `max-width: 102px; height: 32px; line-height: 29px;`}\n\n margin-bottom: 0px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border-radius: 4px;\n border: 1px solid ${Pallete.dark50} !important;\n background-color: #ffffff;\n\n @media (max-width: 480px) {\n font-size: 12px;\n border: 1px solid ${Pallete.dark50} !important;\n }\n\n &.ant-input {\n width: 100%;\n height: 46px;\n line-height: 44px;\n\n margin-bottom: 0px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border-radius: 4px;\n border: 1px solid ${Pallete.dark50} !important;\n background-color: #ffffff;\n\n &::placeholder {\n color: ${Pallete.dark60};\n font-size: 14px;\n font-weight: normal;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n border: 1px solid ${Pallete.dark50} !important;\n\n &::placeholder {\n font-size: 12px;\n }\n }\n }\n\n &:focus {\n border: 1px solid ${Pallete.blue100} !important;\n transition: all 0.3s;\n box-shadow: none;\n outline: 0;\n }\n\n &:disabled {\n background-color: ${Pallete.dark10};\n }\n\n &.ant-input-affix-wrapper-disabled {\n background-color: #f5f5f5;\n }\n\n &.ant-input-affix-wrapper {\n height: 46px;\n line-height: 43px;\n padding: 0px 11px;\n\n ${props => props.small && `max-width: 102px; height: 32px; line-height: 29px;`}\n\n .ant-input {\n width: 100% !important;\n height: 100%;\n line-height: 43px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border: 0px !important;\n &::placeholder {\n color: ${Pallete.dark60};\n font-size: 14px;\n font-weight: normal;\n }\n\n &:focus {\n border: 1px solid ${Pallete.blue100} !important;\n transition: all 0.3s;\n box-shadow: none;\n outline: 0;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n line-height: 43px;\n\n &:focus {\n border: 1px solid ${Pallete.dark50} !important;\n }\n\n &::placeholder {\n font-size: 12px;\n }\n }\n &:disabled {\n background-color: ${Pallete.dark10};\n }\n }\n\n .ant-input-suffix {\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n text-align: right;\n color: ${Pallete.dark100};\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n }\n`;\n\nconst InputTextButton = styled.span`\n display: inline-block;\n min-width: 50px;\n\n height: 46px;\n line-height: 44px;\n\n padding-left: 6px;\n padding-right: 6px;\n\n font-size: 11px;\n font-weight: normal;\n color: ${Pallete.dark60};\n text-align: center;\n cursor: pointer;\n\n transition: all 0.3s;\n\n &:hover {\n color: ${Pallete.dark100};\n }\n`;\n\nconst InputValue = styled.div`\n flex: 1;\n height: 46px;\n line-height: 44px;\n\n padding-left: 11px;\n padding-right: 11px;\n\n font-size: 14px;\n font-weight: normal;\n color: ${props => (props.withValue ? Pallete.dark100 : Pallete.dark60)};\n`;\n\nconst WithamteInputWithButton = ({ inputConfig, buttonName, onButton }) => {\n return (\n \n \n {onButton && typeof onButton === 'function' && {buttonName}}\n \n );\n};\n\nWithamteInputWithButton.propTypes = {\n inputConfig: PropTypes.object,\n buttonName: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onButton: PropTypes.func,\n};\n\nconst HalfWithmateInput = styled(WithmateInput)`\n width: calc(50% - 4px);\n`;\n\nconst WithmateTextarea = styled(Input.TextArea)`\n &.ant-input {\n width: 100%;\n height: 240px;\n ${props => props.middle && `min-height: 110px; max-height: 110px;`}\n ${props => props.small && `min-height: 88px; max-height: 88px;`}\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border-radius: 4px;\n border: 1px solid ${Pallete.dark50} !important;\n background-color: #ffffff;\n\n margin-bottom: 8px;\n padding: 8px;\n\n &::placeholder {\n color: ${Pallete.dark60};\n font-size: 14px;\n font-weight: normal;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n &::placeholder {\n font-size: 12px;\n }\n }\n\n &:focus {\n border: 1px solid ${Pallete.blue100} !important;\n transition: all 0.3s;\n box-shadow: none;\n outline: 0;\n }\n\n &:disabled {\n background-color: ${Pallete.dark10};\n }\n\n @media (max-width: 480px) {\n min-height: 140px;\n ${props => props.middle && `min-height: 110px; max-height: 110px;`}\n ${props => props.small && `min-height: 88px; max-height: 88px;`}\n\n padding: 4px 11px;\n border: 1px solid ${Pallete.dark50} !important;\n\n &:focus {\n border: 1px solid ${Pallete.dark50} !important;\n }\n }\n }\n`;\n\nconst WithmateSelect = styled(Select)`\n &.ant-select {\n // margin-bottom: 8px;\n width: 100%;\n height: 46px;\n border-radius: 4px;\n\n .ant-select-selector {\n height: 100%;\n }\n }\n\n &.ant-select .ant-select-selector {\n height: 100% !important;\n line-height: 43px;\n }\n\n &.ant-select-single .ant-select-selector .ant-select-selection-item,\n &.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n line-height: 43px;\n }\n\n &.ant-select-single .ant-select-selector .ant-select-selection-item,\n &.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n line-height: 43px;\n }\n\n &.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #e9e9e9;\n border-radius: 4px;\n }\n\n .ant-select-selector .ant-select-selection-search-input {\n height: 100%;\n line-height: 43px;\n }\n\n &.ant-select.ant-select-enabled {\n width: 100%;\n }\n\n .ant-select-selection.ant-select-selection--single {\n border: 1px solid ${Pallete.dark50} !important;\n width: 100%;\n height: 46px;\n border-radius: 4px;\n }\n\n .ant-select-selection__rendered {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n\n .ant-select-selection__placeholder {\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n text-align: left;\n color: ${Pallete.dark60};\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n }\n\n .ant-select-selection-selected-value {\n min-width: 50%;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.46;\n text-align: left;\n color: ${Pallete.dark100};\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n\n &.ant-select-disabled {\n width: 100%;\n }\n`;\n\nconst HalfWithmateSelect = styled(WithmateSelect)`\n width: calc(50% - 4px);\n`;\n\nconst FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n\n ${props =>\n props.withHalf\n ? `\n > div, p {\n width: calc(50% - 4px) !important;\n margin-right: 8px;\n }\n `\n : ''}\n\n > div:last-child {\n margin-right: 0px;\n }\n`;\n\nconst BorderFlexWrapper = styled(FlexWrapper)`\n border: 1px solid ${Pallete.dark50};\n border-radius: 4px;\n overflow: hidden;\n\n input.ant-input {\n margin-bottom: 0px !important;\n border: 0px !important;\n }\n`;\n\nconst FlexDiv = styled.div`\n width: calc(50% - 4px);\n`;\n\nconst StyledHotFix = styled.p`\n font-size: 11px;\n color: ${Pallete.blue100};\n font-weight: normal;\n\n margin-bottom: 4px;\n`;\n\nconst WithmateDatePicker = styled(DatePicker)`\n &.ant-picker {\n width: 100%;\n height: 46px;\n line-height: 43px;\n border: 1px solid #e9e9e9;\n padding: 0px;\n padding-left: 11px;\n padding-right: 11px;\n border-radius: 4px;\n\n > div {\n height: 100%;\n }\n\n > div > input {\n height: 100%;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.46;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n }\n`;\n\nconst WithmateTimepicker = styled(TimePicker)`\n &.ant-picker {\n width: 100%;\n height: 46px;\n line-height: 43px;\n border: 1px solid #e9e9e9;\n padding: 0px;\n padding-left: 11px;\n padding-right: 11px;\n border-radius: 4px;\n\n > div {\n height: 100%;\n }\n\n > div > input {\n height: 100%;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.46;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n }\n`;\n\nconst WithmateValue = styled.p`\n margin-bottom: 4px;\n\n font-size: 13px;\n color: ${Pallete.blue50};\n font-weight: bold;\n`;\n\nconst WithmateValueTip = styled.p`\n margin-bottom: 0px;\n\n font-size: 11px;\n color: ${Pallete.dark60};\n font-weight: normal;\n`;\n\nexport {\n BorderDivisionLine,\n WithamteInputWithButton,\n DivisionLine,\n WithmateLabel,\n WithmateInput,\n HalfWithmateInput,\n WithmateTextarea,\n WithmateSelect,\n FlexWrapper,\n FlexDiv,\n HalfWithmateSelect,\n StyledHotFix,\n WithmateDatePicker,\n WithmateValue,\n WithmateValueTip,\n WithmateTimepicker,\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Pallete from '../../theme';\n\nconst FullWidthButton = styled.a`\n display: block;\n width: 100%;\n height: 40px;\n line-height: 40px;\n border-radius: 4px;\n\n cursor: pointer;\n\n font-size: 13px;\n font-weight: normal;\n text-align: center;\n font-weight: bold;\n\n ${props =>\n props.border\n ? `\n border: 1px solid ${Pallete.dark50};\n color: ${Pallete.blue50}\n `\n : ''}\n\n background-color: ${props => (props.bg ? props.bg : Pallete.blue50)};\n color: #ffffff;\n`;\n\nconst HalfWidthButton = styled(FullWidthButton)`\n width: calc(50% - 4px);\n`;\n\nconst RadiusFullWidthButton = styled(FullWidthButton)`\n max-width: 280px;\n height: 72px;\n line-height: 72px;\n border-radius: 50vh;\n\n font-size: 22px;\n font-weight: bold;\n letter-spacing: -0.5px;\n`;\n\nconst RadiusHalfWidthButton = styled(RadiusFullWidthButton)`\n max-width: calc(50% - 4px);\n margin-right: 8px;\n\n @media (max-width: 480px) {\n width: 100%;\n max-width: 280px;\n\n height: 55px;\n line-height: 55px;\n font-size: 16px;\n letter-spacing: -0.1px;\n\n margin-right: 0px;\n margin-bottom: 8px;\n }\n`;\n\nconst ButtonWrapper = styled.div`\n width: 100%;\n\n display: flex;\n align-items: center;\n\n ${props =>\n props.half\n ? `\n > a {\n width: calc(50% - 4px);\n }\n > a:nth-child(1) {\n margin-right: 8px;\n }\n `\n : ''}\n`;\n\nexport { FullWidthButton, HalfWidthButton, ButtonWrapper, RadiusFullWidthButton, RadiusHalfWidthButton };\n","import React from 'react';\nimport { withRouter } from 'react-router';\nimport moment from 'moment';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\n\nimport { DivisionLine } from '../Components/Common/input';\nimport { FullWidthButton } from '../Components/Common/button';\n\n// theme\nimport Pallete, { mainColor } from '../theme';\n\n// utils\nimport { serviceParser, getNextStatus, getTotal, currencyFormatter } from '../Lib/utils';\n\nexport default class Modal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n const now = moment().valueOf();\n const begin = moment('20220923 180000').valueOf(); // 02. 24 ~\n const end = moment('20220925 180000').valueOf(); // ~ 03. 31\n\n if (now > begin && now < end) {\n this.modalValidation();\n }\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('modal') && typeof JSON.parse(localStorage.getItem('modal')) === 'object' && JSON.parse(localStorage.getItem('modal')) !== null\n ? JSON.parse(localStorage.getItem('modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n {\n if (e.target.id === 'event-popup') {\n this.onClose();\n }\n }}\n >\n {\n e.preventDefault();\n }}\n >\n \n 서버 업데이트 대비 서버점검 안내\n \n \n 2022. 09. 23 더 편리한 서비스\n 제공을 위헤 업데이트를 진행할 예정입니다.\n 아래 명시한 기간동안 정상적인 서비스 이용에 어려움이\n 있을수 있습니다. 성원에 보답하는 위드메이트가 되겠습니다.\n\n ※ 서버점검 기간\n 22. 09. 23 18:00 ~ 22. 09. 25 18:00\n\n
\n 국민 모두 힘을 합치면 코로나 사태 극복 가능합니다.\n 코로나19 극복, 위드메이트가 앞장서겠습니다.\n {/* */}\n \n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n \n \n );\n } else {\n return <>;\n }\n }\n}\n\nexport class RadiationModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n // localStorage.clear();\n // const now = moment().valueOf();\n // const begin = moment('20200223 235959').valueOf(); // 02. 24 ~\n // const end = moment('20200331 190000').valueOf(); // ~ 03. 31\n\n // if (now > begin && now < end) {\n // this.modalValidation();\n // }\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n \n 투석 & 방사선 치료 동행 서비스 안내\n \n \n \n 투석 & 방사선 치료 병원 동행 서비스가 필요하신 분들은\n 고객센터 전화를 통해 서비스 상담을 받으실 수 있습니다.\n \n 고객센터 번호 ☞ 070-4300-9075\n \n \n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n \n \n );\n } else {\n return <>;\n }\n }\n}\n\n// class EventModal extends React.PureComponent {\n// state = {\n// modal: false,\n// };\n\n// componentDidMount = () => {\n// this.modalValidation();\n// };\n\n// modalValidation = () => {\n// const { lastTime } =\n// localStorage.getItem('radiation-modal') &&\n// typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n// JSON.parse(localStorage.getItem('radiation-modal')) !== null\n// ? JSON.parse(localStorage.getItem('radiation-modal'))\n// : {\n// lastTime: moment().subtract('day', 1).toDate(),\n// };\n\n// if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n// this.setState({ modal: true });\n// }\n// };\n\n// onClose = () => {\n// localStorage.setItem('radiation-modal', null);\n// this.setState({ modal: false });\n// };\n\n// onCloseToday = () => {\n// localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n// this.setState({ modal: false });\n// };\n\n// render() {\n// if (this.state.modal) {\n// return (\n// \n// \n// \n// 위드메이트, 이제 포항에서 만나보세요!\n// \n// \n// \n// \n// 위드메이트가 한동대학교 ICT 창업팀과 협력하여 포항시를 시작으로 경상권 정식 서비스를 시작합니다. 경상권 서비스 시작\n// 전, 포항시 대상 시범 서비스사전 수요 조사가 진행됩니다. (회원 가입 완료 고객님 대상)\n// \n//
\n// \n// 서비스 신청 시 '자택 주소' 또는 '병원 주소'가 '포항시'에 해당하는 모든 고객님께 30% 할인 혜택이 적용되며, 설문에\n// 참여해주시는 모든 경상권 거주 고객님께 20% 할인 쿠폰과 추첨을 통한 스타벅스 기프티콘을 드립니다.{' '}\n// \n\n//
\n// \n// {\n// this.onClose();\n// this.props.history.push('/user/register');\n// }}\n// >\n// 설문 전 회원가입 먼저 하기 {'>'}\n// \n// \n// \n// \n// 쿠폰(설문 조사) 링크 {'>'}\n// \n// \n//
\n\n// 여러분의 소중한 지인에게 병원 동행 서비스를 알려주세요!\n//
\n// \n// \n// \n// \n// \n// 오늘은 그만보기\n// \n// 닫기\n// \n//
\n//
\n// );\n// } else {\n// return <>;\n// }\n// }\n// }\n\nexport const MateReserveInfoModal = ({ visibleHandler, info, onCatch }) => {\n const serviceType = !info.productInfo || !info.productInfo.usePro || !info.productInfo.useBasic ? '' : info.service === 'unemergency' ? 'Pro' : 'Basic';\n const serviceName = (info.productInfo && info.productInfo.name && info.service && info.productInfo.name + serviceType) || '-';\n\n return (\n \n \n \n 예약 상세내용\n \n \n 서비스명\n {serviceName}\n 병원 진료 예약 시간\n {moment(info.reserveDate).format('YYYY년 MM월 DD일, HH시 mm분')}\n 총 예상 소요 시간\n {info.usageTime || 0}시간\n {info && info.shortStarting ? (\n <>\n 자택 주소\n {info.shortStarting}\n \n ) : null}\n 병원 주소\n {info.destination}\n 이동수단\n \n {info.transport && info.transport === 'withcar'\n ? '차량 호출'\n : info.transport && info.transport === 'own'\n ? '본인소유 자차 이용'\n : '대중교통(택시 등) 이용'}\n \n 예상 비용\n \n {(info.transport && info.transport === 'own' ? 20000 : 0) +\n (info.productInfo &&\n info.service &&\n (info.service === 'unemergency' ? info.productInfo.proPrice : info.productInfo.basicPrice ? info.productInfo.basicPrice : 0) *\n info.usageTime)}\n 원\n \n\n 예약 접수하기\n \n
\n 이용자 성함\n {info.patient}\n
\n
\n 이용자 성별\n {info.sex}\n
\n
\n \n
\n 추가 요청 사항\n {info.comment || '-'}\n
\n
\n
\n
\n );\n};\n\nexport const MateCallStatusModal = ({ visibleHandler, info, onNext }) => {\n const serviceType = !info.productInfo || !info.productInfo.usePro || !info.productInfo.useBasic ? '' : info.service === 'unemergency' ? 'Pro' : 'Basic';\n const serviceName = (info.productInfo && info.productInfo.name && info.service && info.productInfo.name + serviceType) || '-';\n\n return (\n \n \n \n 예약 상세내용 및 관리\n \n \n 서비스 명\n {serviceName}\n 병원 진료 예약 시간\n {moment(info.reserveDate).format('YYYY년 MM월 DD일, HH시 mm분')}\n 총 예상 소요 시간\n {info.usageTime || 0}시간\n 병원 주소\n {info.destination}\n {info.service === 'unemergency' && (\n <>\n 이동 수단\n {info.transport === 'own' ? '자차 이용' : info.transport === 'common' ? '대중교통' : '-'}\n \n )}\n {info && info.starting && (\n <>\n 자택 주소\n {info.starting}\n \n )}\n {info.call && info.call.status !== '예약접수' && (\n <>\n \n
\n 이용자 성함\n {info.patient}\n
\n
\n 이용자 성별\n {info.sex}\n
\n
\n 이용자 연락처\n {info.contact}\n\n {/* 보호자 연락처\n {(info.buyer && info.buyer.contact) || '-'} */}\n \n )}\n\n 추가 요청 사항\n {info.comment || '-'}\n\n {info.call && info.call.status !== '서비스 종료' && info.call.status !== '예약접수' && (\n {getNextStatus(info.service, info.call.status)}\n )}\n {info.call && info.call.status === '서비스 종료' && 서비스 리포트 작성}\n\n \n 닫기\n \n
\n
\n );\n};\n\nexport const UserServiceReportModal = ({ visibleHandler, info, service, onMateInfo }) => {\n const { timeline } = info;\n\n return (\n \n \n \n 서비스 리포트\n \n \n 타임라인\n {service === 'happycare' ? (\n \n {timeline.receipt ?

{`고객님과 메이트가 ${moment(timeline.receipt.time).format('HH시 mm분')}에 만났습니다.`}

: ''}\n {timeline.careStart ?

{`${moment(timeline.careStart.time).format('HH시 mm분')}에 진료를 시작하였고,`}

: ''}\n {timeline.careDone ? (\n

{`${moment(timeline.careDone.time).diff(moment(timeline.careStart.time), 'minute')}분 동안 진료를 봤습니다.`}

\n ) : (\n ''\n )}\n {timeline.complete ?

{`${moment(timeline.complete.time).format('HH시 mm분')}에 고객님과의 동행 서비스가 종료되었습니다.`}

: ''}\n
\n ) : null}\n {service === 'assist' ? (\n \n {timeline.arrived ?

{`메이트가 ${moment(timeline.arrived.time).format('MM월 DD일, HH시 mm분')}에 병원에 도착하였습니다.`}

: ''}\n {timeline.receipt ?

{`고객님과는 ${moment(timeline.receipt.time).format('HH시 mm분')}에 만났습니다.`}

: ''}\n {timeline.careStart ?

{`${moment(timeline.careStart.time).format('HH시 mm분')}에 진료를 시작하였고,`}

: ''}\n {timeline.careDone ? (\n

{`${moment(timeline.careDone.time).diff(moment(timeline.careStart.time), 'minute')}분 동안 진료를 봤습니다.`}

\n ) : (\n ''\n )}\n {timeline.complete ?

{`${moment(timeline.complete.time).format('HH시 mm분')}에 고객님과의 동행 서비스가 종료되었습니다.`}

: ''}\n
\n ) : null}\n {service === 'unemergency' ? (\n \n {timeline.receipt ?

{`메이트가 고객님과 ${moment(timeline.receipt.time).format('MM월 DD일, HH시 mm분')}에 만났습니다.`}

: ''}\n {timeline.start ?

{`병원으로 ${moment(timeline.start.time).format('HH시 mm분')}에 출발하였습니다.`}

: ''}\n {timeline.arrived ?

{`그리고 ${moment(timeline.arrived.time).format('HH시 mm분')}에 병원에 도착하였습니다.`}

: ''}\n {timeline.careStart ?

{`${moment(timeline.careStart.time).format('HH시 mm분')}에 진료를 시작하였고,`}

: ''}\n {timeline.careDone ? (\n

{`${moment(timeline.careDone.time).diff(moment(timeline.careStart.time), 'minute')}분 동안 진료를 봤습니다.`}

\n ) : (\n ''\n )}\n {timeline.backStart ?

{`진료 후 ${moment(timeline.backStart.time).format('HH시 mm분')}에 자택으로 출발했습니다.`}

: ''}\n {timeline.complete ?

{`${moment(timeline.complete.time).format('HH시 mm분')}에 고객님과의 동행 서비스가 종료되었습니다.`}

: ''}\n
\n ) : null}\n {info.mate[0].name} 메이트 리포트\n\n {info.report || '담당 메이트가 아직 리포트를 작성중입니다.'}\n\n \n 담당 메이트 정보\n \n \n \n 닫기\n \n \n
\n
\n );\n};\n\nexport const HandleReportModal = ({ visibleHandler, onHandleReport, inputHandler, desc }) => {\n return (\n \n \n \n 서비스 리포트 작성\n \n \n\n 서비스 수행 및 진료내용 {desc && desc.length > 0 ? `(글자수 - ${desc.length}자)` : ''}\n \n {\n inputHandler({ type: 'report', value: ev.target.value });\n }}\n />\n \n 리포트 등록\n \n 닫기\n \n \n \n );\n};\n\nexport const ShareCarRequestModal = ({ visibleHandler, inputHandler, onSave, data }) => {\n return (\n \n \n \n 셔틀 셰어링 신청\n \n \n\n \n \n

기관명

\n {\n if (ev.target.value.length >= 20) return null;\n\n inputHandler({ type: 'corp', value: ev.target.value });\n }}\n />\n
\n \n

지역

\n {\n if (ev.target.value.length >= 20) return null;\n\n inputHandler({ type: 'address', value: ev.target.value });\n }}\n />\n
\n
\n\n \n \n

담당자

\n {\n if (ev.target.value.length >= 20) return null;\n\n inputHandler({ type: 'manager', value: ev.target.value });\n }}\n />\n
\n \n

전화번호

\n {\n if (ev.target.value.length >= 13) return null;\n\n inputHandler({ type: 'contact', value: ev.target.value });\n }}\n />\n
\n
\n\n \n \n

기타 문의 및 전달사항

\n {\n if (ev.target.value.length > 150) return null;\n\n inputHandler({ type: 'message', value: ev.target.value });\n }}\n />\n
\n
\n\n \n 접수하기\n \n
\n
\n );\n};\n\nexport const EmergencyCorpSearchModal = ({ visibleHandler, inputHandler, keyword = '', data = [] }) => {\n return (\n \n \n \n 사설 구급업체 검색\n \n \n\n \n \n

지역 검색

\n {\n if (ev.target.value.length > 10) return null;\n\n inputHandler(ev.target.value);\n }}\n />\n
\n
\n\n \n \n

검색결과

\n \n \n \n 시도 / 시군구\n \n \n 기관명\n \n \n 대표번호\n \n \n {data && data.length > 0 ? (\n data\n .filter(\n item =>\n (item.addr1 && item.addr1.includes(keyword)) ||\n (item.addr2 && item.addr2.includes(keyword)) ||\n (item.name && item.name.includes(keyword)) ||\n (item.contact && item.contact.includes(keyword)),\n )\n .map((item, index) => (\n \n \n {item.addr1 + ' ' + item.addr2}\n \n \n {item.name}\n \n \n {item.contact}\n \n \n ))\n ) : (\n \n )}\n \n
\n
\n\n \n 확인\n \n
\n
\n );\n};\n\nclass CardModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n \n 카드결제 안내\n \n \n
\n \n {/* */}\n
\n
\n \n {\n this.onClose();\n this.props.history.push('/user/mypage/info');\n }}\n >\n 결제카드 등록하기 {'>'}\n \n \n {/* \n \n 쿠폰(설문 조사) 링크 {'>'}\n \n */}\n
\n
\n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n
\n
\n );\n } else {\n return <>;\n }\n }\n}\n\nclass ManagerModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n {/* \n 위드메이트 X 국립암센터 암특화 병원동행 매니저 자격과정 모집\n */}\n \n
\n \n {/* */}\n
\n
\n \n {\n this.onClose();\n this.props.history.push({\n pathname: `/newsEvent/info/63d9f951397216d7ff7672a8`,\n state: { id: '63d9f951397216d7ff7672a8' },\n });\n }}\n >\n 자세히 보기 {'>'}\n \n \n {/* \n \n 쿠폰(설문 조사) 링크 {'>'}\n \n */}\n
\n
\n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n
\n
\n );\n } else {\n return <>;\n }\n }\n}\n\nclass EventModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n {/* \n 위드메이트 X 국립암센터 암특화 병원동행 매니저 자격과정 모집\n */}\n \n
\n \n {/* */}\n
\n
\n \n {\n this.onClose();\n this.props.history.push({\n pathname: `/newsEvent/info/645dc777f0316a44d06a1fdb`,\n state: { id: '645dc777f0316a44d06a1fdb' },\n });\n }}\n >\n 자세히 보기 {'>'}\n \n \n
\n
\n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n
\n
\n );\n } else {\n return <>;\n }\n }\n}\n\nclass NoticeModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n onCloseToday2 = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n \n 서버오류로 인한 데이터 복구작업 안내\n \n \n \n
\n
\n 서버 오류가 발생하여 손실된 데이터 복구작업 진행중입니다.\n
\n 이에 관련하여 문의사항은 고객센터로 연락을 주시면
\n 빠르게 해결해드리겠습니다.\n
\n 위드메이트를 이용하시는데 불편을 드려 죄송합니다.\n
\n
\n
\n \n ⏰ 운영시간 : 오전 9시 - 오후 6시 (토·일 제외)\n
\n 👩🏻‍💻 문의방법 : 채널톡 및 카카오톡 혹은 전화(070-4300-9075)\n
\n
\n
\n
\n \n {/* {\n this.onClose();\n this.props.history.push(\n {\n pathname: `/newsEvent/info/63c0ec49fe7889400f150b97`,\n state: { id: '63c0ec49fe7889400f150b97' },\n });\n }}\n >\n 자세히 보기 {'>'}\n */}\n \n
\n
\n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n
\n
\n );\n } else {\n return <>;\n }\n }\n}\n\nclass MetlifeModal extends React.PureComponent {\n state = {\n modal: false,\n };\n\n componentDidMount = () => {\n this.modalValidation();\n };\n\n modalValidation = () => {\n const { lastTime } =\n localStorage.getItem('radiation-modal') &&\n typeof JSON.parse(localStorage.getItem('radiation-modal')) === 'object' &&\n JSON.parse(localStorage.getItem('radiation-modal')) !== null\n ? JSON.parse(localStorage.getItem('radiation-modal'))\n : {\n lastTime: moment().subtract('day', 1).toDate(),\n };\n\n if (!lastTime || moment(lastTime).format('YYYY-MM-DD') !== moment().format('YYYY-MM-DD')) {\n this.setState({ modal: true });\n }\n };\n\n onClose = () => {\n localStorage.setItem('radiation-modal', null);\n this.setState({ modal: false });\n };\n\n onCloseToday = () => {\n localStorage.setItem('radiation-modal', JSON.stringify({ lastTime: moment().toDate() }));\n this.setState({ modal: false });\n };\n\n render() {\n if (this.state.modal) {\n return (\n \n \n {/* \n 위드메이트 X 국립암센터 암특화 병원동행 매니저 자격과정 모집\n */}\n \n
\n \n {/* */}\n
\n
\n \n {\n this.onClose();\n this.props.history.push('/360F/nemt/service/#types');\n }}\n >\n 서비스 종류 보기 {'>'}\n \n \n
\n
\n \n \n \n \n \n 오늘은 그만보기\n \n 닫기\n \n
\n
\n );\n } else {\n return <>;\n }\n }\n}\n\nexport const CustomModal = ({ children }) => {\n return {children};\n};\n\nconst TableWrapper = styled.div`\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n overflow-x: hidden;\n overflow-y: scroll;\n\n margin-bottom: 30px;\n`;\n\nconst TableHeaderWrapper = styled.div`\n border-bottom: 1px solid #e6e6e6;\n padding: 6px 22px;\n\n display: flex;\n`;\n\nconst TableRowWrapper = styled.div`\n border-bottom: 1px solid #e6e6e6;\n padding: 9.5px 22px;\n\n display: flex;\n`;\n\nconst EmptyTable = styled.div`\n height: 100px;\n`;\n\nconst FlexColumn = styled.div`\n flex: 1;\n\n text-align: left;\n\n > span.title {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 10px;\n line-height: 18px;\n\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.4);\n }\n\n > span.value {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 28px;\n\n letter-spacing: -0.2625px;\n color: rgba(0, 0, 0, 0.8);\n }\n`;\n\nconst FlexWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n width: 100%;\n }\n`;\n\nconst FlexBox = styled.div`\n flex: 1;\n\n width: calc(50% - 10px);\n\n &:first-child {\n margin-right: 20px;\n }\n\n > p.label {\n margin-bottom: 4px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 11px;\n line-height: 18px;\n\n color: #a7a7a7;\n }\n\n > input {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 20px;\n\n height: 40px;\n line-height: 40px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n\n &:first-child {\n margin-right: 0px;\n }\n }\n`;\n\nconst FlexFullBox = styled(FlexBox)`\n width: 100%;\n\n &:first-child {\n margin-right: 0px;\n }\n\n > input {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 20px;\n\n height: 40px;\n line-height: 40px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n\n > textarea.ant-input {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 20px;\n\n height: 100px;\n line-height: 20px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n`;\n\nexport const EventPopup = withRouter(EventModal);\nexport const ManagerPopup = withRouter(ManagerModal);\nexport const CardPopup = withRouter(CardModal);\nexport const NoticePopup = withRouter(NoticeModal);\nexport const MetlifePopup = withRouter(MetlifeModal);\n\nconst Container = styled.div`\n position: fixed;\n left: 0px;\n top: 0px;\n z-index: 100;\n display: flex;\n width: 100vw;\n height: 100vh;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.6);\n\n @media (max-width: 768px) {\n padding-left: 16px;\n padding-right: 16px;\n overflow: hidden;\n }\n`;\n\nconst CustomContaienr = styled(Container)`\n @media (max-width: 768px) {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nconst ModalBlock = styled.div`\n margin-top: -46px;\n // margin-right: 400px;\n width: 100%;\n min-width: 430px;\n max-width: 450px;\n max-height: 90%;\n overflow-y: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n\n background-color: #fdfdfd;\n border-radius: 4px;\n\n @media (max-width: 768px) {\n min-width: auto;\n max-width: 380px;\n margin-right: 0px;\n }\n`;\n\nconst ModalBlock2 = styled.div`\n margin-top: -46px;\n margin-left: 600px;\n width: 100%;\n min-width: 430px;\n max-width: 450px;\n max-height: 90%;\n overflow-y: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n\n background-color: #fdfdfd;\n border-radius: 4px;\n\n @media (max-width: 768px) {\n min-width: auto;\n max-width: 380px;\n margin-left: 0px;\n }\n`;\n\nconst ModalLargeBlock = styled(ModalBlock)`\n max-width: 740px;\n padding: 32px;\n\n @media (max-width: 1120px) {\n max-width: 540px;\n }\n\n @media (max-width: 768px) {\n max-width: 440px;\n }\n\n @media (max-width: 430px) {\n max-width: 380;\n }\n`;\n\nconst ModalTitle = styled.div`\n font-size: 18px;\n font-weight: bold;\n text-align: center;\n letter-spacing: 0.03px;\n color: rgba(0, 0, 0, 0.87);\n\n position: relative;\n\n margin-top: 24px;\n margin-bottom: 24px;\n`;\n\nconst ModalFlexbox = styled.div`\n display: flex;\n align-items: flex-start;\n\n > div {\n flex: 1;\n }\n`;\n\nconst ModalCloseButtons = styled.img`\n position: absolute;\n top: 0px;\n right: 24px;\n\n display: inline-block;\n width: 18px;\n height: 18px;\n\n cursor: pointer;\n`;\n\nconst ModalLabel = styled.p`\n font-size: 12px;\n color: #b6b6b6;\n margin-bottom: 4px;\n font-weight: bold;\n\n padding-left: 32px;\n padding-right: 32px;\n`;\n\nconst ModalPaddingBlock = styled.div`\n padding-left: 32px;\n padding-right: 32px;\n\n margin-bottom: 24px;\n`;\n\nconst ModalInfo = styled.p`\n font-size: 13px;\n color: #565656;\n margin-bottom: 12px;\n font-weight: bold;\n\n padding-left: 32px;\n padding-right: 32px;\n`;\n\nconst WhiteButton = styled.div`\n width: 100%;\n max-width: calc(100% - 64px);\n height: 40px;\n line-height: 40px;\n\n border-radius: 16px;\n\n border: 1px solid ${mainColor};\n color: ${mainColor}\n\n font-size: 13px;\n text-align: center;\n\n margin: 0 auto;\n margin-bottom: 24px;\n\n cursor: pointer;\n &:hover {\n transition: all 0.5s;\n background-color: ${mainColor};\n color: white;\n }\n`;\n\nconst BlueButton = styled.div`\n \n width: calc(100% - 64px);\n max-width: 360px;\n height: 40px;\n line-height: 40px;\n\n border-radius: 16px;\n\n background-color: ${mainColor};\n color: #ffffff\n\n font-size: 13px;\n text-align: center;\n\n margin: 0 auto;\n\n cursor: pointer;\n &:hover {\n transition: all 0.5s;\n opacity: 0.85;\n }\n`;\n\nconst Top = styled.div`\n // border-bottom: 3px solid ${mainColor};\n\n height: 42px;\n line-height: 42px;\n border-bottom: 2px solid #e9e9e9;\n`;\n\nconst Title = styled.p`\n font-size: 18px;\n font-weight: bold;\n text-align: center;\n letter-spacing: 0.03px;\n color: rgba(0, 0, 0, 0.87);\n margin: 0px;\n`;\n\nconst Bottom = styled.div`\n position: relative;\n // padding-top: 20px;\n padding-bottom: 20px;\n`;\n\nconst BottomImage = styled.div`\n // position: absolute;\n // width: 100%;\n // height: 100%;\n // top: 0px;\n // left: 0px;\n\n width: 100%;\n height: 170px;\n opacity: 0.86;\n\n margin-bottom: 10px;\n\n background-image: url('/assets/images/main_logo.png');\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n`;\n\nconst PopupImage = styled.div`\n // position: absolute;\n // width: 100%;\n // height: 100%;\n // top: 0px;\n // left: 0px;\n\n width: 100%;\n height: 170px;\n opacity: 0.86;\n\n margin-bottom: 10px;\n\n background-image: url('/assets/images/icons/manager.png');\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n`;\n\nconst ContentRow = styled.p`\n // font-weight: 600;\n margin: 0px;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 2px;\n padding: 0px 16px;\n text-indent: 4px;\n\n word-break: keep-all;\n\n > span {\n color: ${Pallete.blue100};\n font-weight: bold;\n }\n`;\n\nconst WarningRow = styled.p`\n font-size: 13px;\n font-weight: 600;\n color: red;\n padding: 0px 16px;\n margin-top: 8px;\n`;\n\nconst WarningContentRow = styled.p`\n font-size: 13px;\n color: rgba(0, 0, 0, 0.7);\n // font-weight: bold;\n padding: 0px 16px;\n`;\n\nconst EndBottom = styled.div`\n padding: 6px 16px;\n display: flex;\n align-items: center;\n border-top: 1px solid #e6e6e6;\n background-color: #f5f5f5;\n`;\n\nconst CloseToday = styled.p`\n flex: 1;\n\n > span {\n font-size: 13px;\n margin-right: 4px;\n cursor: pointer;\n }\n\n > span:last-child {\n font-size: 13px;\n color: rgba(0, 0, 0, 0.4);\n cursor: pointer;\n }\n`;\n\nconst CloseNow = styled.p`\n font-size: 13px;\n color: rgba(0, 0, 0, 0.4);\n cursor: pointer;\n`;\n\nconst MessageRow = styled.p`\n font-size: 13px;\n font-weight: bold;\n color: #6e82d6;\n padding: 0px 16px;\n\n word-break: keep-all;\n\n a,\n span {\n text-decoration: none;\n font-size: 12px;\n font-weight: bold;\n color: #6e82d6;\n }\n\n // color: ${mainColor};\n`;\n\nconst Info = styled.p`\n font-size: 12px;\n fong-weight: bold;\n // margin-top: 16px;\n color: rgba(0, 0, 0, 0.6);\n padding: 0px 16px;\n`;\n","import React from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport styled from 'styled-components';\nimport { Button, message, Spin } from 'antd';\nimport _ from 'lodash';\n\n// components\nimport { NoCatchedList } from '../../../Components/User/Mate/reserve';\nimport { MateReserveInfoModal } from '../../../Components/modal';\n\n// utils\nimport { UNEMER } from '../../../Lib/variables';\nimport axios from '../../../Lib/axios';\n\nclass Reserve extends React.PureComponent {\n state = {\n reserveModal: false,\n reserveInfo: null,\n refreshing: false,\n list: [],\n };\n\n componentDidMount = () => {\n this.fetchList();\n };\n\n fetchList = debounce(() => {\n const mateId = localStorage.getItem('id');\n\n this.setState(\n {\n refreshing: true,\n },\n () => {\n axios\n .get('/v2/service/mate/reserve/list', {\n params: {\n mateId,\n },\n })\n .then(resolve => {\n const { data: list } = resolve;\n if (list && Array.isArray(list)) {\n this.setState({ list, refreshing: false });\n }\n })\n .catch(error => {\n this.setState({ refreshing: false });\n });\n },\n );\n }, 300);\n\n onCatchCall = () => {\n const { reserveInfo } = this.state;\n const { id } = this.props.auth;\n\n if (!reserveInfo || !reserveInfo.call || !reserveInfo.call._id) {\n this.setState({ reserveInfo: null, reserveModal: false });\n message.warning('유효하지않은 예약내역입니다. 다른 예약내역을 확인해주세요.');\n return null;\n }\n\n axios\n .put('/v2/service/catch/call', {\n callId: reserveInfo.call._id,\n mateId: id,\n })\n .then(resolve => {\n const { data: result } = resolve;\n if (!result) return message.warning('요청에 실패했습니다.');\n if (result === 'invalid call') return message.warning('잘못된 요청입니다.');\n if (result === 'already catched') return message.warning('이미 접수된 요청입니다.');\n if (result === 'denied') return message.warning('예약자에 의해 거절 당하셨거나 혹은 메이트님이 직접 해당 내역을 수신거부 하셨습니다.');\n if (result === 'success') {\n message.success('예약 접수 요청완료');\n this.setState({ reserveModal: false, reserveInfo: null }, () => {\n this.fetchList();\n });\n }\n })\n .catch(error => {\n message.warning('요청에 실패했습니다.');\n });\n };\n\n render() {\n const { list } = this.state;\n\n return (\n <>\n {\n this.setState({ reserveModal: true, reserveInfo: info });\n }}\n />\n\n {this.state.reserveModal ? (\n {\n this.setState({\n reserveModal: false,\n reserveInfo: null,\n });\n }}\n onCatch={this.onCatchCall}\n />\n ) : null}\n\n {this.state.refreshing ? (\n \n \n \n ) : null}\n \n );\n }\n}\n\nconst SpinWrapper = styled.div`\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n\n\n z-index: 9999\n background-color: rgba(0, 0, 0, 0.6);\n`;\n\nexport default Reserve;\n","import React from \"react\";\nimport AnimatedNumbers from \"react-animated-numbers\";\nimport styled from 'styled-components';\nimport { BsPeopleFill, BsNewspaper, BsClockFill } from \"react-icons/bs\";\n\nfunction MainNumber() {\n const [num, setNum] = React.useState(3021);\n const [num2, setNum2] = React.useState(289);\n const [num3, setNum3] = React.useState(16700);\n\n return (\n
\n
\n \n \n \n {\n return { mass: 1, tension: 430 * (index + 1), friction: 140 };\n }} />\n \n \n
  \n\n
\n \n \n {\n return { mass: 1, tension: 430 * (index + 1), friction: 140 };\n }}\n />\n \n
  \n\n
\n \n \n {\n return { mass: 1, tension: 430 * (index + 1), friction: 140 };\n }}\n suffix=\"건\"\n />\n \n
\n
\n );\n}\n\nexport default MainNumber;\n\nconst HighLight = styled.p`\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n\n margin-bottom: 64px;\n\n @media (max-width: 768px) {\n text-align: center;\n }\n`;","import { message } from 'antd';\nimport React from 'react';\nimport styled from 'styled-components';\nimport swal from 'sweetalert2';\nimport MainNumber from './MainNumber';\nimport Popup from './Popup';\nimport { ManagerPopup } from '../../../../Components/modal';\n\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport SwiperCore, { Pagination, Navigation, Autoplay } from 'swiper';\nimport 'swiper/swiper-bundle.min.css'\nimport 'swiper/swiper.min.css'\nimport 'swiper/components/navigation/navigation.min.css'\nimport 'swiper/components/pagination/pagination.min.css'\nimport { DivisionLine } from '../../../../Components/Common/input';\n\nSwiperCore.use([Navigation, Pagination, Autoplay])\n\nexport const UserMain = ({ history }) => {\n return (\n // \n // \n \n \n {/* 위드메이트를 사용하는 것, 일상을 돌려받는 것 */}\n 병원동행매니저가 케어부터 이동까지 다 해드립니다\n \n {/* 전국민 통원치료 해결사 */}\n 환우 가족들이 직접 추천하는\n \n \n 병원동행서비스\n \n
\n \n \n {\n window.open('https://play.google.com/store/apps/details?id=com.bluecamel.withmate')\n }}\n >\n 구글플레이\n Google Play\n \n \n \n\n \n {/* \n \n \n */}\n\n \n 병원동행매니저가 케어부터 이동까지
\n 위드메이트가 함께합니다.\n
\n \n {\n if (!localStorage.getItem('id')) {\n message.warning('병원 동행서비스 예약을 이용하시려면 로그인 후 이용해주세요.');\n return history.push('/user/login');\n }\n\n history.push('/reserve/items');\n }}\n >\n 온라인 예약하기\n 방향표\n \n {\n swal.fire({\n title: '위드메이트 고객센터',\n text: '☎ 070-4300-9075',\n icon: 'info',\n confirmButtonText: '전화걸기',\n cancelButtonText: '확인',\n showCancelButton: true,\n }).then(result => {\n if (result.isConfirmed) {\n (\n document.location.href = 'tel:070-4300-9075'\n )\n }\n });\n }}\n >\n 전화 상담하기\n 방향표\n \n \n
\n
\n
\n //
\n // \n );\n};\n\nconst UserMainContainer = styled.div`\n width: 100%;\n height: 628px;\n\n background: linear-gradient(to top, #3bc1ff, #5b62f5);\n\n @media (max-width: 768px) {\n // height: 598px;\n height: 650px;\n }\n`;\n\nconst UserMainContainer2 = styled.div`\n width: 100%;\n height: 628px;\n\n background: #f8f8fa;\n\n @media (max-width: 768px) {\n height: 598px;\n }\n`;\n\nconst UserMainInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n height: 100%;\n margin: 0 auto;\n\n background-image: url('/assets/images/w_main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: 72px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n padding-top: 52px;\n align-items: center;\n background: transparent;\n }\n`;\n\nconst UserMainInnerContainer2 = styled.div`\n width: 100%;\n max-width: 1120px;\n height: 100%;\n margin: 0 auto;\n\n background-image: url('/assets/images/collaboration/withmate_dlive.png');\n background-size: 90%;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: 72px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n padding-top: 52px;\n align-items: center;\n background: transparent;\n }\n`;\n\nconst TitleSticker = styled.span`\n height: 36px;\n\n padding: 8px 24px;\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: left;\n color: #ffffff;\n\n border-radius: 50vh;\n background-color: #3bc1ff;\n\n margin-bottom: 34px;\n\n @media (max-width: 768px) {\n margin-bottom: 34px;\n }\n`;\n\nconst WithmateSpecRow = styled.div`\n display: flex;\n align-items: flex-end;\n\n font-size: 32px;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n line-height: 1.48;\n letter-spacing: -0.7px;\n text-align: left;\n color: #ffffff;\n\n > span {\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: left;\n color: #ffffff;\n\n margin-left: 4px;\n }\n\n > span.big {\n font-size: 64px;\n line-height: 1.2;\n position: relative;\n margin-right: 6px;\n\n > d {\n font-size: 28px;\n position: absolute;\n top: -16px;\n left: calc(50% - 12px);\n }\n }\n\n > span.normal {\n font-size: 40px;\n line-height: 1.2;\n position: relative;\n margin-right: 6px;\n\n > d {\n font-size: 18px;\n position: absolute;\n top: -16px;\n left: calc(50% - 12px);\n }\n }\n\n margin-bottom: 4px;\n\n @media (max-width: 768px) {\n margin-bottom: 8px;\n\n font-size: 22px;\n\n > span {\n font-size: 22px;\n }\n\n > span.big {\n font-size: 48px;\n line-height: 1.2;\n position: relative;\n margin-right: 4px;\n\n > d {\n font-size: 20px;\n position: absolute;\n top: -16px;\n left: calc(50% - 8px);\n }\n }\n }\n`;\n\nconst BottomSection = styled.div`\n margin-top: 32px;\n\n @media (max-width: 768px) {\n margin-top: 43px;\n }\n`;\n\nconst HighLight = styled.p`\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: left;\n color: #ffffff;\n\n margin-bottom: 64px;\n\n @media (max-width: 768px) {\n text-align: center;\n }\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n\n > div:first-child {\n margin-bottom: 8px;\n }\n }\n`;\n\nconst ButtonCommon = styled.div`\n display: flex;\n padding: 20px 24px;\n width: 210px;\n align-items: center;\n justify-content: space-between;\n\n border-radius: 4px;\n margin-right: 8px;\n cursor: pointer;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n }\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n &:hover {\n box-shadow: 4px 10px 24px -4px rgba(0, 0, 0, 0.1);\n transition: all 0.3s;\n }\n\n @media (max-width: 768px) {\n }\n`;\n\nconst GPButtonCommon = styled.div`\n display: flex;\n padding: 20px 24px;\n width: 210px;\n align-items: center;\n // justify-content: space-between;\n\n border-radius: 4px;\n margin-right: 8px;\n cursor: pointer;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n }\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n &:hover {\n box-shadow: 4px 10px 24px -4px rgba(0, 0, 0, 0.1);\n transition: all 0.3s;\n }\n\n @media (max-width: 768px) {\n }\n`;\n\nconst ReserveButton = styled(ButtonCommon)`\n background-color: #ffffff;\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n }\n`;\n\nconst CallButton = styled(ButtonCommon)`\n border: 1px solid #ffffff;\n\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: #ffffff;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst GooglePlayButton = styled(GPButtonCommon)`\n background-color: #ffffff;\n background-color: rgba( 255, 255, 255, 0.1 );\n border-color: #ffffff;\n border-style: solid;\n font-size: 20px;\n // font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n // color: rgba(0, 0, 0, 0.7);\n color: #ffffff;\n height: 60px;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const UserVideoSection = () => {\n return (\n \n \n {/* \n 위드메이트를 사용하는 것,\n 일상을 돌려받는 것\n */}\n \n {/* */}\n \n \n \n \n );\n};\n\nconst VideoSectionContainer = styled.div`\n // padding-top: 105px;\n // padding-bottom: 208px;\n padding-top: 55px;\n padding-bottom: 55px;\n\n width: 100%;\n background-color: #f9f9f9;\n\n @media (max-width: 768px) {\n // padding-top: 62px;\n padding-top: 10px;\n // padding-bottom: 0px;\n padding-bottom: 10px;\n }\n`;\n\nconst VideoSectionInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst VideoSectionTitle = styled.h4`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.6);\n\n margin-top: 0px;\n margin-bottom: 105px;\n\n @media (max-width: 768px) {\n font-size: 14px;\n margin-bottom: 68px;\n }\n`;\n\nconst VideoArea = styled.div`\n width: 100%;\n height: calc(1120px / 16 * 9);\n background-color: #000000;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 1120px) {\n height: calc(100vw / 16 * 9);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: calc(100vw / 16 * 9);\n background-color: #000000;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const UserGuideSection = () => {\n return (\n \n \n 서비스 이용 방법\n \n 서비스 신청\n \n 동행 인력 매칭\n \n 병원 방문\n \n 서비스 결과 확인\n \n 후불 결제\n \n 혜택 적립\n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nconst MainStep = ({ webArrow, mArrow, source, num, name, description, className }) => {\n return (\n \n \n thumbnail\n \n\n \n {num}\n {name}\n \n {description.split('\\n').map((word, index) => (\n \n {word}\n \n \n ))}\n \n \n \n \n );\n};\n\nconst UserGuideContainer = styled.div`\n width: 100%;\n\n background-color: #ffffff;\n\n padding-top: 103px;\n padding-bottom: 162px;\n\n @media (max-width: 768px) {\n padding-top: 90px;\n padding-bottom: 130px;\n }\n`;\n\nconst UserGuideInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst UserGuideTitle = styled.h4`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n\n margin-top: 0px;\n margin-bottom: 32px;\n\n @media (max-width: 768px) {\n font-size: 16px;\n line-height: 1.42;\n letter-spacing: -0.1px;\n margin-bottom: 24px;\n }\n`;\n\nconst UserGuideStepWrapper = styled.div`\n width: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-bottom: 90px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n margin-bottom: 77px;\n }\n`;\n\nconst TextStep = styled.span`\n font-size: 15px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: normal;\n text-align: left;\n color: rgba(0, 0, 0, 0.6);\n`;\n\nconst ImgStep = styled.img`\n margin-left: 16px;\n margin-right: 16px;\n\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n transform: rotate(90deg);\n\n width: 16px;\n height: 16px;\n\n margin-left: 0px;\n margin-right: 0px;\n\n margin-top: 8px;\n margin-bottom: 8px;\n }\n`;\n\nconst MainStepRow = styled.div`\n display: flex;\n align-items: flex-start;\n\n > div:first-child {\n border-left: 0px;\n }\n\n > div:last-child {\n border-right: 0px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n\n > div:last-child {\n border-bottom: 0px;\n }\n\n > div.uniq {\n border-bottom: 1px solid #f2f2f2;\n }\n }\n`;\n\nconst MainStepWrapper = styled.div`\n padding-left: 47px;\n padding-right: 52px;\n border-right: 1px solid #f2f2f2;\n\n position: relative;\n\n > img.arrow {\n width: 24px;\n height: 24px;\n\n position: absolute;\n top: calc(90px - 12px);\n right: -11.5px;\n\n display: none;\n }\n\n > img.mobile {\n display: none;\n }\n\n > img.web {\n display: block;\n }\n\n @media (max-width: 768px) {\n border-right: 0px;\n border-bottom: 1px solid #f2f2f2;\n\n > img.arrow {\n width: 24px;\n height: 24px;\n\n top: unset;\n right: unset;\n bottom: -10px;\n left: calc(50% - 12px);\n\n transform: rotate(90deg);\n }\n\n > img.web {\n display: none;\n }\n\n > img.mobile {\n display: block;\n }\n }\n\n @media (max-width: 768px) {\n padding-right: 0px;\n padding-left: 0px;\n padding-bottom: 44px;\n }\n`;\n\nconst MainStepImageSection = styled.div`\n width: 288px;\n height: 180px;\n\n margin-bottom: 24px;\n\n > img.bg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n @media (max-width: 768px) {\n width: 100%;\n text-align: center;\n }\n`;\n\nconst MainStepTextSection = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n`;\n\nconst StepIndex = styled.span`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: normal;\n text-align: center;\n color: #afb0b2;\n margin-bottom: 8px;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst StepTitle = styled.span`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n margin-bottom: 24px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n }\n`;\n\nconst StepDescription = styled.span`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n }\n word-break: keep-all;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst KeepBr = styled.br`\n display: block;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const UserMainBanner = ({ goPage }) => (\n \n \n 위드메이트에 대해 더 알고 싶으시죠?
\n 위드메이트를 소개해드릴게요!\n
\n \n 위드메이트 소개\n \n \n
\n);\n\nconst BannerContainer = styled.div`\n width: 100%;\n background-color: #3bc1ff;\n\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n padding: 48px 0px;\n\n @media (max-width: 480px) {\n padding-top: 67px;\n padding-bottom: 51px;\n }\n`;\n\nconst Description = styled.p`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: center;\n color: #ffffff;\n\n margin-bottom: 24px;\n\n > br {\n display: none;\n @media (max-width: 480px) {\n display: block;\n }\n }\n`;\n\nconst LinkButton = styled.a`\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: 1px solid #ffffff;\n border-radius: 50vh;\n\n padding: 20px 24px;\n\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: #ffffff;\n\n cursor: pointer;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n margin-left: 18px;\n }\n &:hover {\n background-color: transparent;\n color: #ffffff;\n }\n`;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../theme';\n\nconst HomeStyledContainer = styled.div`\n padding-top: 55px;\n\n .center-title {\n text-align: center;\n margin-bottom: 28px;\n\n > p {\n height: 52px;\n line-height: 52px;\n margin-bottom: 0px;\n font-size: 28px;\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n\n .ant-collapse > .ant-collapse-item > .ant-collapse-header {\n padding: 0px;\n }\n\n .ant-collapse-borderless > .ant-collapse-item {\n border: 0px;\n }\n\n .ant-collapse-content > .ant-collapse-content-box {\n padding: 0px;\n padding-top: 4px;\n padding-bottom: 12px;\n }\n\n .fake-input {\n width: 100%;\n height: 36px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n }\n\n .main-section {\n position: relative;\n width: 100%;\n height: 100vh;\n max-height: 628px;\n // min-height: calc(100vh - 55px);\n\n // background-color: #ebf9ff;\n // background-image: url('/assets/images/new_mainbg.png');\n background-color: linear-gradient(to top, #3bc1ff, #5b62f5);\n background-image: url('/assets/images/w_main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 768px) {\n background-image: url('/assets/images/new_mainbg-mobile.png');\n min-height: 86vh;\n\n .inner-container {\n padding: 0px;\n padding-bottom: 30px;\n min-height: 86vh;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n }\n }\n\n .ant-input[disabled] {\n color: rgba(0, 0, 0, 0.7);\n }\n .ant-input {\n font-size: 12px;\n }\n\n .order-menu-wrapper {\n width: 50%;\n position: relative;\n max-width: 440px;\n min-width: 370px;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n\n .mobile-close-button {\n display: none;\n }\n\n @media (max-width: 768px) {\n display: none;\n\n &.active {\n display: block;\n }\n\n margin: 0px auto;\n position: fixed;\n z-index: 99;\n top: 55px;\n left: 0px;\n width: 100%;\n max-width: 100%;\n height: calc(100vh - 55px);\n overflow: scroll;\n border-radius: 0px;\n\n .mobile-close-button {\n display: block;\n position: absolute;\n top: 16px;\n right: 24px;\n padding: 6px;\n cursor: pointer;\n\n img {\n width: 18px;\n height: 18px;\n }\n }\n\n &.blocked {\n z-index: 0;\n position: relative;\n height: auto;\n overflow: auto;\n }\n }\n\n .order-title {\n margin-bottom: 20px;\n\n p {\n margin: 0px;\n padding: 0px;\n font-size: ${sizeHandler(28)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .service {\n margin-bottom: 20px;\n\n .time-checker {\n width: calc(50% - 4px);\n }\n\n .time-checker.margin {\n margin-right: 8px;\n }\n\n .search-button {\n position: absolute;\n top: 1px;\n right: 1px;\n background-color: #ececec;\n height: 34px;\n width: 50px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n\n font-size: 12px;\n line-height: 34px;\n text-align: center;\n cursor: pointer;\n color: rgba(0, 0, 0, 0.4);\n }\n\n .service-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ddd;\n border-radius: 6px;\n\n .tab {\n flex: 1;\n height: 48px;\n border-right: 1px solid #ddd;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:last-child {\n border: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.2px;\n font-weight: bold;\n color: ${mainColor};\n }\n }\n\n .tab.active {\n background-color: ${mainColor};\n\n span {\n color: white;\n }\n }\n }\n\n .info-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n text-align: left;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n }\n\n .info-input-tab {\n display: flex;\n align-items: center;\n\n > div {\n flex: 1;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n\n .name-wrapper {\n position: relative;\n\n .sex-type-wrapper {\n position: absolute;\n top: 1px;\n right: 1px;\n z-index: 3;\n background-color: white;\n\n .sex-type {\n display: inline-block;\n width: 34px;\n height: 34px;\n line-height: 36px;\n text-align: center;\n border-left: 1px solid #e6e6e6;\n\n font-size: ${sizeHandler(14)};\n font-weight: normal;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n cursor: pointer;\n\n &:hover {\n color: rgba(0, 0, 0, 0.3);\n transition: all 0.3s;\n }\n\n &.active {\n color: ${mainColor};\n }\n }\n }\n }\n\n .input {\n flex-grow: 1;\n display: flex;\n min-width: 0;\n align-items: center;\n\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n min-height: 36px;\n line-height: 36px;\n text-indent: 12px;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n background-color: #f5f5f5;\n cursor: not-allowed;\n\n p {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n // .ant-input {\n // color: rgba(0, 0, 0, 0.8);\n // }\n\n &.phone {\n flex: 0.5;\n\n @media (max-width: 768px) {\n flex: 1;\n }\n }\n\n &.input-with-icon {\n p {\n height: 100%;\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n div {\n height: 100%;\n width: 36px;\n border-left: 1px solid #e6e6e6;\n display: flex;\n justify-content: center;\n align-items: center;\n\n span {\n text-align: center;\n text-indent: 0px;\n // opacity: 0.3;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n img {\n width: 18px;\n }\n }\n }\n }\n }\n }\n\n .service-fee-wrapper {\n margin-bottom: 32px;\n\n .service {\n display: flex;\n align-items: center;\n padding-top: 12px;\n margin-bottom: 0px;\n\n .name {\n flex: 1;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n .ant-input-number-input {\n height: 100%;\n }\n\n input {\n height: 100%;\n }\n }\n\n .select {\n display: inline-block;\n height: 36px;\n width: 100%;\n\n .ant-select-selection--single {\n height: 100%;\n }\n\n .ant-select-selection__rendered {\n line-height: 36px;\n }\n }\n\n .info {\n font-size: ${sizeHandler(12)};\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n letter-spacing: -0.15px;\n }\n\n .ant-select-selection__rendered {\n margin-right: 34px;\n border-right: 1px solid #e6e6e6;\n }\n\n .ant-select-arrow {\n color: ${mainColor};\n }\n\n .image-with-text {\n display: flex;\n align-items: center;\n img {\n height: 18px;\n border: 0px;\n }\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n margin-left: 12px;\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: #3bc1ff;\n }\n }\n }\n\n .side-summary-tab {\n position: absolute;\n top: 0px;\n right: -380px;\n width: 360px;\n height: 100%;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n border-radius: 0px;\n box-shadow: none;\n padding: 0px;\n position: relative;\n top: 55px;\n left: 0px;\n background-color: transparent;\n }\n\n .refund-info-wrapper {\n flex: 1;\n display: flex;\n align-items: flex-end;\n\n .info-wrapper {\n width: 100%;\n\n .title {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: #a7a7a7;\n margin-bottom: 8px;\n }\n\n .info {\n font-size: ${sizeHandler(10)};\n line-height: ${sizeHandler(16)};\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n margin-top: 36px;\n padding-bottom: 20px;\n\n .info {\n margin-bottom: 60px;\n }\n }\n }\n }\n }\n }\n }\n\n .additional-fee {\n p {\n margin: 0px;\n padding: 0px;\n margin-top: 8px;\n font-size: ${sizeHandler(10)};\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .ant-input-number {\n width: 100%;\n height: 48px;\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n .ant-input-number-input {\n height: 100%;\n }\n\n input {\n height: 100%;\n }\n }\n\n .ant-input-number-handler-wrap {\n opacity: 1;\n width: 48px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n\n i {\n position: relative;\n margin-top: 0px;\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n font-size: 16px;\n }\n }\n .anticon.anticon-up.ant-input-number-handler-up-inner {\n color: ${mainColor};\n }\n .anticon.anticon-down.ant-input-number-handler-down-inner {\n color: ${mainColor};\n }\n }\n }\n\n .total-fee-wrapper {\n padding: 18px 0px;\n border-top: 1px solid #e6e6e6;\n border-bottom: 1px solid #e6e6e6;\n\n .total-fee {\n display: flex;\n align-items: center;\n\n .total-min {\n flex: 1;\n font-size: ${sizeHandler(14)};\n // font-weight: bold;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee-min {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.5px;\n text-align: right;\n // font-weight: bold;\n // color: #3bc1ff;\n\n color: rgba(0, 0, 0, 0.7);\n }\n\n span.vat {\n font-size: ${sizeHandler(11)};\n color: #565656;\n }\n }\n\n .total {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n text-align: right;\n color: #3bc1ff;\n }\n }\n\n // 여기\n .service-section {\n .concept-container {\n margin-bottom: 68px;\n\n .concept-title {\n font-size: 24px;\n font-weight: bold;\n line-height: 2.17;\n letter-spacing: -0.67px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 12px;\n }\n\n .concept-body {\n font-size: 18px;\n font-weight: normal;\n line-height: 1.78;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n @media (max-width: 768px) {\n font-size: 16px;\n }\n }\n }\n\n .service-item:last-child {\n border-top: 1px solid #e6e6e6;\n margin-top: 96px;\n padding-top: 96px;\n }\n\n .service-item {\n .service-name {\n p {\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n position: relative;\n\n .stamp {\n margin-left: 20px;\n padding: 8px 12px;\n border-radius: 4px;\n background-color: #ff0052;\n font-size: 10px;\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n\n position: absolute;\n bottom: 6px;\n }\n }\n\n margin-bottom: 12px;\n }\n\n .mobile {\n display: none;\n }\n\n .desktop {\n display: block;\n }\n\n .service-info {\n display: flex;\n align-items: center;\n\n .service-photo {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 60px;\n\n img {\n // height: 100%;\n width: 100%;\n }\n }\n\n .info-wrapper {\n flex: 2;\n\n .main-description {\n font-size: ${sizeHandler(18)};\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -0.3px;\n margin-bottom: 32px;\n\n @media (max-width: 768px) {\n font-size: 16px;\n }\n }\n\n .service-detail {\n display: flex;\n align-item: center;\n\n .target-price {\n // flex: ;\n min-width: 240px;\n\n .target {\n margin-bottom: 36px;\n }\n }\n\n .scheme {\n flex: 1;\n margin-left: 20px;\n\n .scheme-items {\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n height: 38px;\n line-height: 38px;\n margin: 0px;\n padding: 0px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n border-bottom: 1px solid #e6e6e6;\n }\n\n .ps {\n font-size: ${sizeHandler(14)};\n color: ${mainColor};\n // font-weight: bold;\n height: 28px;\n line-height: 28px;\n\n &:nth-child(2n-1) {\n color: #ff5500;\n }\n }\n }\n }\n\n .detail-button-wrapper {\n min-width: 240px;\n margin-top: 40px;\n background-color: #606060;\n border-radius: 4px;\n height: 48px;\n cursor: pointer;\n\n p {\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 48px;\n font-size: ${sizeHandler(14)};\n color: white;\n font-weight: bold;\n }\n }\n\n .reserve-button-wrapper {\n flex: 1;\n\n margin-top: 40px;\n background-color: ${mainColor};\n border-radius: 4px;\n height: 48px;\n cursor: pointer;\n\n p {\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 48px;\n font-size: ${sizeHandler(14)};\n color: white;\n font-weight: bold;\n }\n }\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 36px;\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .price-content {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n color: #606060;\n letter-spacing: -0.3px;\n }\n\n .info-container {\n .spec-title {\n font-size: 18px;\n font-weight: bold;\n line-height: 1.56;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .spec-wrapper {\n padding: 8px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n .spec-row {\n font-size: 14px;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n }\n\n .spec-sub {\n font-size: 12px;\n letter-spacing: -0.26px;\n color: #a7a7a7;\n margin: 0px;\n margin-top: 4px;\n }\n }\n }\n\n .button-container {\n display: flex;\n align-items: center;\n margin-top: 32px;\n\n .button {\n border-radius: 4px;\n height: 48px;\n line-height: 48px;\n text-align: center;\n cursor: pointer;\n\n &.video-button {\n width: 285px;\n background-color: #606060;\n margin-right: 20px;\n\n &:hover {\n transition: all 0.3s;\n background-color: #707070;\n }\n }\n\n &.reserve-button {\n background-color: #3bc1ff;\n flex: 1;\n\n &:hover {\n transition: all 0.3s;\n background-color: #54c9ff;\n }\n }\n\n span {\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n }\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n\n .button {\n width: 100% !important;\n margin-right: 0px !important;\n height: 40px;\n line-height: 40px;\n\n &:last-child {\n margin-top: 16px;\n }\n }\n }\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n .service-item {\n .service-name {\n p {\n font-size: ${sizeHandler(30)};\n\n .stamp {\n padding: 4px 8px;\n bottom: 8px;\n }\n }\n }\n\n .service-info {\n display: block;\n\n .service-photo {\n margin-top: 40px;\n padding-left: 0px;\n\n img {\n width: 100%;\n }\n }\n\n .info-wrapper {\n width: 100%;\n\n > p {\n font-size: ${sizeHandler(16)};\n }\n\n .service-detail {\n flex-direction: column;\n\n .service-photo {\n display: none;\n }\n\n .scheme {\n margin: 0px;\n }\n }\n\n .detail-button-wrapper {\n display: block;\n width: 100%;\n height: 40px;\n\n p {\n line-height: 40px;\n }\n }\n\n .reserve-button-wrapper {\n display: block;\n width: 100%;\n height: 40px;\n\n p {\n line-height: 40px;\n }\n }\n .mobile {\n display: block;\n }\n\n .desktop {\n display: none;\n }\n }\n }\n }\n }\n }\n\n .reserve-section {\n .menu-top {\n display: flex;\n align-items: flex-end;\n margin-bottom: 16px;\n\n .main-title {\n flex: 1;\n font-size: 28px;\n font-weight: bold;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .sub-button {\n color: ${mainColor};\n font-weight: bold;\n font-size: 14px;\n cursor: pointer;\n }\n }\n\n .menu-bottom {\n .reserve-menu {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n margin-bottom: 12px;\n border-radius: 4px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n\n .title {\n color: #a7a7a7;\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n }\n\n .contents {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n margin: 0px;\n padding: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .service-name {\n flex: 0.7;\n .contents {\n color: ${mainColor};\n }\n }\n\n .user {\n flex: 0.5;\n }\n\n .date {\n flex: 0.7;\n }\n\n .hospital {\n flex: 1;\n }\n\n .status {\n flex: 0.4;\n }\n\n .button {\n flex: 0.5;\n > div {\n display: flex;\n height: 48px;\n border-radius: 4px;\n align-items: center;\n justify-content: center;\n border: 1px solid ${mainColor};\n cursor: pointer;\n transition: all 0.3s;\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: ${mainColor};\n }\n\n &:hover {\n background-color: ${mainColor};\n span {\n color: white;\n }\n }\n }\n }\n\n .content.service {\n color: ${mainColor};\n }\n }\n @media (max-width: 768px) {\n .reserve-menu {\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n\n .contents {\n margin-bottom: 20px;\n }\n\n .button {\n width: 100%;\n > div {\n height: 40px;\n }\n }\n }\n }\n }\n }\n\n .section-title {\n padding-bottom: 16px;\n border-bottom: 1px solid #ececec;\n margin-bottom: 48px;\n\n p {\n font-size: ${sizeHandler(18)};\n color: #a7a7a7;\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n opacity: 1;\n }\n }\n\n .order-menu-mobile-wrapper {\n // position: absolute;\n // bottom: 68px;\n // left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n width: 100%;\n padding: 10px;\n\n p {\n text-align: center;\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: white;\n }\n\n p:nth-child(1) {\n font-size: ${sizeHandler(14)};\n font-weight: normal;\n letter-spacing: -0.3px;\n text-align: center;\n color: white;\n lineheight: ${sizeHandler(20)};\n }\n\n button {\n width: 100%;\n height: 56px;\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n margin-top: 28px;\n }\n\n @media (min-width: 768px) {\n display: none;\n }\n }\n`;\n\nexport default HomeStyledContainer;\n\nexport const UserMainContainer = styled.div`\n width: 100%;\n // min-height: calc(100vh - 55px);\n // background-image: url('/assets/images/');\n\n height: 100vh;\n max-height: 628px;\n\n background-color: linear-gradient(to top, #3bc1ff, #5b62f5);\n background-image: url('/assets/images/w_main.png');\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: calc((100vh - 55px) * 0.2);\n\n @media (max-width: 768px) {\n background-size: cover;\n background-image: url('/assets/images/new_mainbg-mobile.png');\n\n min-height: initial;\n height: 600px;\n\n padding-top: 354px;\n }\n`;\n\nexport const InnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n\n @media (max-width: 1120px) {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n @media (max-width: 768px) {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nexport const UserMainTitle = styled.div`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 50px;\n line-height: 66px;\n\n letter-spacing: -1.44444px;\n\n color: #ffffff;\n\n position: relative;\n margin-bottom: 16px;\n\n @media (max-width: 768px) {\n > br {\n display: block;\n }\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 22px;\n line-height: 30px;\n\n text-align: center;\n color: #ffffff;\n\n margin-bottom: 4px;\n }\n`;\n\nexport const UserMainTitleDeco = styled.img`\n position: absolute;\n\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const DecoRight = styled(UserMainTitleDeco)`\n top: 0px;\n left: 240px;\n\n width: 32px;\n height: 32px;\n`;\n\nexport const DecoLeft = styled(UserMainTitleDeco)`\n top: 36px;\n left: -60px;\n\n width: 22px;\n height: 22px;\n`;\n\nexport const DecoLeftTop = styled(UserMainTitleDeco)`\n top: -52px;\n left: -62px;\n\n width: 62px;\n height: 62px;\n`;\n\nexport const UserMainSubtitle = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 22px;\n line-height: 30px;\n color: rgba(255, 255, 255, 0.8);\n letter-spacing: -0.4px;\n\n margin-bottom: 44px;\n\n @media (max-width: 768px) {\n font-weight: normal;\n font-size: 12px;\n line-height: 22px;\n letter-spacing: -0.3px;\n text-align: center;\n\n margin-bottom: 24px;\n }\n`;\n\nexport const UserMainRoute = styled.div`\n width: 100%;\n\n @media (max-width: 768px) {\n text-align: center;\n }\n`;\n\nexport const UserMainRouteButton = styled.a`\n display: inline-block;\n width: 100%;\n max-width: 360px;\n height: 64px;\n line-height: 64px;\n\n background: #3bc1ff;\n border: 1px solid #3bc1ff;\n box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 19px;\n letter-spacing: 0.2;\n\n text-align: center;\n\n color: #ffffff;\n cursor: pointer;\n\n &:hover {\n transition: 0.5s;\n opacity: 0.85;\n }\n\n @media (max-width: 768px) {\n width: calc(100vw - 20px);\n max-width: 360px;\n\n height: 56px;\n line-height: 56px;\n font-size: 16px;\n\n margin: 0 auto;\n }\n`;\n\nexport const PartnerContainer = styled.div`\n width: 100%;\n\n padding-top: 60px;\n padding-bottom: 60px;\n\n @media (max-width: 768px) {\n margin-top: 40px;\n }\n`;\n\nexport const PartnerInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n\n margin: 0 auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n position: relative;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none;\n }\n\n @media (max-width: 768px) {\n padding-left: 24px;\n padding-right: 24px;\n }\n`;\n\nexport const PartnerTitle = styled.div`\n display: flex;\n flex-direction: column;\n width: auto;\n\n align-items: center;\n margin-top: 10px;\n margin-bottom: 46px;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n margin-bottom: 16px;\n }\n\n > span {\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n // color: #3bc1ff;\n }\n\n @media (max-width: 1120px) {\n width: 100%;\n text-align: left;\n }\n`;\n\nexport const PartnerListRow = styled.div`\n display: flex;\n width: 100%;\n\n justify-content: space-between;\n align-items: center;\n text-align: center;\n flex-wrap: wrap;\n\n @media (max-width: 768px) {\n justify-content: flex-start;\n }\n\n @media (max-width: 480px) {\n justify-content: space-between;\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n`;\n\nexport const PartnerItem = styled.div`\n margin-bottom: 10px;\n\n width: 215px;\n height: 76px;\n\n border-radius: 4px;\n // box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n // border: 1px solid rgba(0, 0, 0, 0.1);\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n transform: scale(1.1);\n }\n\n @media (max-width: 768px) {\n margin-right: 8px;\n margin-bottom: 8px;\n }\n\n @media (max-width: 480px) {\n width: calc(50% - 4px);\n height: calc((50vw - 24px) * 0.35);\n }\n`;\n\nexport const SectionHeader = styled.div`\n padding-bottom: 10px;\n margin-bottom: 66px;\n\n border-bottom: 1px solid #e9e9e9;\n\n display: flex;\n align-items: flex-end;\n\n > img {\n width: 58px;\n height: 76px;\n object-fit: contain;\n\n margin-right: 16px;\n }\n\n > span {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 26px;\n line-height: 50px;\n\n text-align: center;\n letter-spacing: -0.777778px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n > img {\n width: 48px;\n height: 48px;\n\n margin-bottom: 10px;\n }\n\n > span {\n font-size: 20px;\n line-height: 32px;\n text-align: center;\n letter-spacing: -0.555556px;\n }\n }\n`;\n\nexport const ServiceListContainer = styled.div`\n margin-bottom: 102px;\n\n @media (max-width: 1120px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nexport const ServiceListInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n\n margin: 0 auto;\n`;\n\nexport const ServiceBoxWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const ServiceBoxContainer = styled.div`\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n margin-right: 0px;\n }\n\n margin-bottom: 46px;\n`;\n\nexport const ServiceBoxHeader = styled.div`\n > p:first-child {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n line-height: 26px;\n\n letter-spacing: -0.3px;\n }\n\n > p:last-child {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 32px;\n\n letter-spacing: -0.6px;\n }\n`;\n\nexport const ServiceBoxImageWrapper = styled.div`\n border-radius: 6px;\n overflow: hidden;\n`;\n\nexport const ServiceBoxImg = styled.img`\n width: calc((1120px / 3) - (40px / 3));\n max-width: 360px;\n object-fit: contain;\n\n @media (max-width: 1120px) {\n max-width: 280px;\n }\n\n @media (max-width: 900px) {\n max-width: 240px;\n }\n\n @media (max-width: 768px) {\n max-width: 300px;\n }\n`;\n\nexport const ServiceBoxButtons = styled.div`\n width: 100%;\n display: flex;\n\n margin-top: -12px;\n`;\n\nexport const MoreButton = styled.a`\n width: 132px;\n height: 48px;\n\n text-align: center;\n line-height: 48px;\n\n background: #606060;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 13px;\n\n color: #ffffff;\n\n cursor: pointer;\n`;\n\nexport const ActionButton = styled.span`\n flex: 1;\n\n height: 48px;\n line-height: 48px;\n\n text-align: center;\n\n background: #3bc1ff;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 13px;\n\n color: #ffffff;\n\n > img {\n margin-right: 6px;\n\n width: 18px;\n height: 18px;\n object-fit: contain;\n }\n\n cursor: pointer;\n`;\n\nexport const IntroduceSection = styled.div`\n display: flex;\n align-items: center;\n\n margin-bottom: 40px;\n\n > div {\n width: 50%;\n flex: 1;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const IntroduceSectionFst = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n order: 2;\n width: 100%;\n\n p {\n text-align: center;\n }\n }\n }\n\n div.img-block {\n position: relative;\n text-align: center;\n\n display: flex;\n align-items: center;\n height: 100px;\n\n img {\n position: absolute;\n bottom: -50px;\n\n left: 5%;\n\n width: 50%;\n object-fit: contain;\n }\n\n @media (max-width: 768px) {\n order: 1;\n width: 100%;\n justify-content: center;\n\n margin-bottom: 14px;\n\n > img {\n position: initial;\n }\n }\n }\n`;\n\nexport const IntroduceSectionSnd = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n div.img-block {\n text-align: center;\n width: 100%;\n\n img {\n width: 50%;\n object-fit: cover;\n\n @media (max-width: 768px) {\n object-fit: contain;\n margin-bottom: 14px;\n }\n }\n }\n`;\n\nexport const IntroduceSectionTrd = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n div.img-block {\n text-align: center;\n width: 100%;\n\n img {\n width: 50%;\n object-fit: cover;\n\n @media (max-width: 768px) {\n width: 65%;\n object-fit: contain;\n margin-bottom: 14px;\n }\n }\n }\n`;\n\nexport const IntroduceTitle = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 22px;\n line-height: 48px;\n\n letter-spacing: -0.666667px;\n\n color: rgba(0, 0, 0, 0.8);\n\n @media (max-width: 768px) {\n font-size: 18px;\n line-height: 28px;\n letter-spacing: -0.5px;\n }\n`;\n\nexport const IntroduceContent = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: ${props => (props.small ? '13px' : '16px')};\n line-height: ${props => (props.small ? '22px' : '30px')};\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n word-break: keep-all;\n font-size: ${props => (props.small ? '12px' : '14px')};\n line-height: ${props => (props.small ? '20px' : '23px')};\n }\n`;\n\nexport const MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const DesktopBr = styled.br`\n display: block;\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const SpecListRow = styled.div`\n display: flex;\n align-items: flex-start;\n\n width: 100%;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const SpecWrapper = styled.div`\n margin-bottom: 28px;\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0px;\n }\n\n width: calc((100% / 3) - (40px / 3));\n\n @media (max-width: 768px) {\n width: 100%;\n margin-right: 0px;\n }\n`;\n\nexport const SpecIndex = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n line-height: 16px;\n\n letter-spacing: -0.333333px;\n color: rgba(0, 0, 0, 0.2);\n\n margin-bottom: 4px;\n`;\n\nexport const SpecTitleWrapper = styled.div`\n display: flex;\n align-items: center;\n\n text-align: left;\n\n > img {\n width: 24px;\n height: 24px;\n\n margin-right: 8px;\n object-fit: contain;\n }\n\n > span {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 44px;\n\n letter-spacing: -0.666667px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n`;\n\nexport const SpecContent = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 22px;\n\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 0px;\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n br {\n display: block;\n }\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n width: 360px;\n\n > div,\n span,\n a {\n width: calc(50% - 4px);\n }\n\n @media (max-width: 768px) {\n margin: 0 auto;\n }\n`;\n","import { message } from 'antd';\nimport React from 'react';\nimport styled from 'styled-components';\nimport swal from 'sweetalert2';\nimport Withmate from '../renew/img/new-gov-care.png';\n\nimport { PartnerListRow } from '../../home.styled';\n\nexport const UserSiteBanner = ({ }) => {\n \n // const baseUrl = '/assets/images/partners/';\n // const fstRow = [\n // baseUrl + 'new-goyang.png',\n // baseUrl + 'ajuuniv.png',\n // baseUrl + 'new-gov-care.png',\n // baseUrl + 'new-goyang-happy.png',\n // baseUrl + 'new-goyang-society.png',\n // ];\n // const sndRow = [\n // baseUrl + 'new-junglang-woman.png',\n // baseUrl + 'new-paju_woman.png',\n // baseUrl + 'new-beatus.png',\n // baseUrl + 'new-cheongdam.png',\n // baseUrl + 'new-hyo-hospital.png',\n // ];\n\n return (\n \n \n \n 위드메이트 파트너\n \n\n \n {\n //window.location.href = \"http://www.naver.com\" // 현재 페이지에서 열기\n window.open(\"http://www.naver.com\") //새로운 창에서 열기\n }}/>\n {\n window.location.href = \"http://www.daum.net\"\n }}/>\n {\n window.location.href = \"http://www.google.com\"\n }}/>\n {\n window.location.href = \"http://www.nate.com\"\n }}/>\n \n

\n \n {\n window.location.href = \"http://www.naver.com\"\n }}/>\n {\n window.location.href = \"http://www.naver.com\"\n }}/>\n {\n window.location.href = \"http://www.naver.com\"\n }}/>\n {\n window.location.href = \"http://www.naver.com\"\n }}/>\n \n
\n
\n );\n};\n\nconst UserMainContainer = styled.div`\n width: 100%;\n height: 350px;\n\n background: #fff;\n\n @media (max-width: 768px) {\n height: 598px;\n }\n`;\n\nconst UserMainInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n height: 100%;\n margin: 0 auto;\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: 22px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n padding-top: 52px;\n align-items: center;\n background: transparent;\n }\n`;\n\nconst ButtonCommon = styled.div`\n display: flex;\n padding: 20px 24px;\n width: 210px;\n align-items: center;\n justify-content: space-between;\n\n border-radius: 4px;\n margin-right: 70px;\n cursor: pointer;\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n &:hover {\n box-shadow: 4px 10px 24px -4px rgba(0, 0, 0, 0.1);\n transition: all 0.3s;\n }\n\n @media (max-width: 768px) {\n }\n`;\n\nconst BannerButton = styled(ButtonCommon)`\n background-image: url(${Withmate});\n width: 210px;\n height: 65px;\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n }\n`;\n\nexport const PartnerTitle = styled.div`\n display: flex;\n flex-direction: column;\n width: auto;\n\n align-items: center;\n margin-top: 10px;\n margin-bottom: 46px;\n\n > span {\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n color: #3bc1ff;\n }\n\n @media (max-width: 1120px) {\n width: 100%;\n text-align: left;\n }\n`;\n\n","import React from 'react';\nimport CountUp from 'react-countup';\nimport styled from 'styled-components';\n\nimport { DivisionLine, WithmateLabel } from '../../../../Components/Common/input';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUsers, faHospitalUser } from '@fortawesome/free-solid-svg-icons';\nimport { faRectangleList } from '@fortawesome/free-regular-svg-icons';\n\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport SwiperCore, { Pagination, Navigation, Autoplay } from 'swiper';\nimport 'swiper/swiper-bundle.min.css';\nimport 'swiper/swiper.min.css';\nimport 'swiper/components/navigation/navigation.min.css';\nimport 'swiper/components/pagination/pagination.min.css';\nimport { MobileBr } from '../../home.styled';\nimport { Button } from 'antd';\n\nSwiperCore.use([Navigation, Pagination, Autoplay]);\n\nexport const UserNumberCount = () => {\n function handleClick(e) {\n window.location.href = '/review/list';\n }\n\n return (\n
\n \n
\n \n 총 가입자 수\n \n
\n \n
\n\n
\n \n \n 메이트 수\n \n
\n \n
\n\n
\n \n 총 이용 건수\n \n
\n \n
\n
\n \n \n 만족도 200% 이용 후기와 서비스 만족도 98% \n \"위드메이트\" 에게 맡겨주세요\n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n 이용후기 더보기\n \n
\n );\n};\n\nconst ReviewContainer = styled.div`\n width: 42%;\n margin-top: 10px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst ReviewMainContainer = styled.div`\n width: 100%;\n height: 330px;\n\n @media (max-width: 768px) {\n height: 330px;\n }\n`;\n\nconst ReviewMainInnerContainer = styled.div`\n max-width: 500px;\n height: 100%;\n margin: 0 auto;\n\n padding-top: 10px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst RollingContainer = styled.div`\n padding-top: 10px;\n padding-bottom: 20px;\n justify-content: center;\n display: flex;\n flex-direction: initial;\n background-color: #f9f9f9;\n\n .numberCount {\n font-size: 35px;\n }\n\n @media (max-width: 768px) {\n justify-content: center;\n\n .numberCount {\n font-size: 20px;\n }\n }\n`;\n\nconst ImgStyle = styled.div`\n width: 330px;\n height: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n\n @media (max-width: 768px) {\n width: 280px;\n height: auto;\n }\n`;\n\nconst SatisfactionContainer = styled.label`\n padding-top: 20px;\n justify-content: center;\n display: flex;\n flex-direction: initial;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst SatisfactionLabel = styled.label`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n\n @media (max-width: 768px) {\n font-size: 15px;\n }\n`;\n\nconst NumberLabel = styled.label`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 20px;\n\n @media (max-width: 768px) {\n font-size: 12px;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { fontSize } from '../../../theme';\n\n// components\nimport { PartnerContainer, PartnerInnerContainer, PartnerTitle, PartnerListRow, PartnerItem } from '../home.styled';\n\nexport const WithmatePartners = ({}) => {\n const baseUrl = '/assets/images/partners/';\n const fstRow = [\n baseUrl + 'new-gov-care.png',\n baseUrl + 'new-goyang.png',\n baseUrl + 'new-cancel.png',\n baseUrl + 'aju.png',\n baseUrl + 'new-goyang-happy.png',\n ];\n const sndRow = [\n baseUrl + 'new-junglang-woman.png',\n baseUrl + 'new-paju_woman.png',\n baseUrl + 'new-beatus.png',\n baseUrl + 'new-cheongdam.png',\n baseUrl + 'new-hyo-hospital.png',\n ];\n\n const trdRow = [baseUrl + 'ssn.png', baseUrl + 'limo-korea.png', baseUrl + 'help-you.png', baseUrl + 'errichi.png', baseUrl + 'new-imagine-us.png'];\n\n const fthRow = [baseUrl + 'iu-hosp.png', baseUrl + 'new-gpcop.png', baseUrl + 'goyohanM.png', baseUrl + 'carehouse.jpeg', baseUrl + 'bravo.png'];\n\n const ftfRow = [baseUrl + 'dlive.png', baseUrl + 'sungmo.png', baseUrl + 'metlife.png', baseUrl + 'aju_nursing_hospital.png'];\n\n return (\n \n \n \n \n 파트너사\n \n

위드메이트와 함께하는 협력 파트너사입니다.

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n};\n","import React from 'react';\nimport { message as Message } from 'antd';\n\nimport { MATE } from '../../Lib/variables';\nimport axios from '../../Lib/axios';\nimport Slider from 'react-slick';\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\n\n// section\nimport Reserve from './Section/reserve';\nimport { UserMain as RenewMain } from './Section/renew/main';\nimport { UserVideoSection } from './Section/renew/video';\nimport { UserGuideSection } from './Section/renew/guide';\nimport { UserMainBanner } from './Section/renew/banner';\nimport { UserSiteBanner } from './Section/renew/siteBanner';\nimport { UserNumberCount } from './Section/renew/numberCount';\n\n// import Main from './Section/userMain';\nimport { WithmatePartners } from './Section/partners';\n// import { Services } from './Section/services';\n// import { Introduce } from './Section/introduce';\n// import { WithmateSpecs } from './Section/spec';\n\n// modal\nimport { EmergencyCorpSearchModal, ShareCarRequestModal } from '../../Components/modal';\nimport { ManagerPopup } from '../../Components/modal';\n\n// import MateMain from './Section/mateMain';\n// import Review from './Section/review';\n// import { CoCompany } from '../Company/Section/fifth';\n\nconst settings = {\n dots: true,\n arrows: true,\n infinite: true,\n speed: 800,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: true,\n autoplaySpeed: 5000,\n pauseOnHover: true,\n};\n\nexport default class HomePage extends React.PureComponent {\n state = {\n searchModal: false,\n emergencyList: [],\n emergencyKeyword: '',\n requestModal: false,\n requestInfo: {\n corp: '',\n address: '',\n manager: '',\n contact: '',\n message: '',\n },\n };\n\n componentDidMount = async () => {\n const { data } = await axios.get(`/v1/corp/list`);\n if (!data) return null;\n\n if (data && Array.isArray(data)) {\n this.setState({\n emergencyList: data,\n });\n }\n };\n\n onShareRequest = async () => {\n const {\n requestInfo: { corp, address, manager, contact, message },\n } = this.state;\n if (!corp || !address || !manager || !contact || !message) return Message.info('정보를 기입해주세요.');\n\n const { data } = await axios.post('/v1/share/add', {\n corp,\n address,\n manager,\n contact,\n message,\n });\n\n if (!data) {\n return Message.error('일시적인 서버장애가 발생했습니다. 다시 시도해주세요.');\n }\n\n if (data === 'check parameters') {\n return Message.warning('정보를 모두 기입해주세요.');\n }\n\n if (data === 'success') {\n Message.success('셔틀 셰어링 서비스를 요청하였습니다.');\n\n this.setState({\n requestModal: false,\n requestInfo: {\n corp: '',\n address: '',\n manager: '',\n contact: '',\n message: '',\n },\n });\n }\n };\n\n render() {\n const { requestInfo, emergencyKeyword, emergencyList } = this.state;\n const { userType } = this.props.auth;\n\n return (\n
\n {/* \n
\n \n
\n
\n \n
\n
*/}\n {userType === MATE ? (\n <>\n \n \n ) : (\n <>\n {/* */}\n \n \n {/* */}\n \n \n \n {\n this.props.history.push('/nemt/service');\n }}\n />\n {/*
*/}\n {/* */}\n {/* */}\n \n )}\n\n {this.state.searchModal ? (\n {\n this.setState({ emergencyKeyword: value });\n }}\n visibleHandler={() => {\n this.setState({ searchModal: false });\n }}\n />\n ) : null}\n\n {this.state.requestModal ? (\n {\n this.setState({ requestModal: false });\n }}\n inputHandler={({ type, value }) => {\n this.setState(prevState => ({\n requestInfo: {\n ...prevState.requestInfo,\n [type]: value,\n },\n }));\n }}\n onSave={this.onShareRequest}\n />\n ) : null}\n
\n );\n }\n}\n","import axios from '../axios';\n\nexport const getUserInfo = ({ id, userType }) => {\n return axios.get(`/v1/user/${id}/${userType}`);\n};\n\nexport const modifyUserInfo = async ({ id, userType, info }) => {\n if (info.photo) {\n const { data } = await imageUpload(info.photo);\n info.photo = data;\n }\n\n return axios.post('/v1/user/modify/info', { id, userType, info });\n};\n\nexport const serviceInfo = ({ code }) => {\n return axios.get('/v1/service/product/list', { params: { code } });\n};\n\nexport const buyTicket = ({ userId, info }) => {\n return axios.post('/v1/service/buy/ticket', { userId, info });\n};\n\nexport const serviceReserve = ({ userId, info }) => {\n return axios.post('/v1/service/reserve', { userId, info });\n};\n\nexport const reserveList = ({ userId }) => {\n return axios.get('/v1/service/user/reserve/history', { params: { userId } });\n};\n\nexport const getReserve = ({ reserveId, userId }) => {\n return axios.get('/v1/service/user/reserve', { params: { reserveId, userId } });\n};\n\nexport const getReserveList = ({ userId }) => {\n return axios.get('/v1/service/user/reserve/list', { params: { userId } });\n};\n\nexport const serviceRequest = ({ impUid, buyerId, info }) => {\n // return axios.post('/v1/service/request', { impUid, buyerId, info });\n};\n\nexport const payHistory = ({ userId }) => {\n return axios.get('/v1/service/user/pay/history', { params: { userId } });\n};\n\nexport const mateReserveList = ({ mateId }) => {\n return axios.get('/v1/service/mate/call/list', { params: { mateId } });\n};\n\nexport const mateCallReserveList = ({ mateId, page }) => {\n return axios.get('/v1/service/mate/reserve/list', { params: { mateId, page } });\n};\n\nexport const acceptCall = ({ callId, mateId }) => {\n return axios.put('/v1/service/mate/accept/call', { callId, mateId });\n};\n\nexport const completeCall = ({ callId }) => {\n return axios.put('/v1/service/mate/complete/call', { callId });\n};\n\nexport const modifyReserve = ({ reserveId, info }) => {\n return axios.put('/v1/service/user/reserve/modify', { reserveId, info });\n};\n\nexport const cancelReserve = ({ callId }) => {\n return axios.put('/v1/service/user/reserve/cancel', { callId });\n};\n\nexport const cancelCall = ({ callId }) => {\n return axios.put('/v1/service/mate/reserve/cancel', { callId });\n};\n\nexport const imageUpload = file => {\n const formData = new FormData();\n formData.append('photo', file);\n const header = { headers: { 'Content-Type': 'multipart/form-data' } };\n return axios.post('/v1/common/image/upload', formData, header);\n};\n\nexport const getPartnerServices = () => {\n return axios.get('/v1/partner/service/list');\n};\n\nexport const getContractServices = ({ service, mateId }) => {\n return axios.get(`/v1/partner/${service}/reserve/list`, {\n params: {\n mateId,\n },\n });\n};\n","import axios from '../axios';\nimport { MATE } from '../variables';\n\n//type: 로그인방식\nexport const register = async ({\n termsOfUse,\n privacyPolicy,\n essentialGeneral,\n essentialSensitive,\n selectiveGeneral,\n selectiveSensitive,\n selectiveAdvertise,\n id,\n password,\n userType,\n name,\n code,\n identify,\n reason,\n type,\n photo,\n contact,\n marketing,\n connection,\n recommenderName,\n longtermCare,\n birth,\n email,\n}) => {\n const config = {\n termsOfUse,\n privacyPolicy,\n essentialGeneral,\n essentialSensitive,\n selectiveGeneral,\n selectiveSensitive,\n selectiveAdvertise,\n id,\n password,\n userType,\n name,\n type,\n photo,\n contact,\n marketing,\n connection,\n recommenderName,\n longtermCare,\n birth,\n email,\n code,\n identify,\n reason,\n urlSource: window.location.search === '?url_source=dlive' ? 'dlive' : window.location.search === '?url_source=metlife' ? 'metlife' : 'withmate',\n };\n\n if (userType === MATE && photo) {\n const result = await imageUpload(photo);\n config.photo = result.data;\n }\n\n return axios.post('/v1/auth/register', config);\n};\n\nexport const addPatient = async ({ id, relate, name, sex, age, contact, starting, environment, caution }) => {\n const config = {\n id,\n relate,\n name,\n sex,\n age,\n contact,\n starting,\n environment,\n caution,\n };\n\n return axios.post('/v1/auth/patient/profile', config);\n};\n\nexport const addCard = async ({ id, userName, cardName, cardNum, year, month }) => {\n const config = {\n id,\n userName,\n cardName,\n cardNum,\n year,\n month,\n };\n\n return axios.post('/v1/auth/card/add', config);\n};\n\nexport const getCardInfo = async ({ cardId, info }) => {\n return axios.get('/v1/auth/card/list/info', { cardId, info });\n};\n\nexport const fetchCard = async ({ id }) => {\n return axios.get('/v1/auth/card/list', { params: { id } });\n};\n\nexport const deleteCard = async ({ cardId }) => {\n return axios.post('/v1/auth/card/info/delete', { cardId });\n};\n\nexport const modifyCard = async ({ cardId, info }) => {\n return axios.post('/v1/auth/card/info/modify', { cardId, info });\n};\n\nexport const getMateInfo = async ({ mateId, info }) => {\n return axios.get('/v1/auth/mate/list/info', { mateId, info });\n};\n\nexport const fetchMate = async ({ id }) => {\n return axios.get('/v1/auth/mate/list', { params: { id } });\n};\n\nexport const getPatientInfo = async ({ patientId, info }) => {\n return axios.get('/v1/auth/patient/list/info', { patientId, info });\n};\n\nexport const fetchPatient = async ({ id }) => {\n return axios.get('/v1/auth/patient/list', { params: { id } });\n};\n\nexport const deletePatient = async ({ patientId }) => {\n return axios.post('/v1/auth/patient/info/delete', { patientId });\n};\n\nexport const modifyPatient = async ({ patientId, info }) => {\n return axios.post('/v1/auth/patient/info/modify', { patientId, info });\n};\n\nexport const login = ({ id, password, userType, type }) => {\n return axios.post('/v1/auth/login', { id, password, userType, type });\n};\n\nexport const logout = ({ id, userType }) => {\n return axios.get('/v1/auth/logout', { params: { id, userType } });\n};\n\nexport const checkUserId = ({ id, userType, type }) => {\n return axios.get('/v1/auth/validate/user', { params: { id, userType, type } });\n};\n\nexport const checkAuth = ({ id, userType }) => {\n return axios.get('/v1/auth/authorized', { params: { id, userType } });\n};\n\nexport const findPassword = ({ id, userType }) => {\n return axios.post('/v1/auth/find/password', { id, userType });\n};\n\nexport const confirmEmailAuth = ({ verificationCode }) => {\n return axios.post('/v1/auth/register', { verificationCode });\n};\n\nexport const modifyPassword = ({ id, userType, password, newPassword }) => {\n return axios.post('/v1/auth/modify/password', { id, userType, password, newPassword });\n};\n\nexport const withdrawl = ({ id, userType, password }) => {\n return axios.post('/v1/auth/withdrawl', { id, userType, password });\n};\n\nexport const withdrawlKakao = ({ id, userType }) => {\n return axios.post('/v1/auth/withdrawl/kakao', { id, userType });\n};\n\nexport const imageUpload = photo => {\n const formData = new FormData();\n formData.append('photo', photo);\n const header = { headers: { 'Content-Type': 'multipart/form-data' } };\n return axios.post('/v1/common/image/upload', formData, header);\n};\n\nexport const onAddLongTermCare = async ({ userId, info }) => {\n return axios.post('/v1/longTermCare/add', { userId, info });\n};\n","import jwt from 'jsonwebtoken';\nimport * as authAPI from './Api/auth';\n\nexport function createReduxThunk(type, request) {\n const SUCCESS = `${type}_SUCCESS`;\n const FAILURE = `${type}_FAILURE`;\n\n return params => async dispatch => {\n dispatch({ type: 'app/LOADING_ON' });\n if (!request) {\n return dispatch({ type });\n }\n\n try {\n const response = await request(params);\n\n if (response.data === 'expired token' || response.data === 'invalid token') {\n const refreshToken = localStorage.getItem('refreshToken');\n const decoded = jwt.decode(refreshToken);\n if (decoded && decoded.id) {\n try {\n const result = await authAPI.checkAuth({ id: decoded.id, refreshToken });\n if (result.data === 'invalid') {\n localStorage.clear();\n window.location.href = '/';\n return null;\n }\n\n localStorage.setItem('accessToken', result.data.accessToken);\n // 재요청\n try {\n const response = await request(params);\n dispatch({\n type: SUCCESS,\n payload: response.data,\n meta: params,\n });\n dispatch({ type: 'app/LOADING_OFF' });\n return response.data;\n } catch (e) {\n dispatch({\n type: FAILURE,\n payload: e,\n error: true,\n });\n dispatch({ type: 'app/LOADING_OFF' });\n throw e;\n }\n } catch (error) {\n console.log('error: ', error);\n }\n }\n }\n\n dispatch({\n type: SUCCESS,\n payload: response.data,\n meta: params,\n });\n dispatch({ type: 'app/LOADING_OFF' });\n return response.data;\n } catch (e) {\n dispatch({\n type: FAILURE,\n payload: e,\n error: true,\n });\n dispatch({ type: 'app/LOADING_OFF' });\n throw e;\n }\n };\n}\n","import { createAction, handleActions } from 'redux-actions';\nimport produce from 'immer';\nimport * as appAPI from '../../Lib/Api/app';\nimport _ from 'lodash';\n\n// middleware\nimport { createReduxThunk } from '../../Lib/middleware';\n\nconst USER_INFO = 'app/USER_INFO';\nconst USER_INFO_SUCCESS = 'app/USER_INFO_SUCCESS';\n\nconst MODIFY_USER_INFO = 'app/MODIFY_USER_INFO';\nconst MODIFY_USER_INFO_SUCCESS = 'app/MODIFY_USER_INFO_SUCCESS';\n\nconst SERVICE_INFO = 'app/SERVICE_INFO';\nconst SERVICE_INFO_SUCCESS = 'app/SERVICE_INFO_SUCCESS';\n\nconst SERVICE_RESERVE = 'app/SERVICE_RESERVE';\nconst SERVICE_RESERVE_SUCCESS = 'app/SERVICE_RESERVE_SUCCESS';\nconst SERVICE_RESERVE_USAGE = 'app/SERVICE_RESERVE_USAGE';\nconst SERVICE_RESERVE_USAGE_SUCCESS = 'app/SERVICE_RESERVE_USAGE_SUCCESS';\nconst SERVICE_RESERVE_LIST = 'app/SERVICE_RESERVE_LIST';\nconst SERVICE_RESERVE_LIST_SUCCESS = 'app/SERVICE_RESERVE_LIST_SUCCESS';\n\nconst RESERVE_INFO = 'app/RESERVE_INFO';\nconst RESERVE_INFO_SUCCESS = 'app/RESERVE_INFO_SUCCESS';\n\nconst CANCEL_CALL = 'app/CANCEL_CALL';\nconst CANCEL_CALL_SUCCESS = 'app/CANCEL_CALL_SUCCESS';\n\nconst CANCEL_RESERVE = 'app/CANCEL_RESERVE';\nconst CANCEL_RESERVE_SUCCESS = 'app/CANCEL_RESERVE_SUCCESS';\n\nconst MODIFY_RESERVE = 'app/MODIFY_RESERVE';\nconst MODIFY_RESERVE_SUCCESS = 'app/MODIFY_RESERVE_SUCCESS';\n\nconst MATE_CALL_RESERVE_LIST = 'app/MATE_CALL_RESERVE_LIST';\nconst MATE_CALL_RESERVE_LIST_SUCCESS = 'app/MATE_CALL_RESERVE_LIST_SUCCESS';\nconst MATE_SERVICE_RESERVE_LIST = 'app/MATE_SERVICE_RESERVE_LIST';\nconst MATE_SERVICE_RESERVE_LIST_SUCCESS = 'app/MATE_SERVICE_RESERVE_LIST_SUCCESS';\nconst MATE_ACCEPT_CALL = 'app/MATE_ACCEPT_CALL';\nconst MATE_ACCEPT_CALL_SUCCESS = 'app/MATE_ACCEPT_CALL_SUCCESS';\nconst MATE_COMPLETE_CALL = 'app/MATE_COMPLETE_CALL';\nconst MATE_COMPLETE_CALL_SUCCESS = 'app/MATE_COMPLETE_CALL_SUCCESS';\n\nconst PAY_HISTORY = 'app/PAY_HISTORY';\nconst PAY_HISTORY_SUCCESS = 'app/PAY_HISTORY_SUCCESS';\n\nconst BUY_TICKET = 'app/BUY_TICKET';\nconst BUY_TICKET_SUCCESS = 'app/BUY_TICKET_SUCCESS';\n\nconst GET_CONTRACT_PARTNERS = 'app/GET_CONTRACT_PARTNERS';\nconst GET_CONTRACT_PARTNERS_SUCCESS = 'app/GET_CONTRACT_PARTNERS_SUCCESS';\n\nconst GET_CONTRACT_SERVICE_LIST = 'app/GET_CONTRACT_SERVICE_LIST';\nconst GET_CONTRACT_SERVICE_LIST_SUCCESS = 'app/GET_CONTRACT_SERVICE_LIST_SUCCESS';\n\nconst EDIT_USER_FORM = 'app/EDIT_USER_FORM';\nconst EDIT_BUY_FORM = 'app/EDIT_BUY_FORM';\nconst EDIT_RESERVE_FORM = 'app/EDIT_RESERVE_FORM';\nconst EDIT_DETAIL_VIEW = 'app/EDIT_DETAIL_VIEW';\nconst EDIT_LATEST_VIEW = 'app/EDIT_LATEST_VIEW';\nconst EDIT_VIEW_TYPE = 'app/EDIT_VIEW_TYPE';\nconst EDIT_CALL_PAGE = 'app/EDIT_CALL_PAGE';\nconst EDIT_CONTRACT_FORM = 'app/EDIT_CONTRACT_FORM';\n\nconst LOADING_ON = 'app/LOADING_ON';\nconst LOADING_OFF = 'app/LOADING_OFF';\n\n// initalState\nconst initialState = {\n userInfo: {},\n serviceInfo: {},\n reserveForm: {\n page: 1,\n service: 'assist',\n addTime: 1,\n payMethod: 'transfer',\n sex: '남',\n transport: 'common', // common, own\n report: false,\n },\n reserve: {\n unemergency: 0,\n assist: 0,\n },\n contractForm: {\n page: 1,\n service: '',\n addTime: 1,\n payMethod: 'transfer',\n sex: '남',\n transport: 'common', // common, own\n report: false,\n },\n buyForm: {\n service: 'unemergency',\n count: 1,\n },\n mateCallPage: 0,\n mateCallList: [],\n reserveList: [],\n reserveInfo: {},\n mateReserveList: [],\n mateViewType: 'latest',\n mateReserveLatest: {},\n mateReserveDetail: {},\n payHistory: [],\n partners: [],\n loading: false,\n contractServices: [],\n};\n\nexport const getUserInfo = createReduxThunk(USER_INFO, appAPI.getUserInfo);\nexport const modifyUserInfo = createReduxThunk(MODIFY_USER_INFO, appAPI.modifyUserInfo);\n\nexport const getServiceInfo = createReduxThunk(SERVICE_INFO, appAPI.serviceInfo);\n\nexport const buyTicket = createReduxThunk(BUY_TICKET, appAPI.buyTicket);\nexport const getPayHistory = createReduxThunk(PAY_HISTORY, appAPI.payHistory);\n\nexport const serviceReserve = createReduxThunk(SERVICE_RESERVE, appAPI.serviceReserve);\nexport const getReserveUsage = createReduxThunk(SERVICE_RESERVE_USAGE, appAPI.reserveList);\nexport const getReserveList = createReduxThunk(SERVICE_RESERVE_LIST, appAPI.getReserveList);\nexport const getMateReserveList = createReduxThunk(MATE_SERVICE_RESERVE_LIST, appAPI.mateReserveList);\nexport const getMateCallReserveList = createReduxThunk(MATE_CALL_RESERVE_LIST, appAPI.mateCallReserveList);\nexport const getReserveInfo = createReduxThunk(RESERVE_INFO, appAPI.getReserve);\nexport const getContractPartners = createReduxThunk(GET_CONTRACT_PARTNERS, appAPI.getPartnerServices);\nexport const getContractList = createReduxThunk(GET_CONTRACT_SERVICE_LIST, appAPI.getContractServices);\n\nexport const acceptCall = createReduxThunk(MATE_ACCEPT_CALL, appAPI.acceptCall);\nexport const cancelCall = createReduxThunk(CANCEL_CALL, appAPI.cancelCall);\nexport const completeCall = createReduxThunk(MATE_COMPLETE_CALL, appAPI.completeCall);\nexport const modifyReserve = createReduxThunk(MODIFY_RESERVE, appAPI.modifyReserve);\nexport const cancelReserve = createReduxThunk(CANCEL_RESERVE, appAPI.cancelReserve);\n\nexport const editViewType = createAction(EDIT_VIEW_TYPE, input => input);\nexport const editResrveForm = createAction(EDIT_RESERVE_FORM, input => input);\nexport const editContractForm = createAction(EDIT_CONTRACT_FORM, input => input);\nexport const editBuyForm = createAction(EDIT_BUY_FORM, input => input);\nexport const editUserForm = createAction(EDIT_USER_FORM, input => input);\nexport const editReserveDetailView = createAction(EDIT_DETAIL_VIEW, input => input);\nexport const editReserveLatestView = createAction(EDIT_LATEST_VIEW, input => input);\nexport const editCallPage = createAction(EDIT_CALL_PAGE, input => input);\n\n// reducer\nconst appReducer = handleActions(\n {\n [LOADING_ON]: (state, action) =>\n produce(state, draft => {\n draft.loading = true;\n }),\n [LOADING_OFF]: (state, action) =>\n produce(state, draft => {\n draft.loading = false;\n }),\n [USER_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload._id) {\n draft['userInfo'] = payload;\n }\n }),\n [MODIFY_USER_INFO_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const { photo, name, contact } = meta.info;\n draft['userInfo']['name'] = name;\n draft['userInfo']['contact'] = contact;\n if (photo) {\n draft['userInfo']['photo'] = photo;\n }\n }\n }),\n [SERVICE_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && Array.isArray(payload) && payload.length > 0) {\n draft['serviceInfo'] = payload[0];\n }\n }),\n [SERVICE_RESERVE_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n draft['reserveForm'] = {\n page: 1,\n service: 'unemergency',\n addTime: 1,\n payMethod: 'transfer',\n sex: '남',\n };\n }\n }),\n [RESERVE_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['reserveInfo'] = payload;\n }),\n [SERVICE_RESERVE_USAGE_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload)) {\n draft['reserve'] = payload;\n }\n }),\n [SERVICE_RESERVE_LIST_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload) && Array.isArray(payload)) {\n draft['reserveList'] = payload;\n }\n }),\n [GET_CONTRACT_PARTNERS_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['partners'] = payload;\n if (payload && Array.isArray(payload)) {\n localStorage.setItem('partners', JSON.stringify(payload));\n }\n }),\n [GET_CONTRACT_SERVICE_LIST_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload) && Array.isArray(payload)) {\n draft['contractServices'] = payload;\n }\n }),\n [MATE_SERVICE_RESERVE_LIST_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload) && Array.isArray(payload)) {\n draft['mateReserveList'] = payload;\n }\n }),\n [MATE_CALL_RESERVE_LIST_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload) && Array.isArray(payload)) {\n draft['mateCallList'] = payload;\n }\n }),\n [MATE_ACCEPT_CALL_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['mateReserveList'];\n draft['mateReserveList'] = list.map(l => {\n if (l._id === meta.callId) {\n l.status = '예약완료';\n }\n\n return l;\n });\n\n draft['mateReserveDetail']['status'] = '예약완료';\n }\n }),\n [MATE_COMPLETE_CALL_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n if (payload && payload === 'success') {\n const list = draft['mateReserveList'];\n draft['mateReserveList'] = list.map(l => {\n if (l._id === meta.callId) {\n l.status = '서비스 종료';\n }\n\n return l;\n });\n }\n }\n }),\n [PAY_HISTORY_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['payHistory'] = payload;\n }),\n [BUY_TICKET_SUCCESS]: (state, { payload }) => produce(state, draft => {}),\n [CANCEL_CALL_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['mateReserveList'];\n draft['mateReserveList'] = list.map(l => {\n if (l._id === meta.callId) {\n l.status = '접수대기';\n }\n\n return l;\n });\n }\n }),\n [CANCEL_RESERVE_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n const list = draft['reserveList'];\n draft['reserveList'] = list.map(l => {\n if (l.callId === meta.callId) l.call[0].status = '접수취소';\n return l;\n });\n }),\n [MODIFY_RESERVE_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['reserveList'];\n draft['reserveList'] = list.map(l => {\n if (l._id === meta.reserveId) {\n const { patient, relate, contact, comment, sex } = meta.info;\n l['patient'] = patient;\n l['relate'] = relate;\n l['contact'] = contact;\n l['comment'] = comment;\n l['sex'] = sex;\n\n if (meta.info && meta.info.starting) {\n const { starting, destination, reserveDate, usageTime } = meta.info;\n l['starting'] = starting;\n l['destination'] = destination;\n l['reserveDate'] = reserveDate;\n l['usageTime'] = usageTime;\n }\n\n return l;\n }\n\n return l;\n });\n }\n }),\n [EDIT_RESERVE_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['reserveForm'] = {};\n } else {\n draft['reserveForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_CONTRACT_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['contractForm'] = {};\n } else {\n draft['contractForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_BUY_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['buyForm'] = {\n service: 'unemergency',\n count: 1,\n };\n } else {\n draft['buyForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_USER_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['userInfo'] = {};\n } else {\n draft['userInfo'][payload.type] = payload.value;\n }\n }),\n [EDIT_DETAIL_VIEW]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['mateReserveDetail'] = {};\n } else {\n draft['mateReserveDetail'] = payload.value;\n }\n }),\n [EDIT_LATEST_VIEW]: (state, { payload }) =>\n produce(state, draft => {\n draft['mateReserveLatest'] = payload.value;\n }),\n [EDIT_VIEW_TYPE]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['mateViewType'] = 'latest';\n } else {\n draft['mateViewType'] = payload.value;\n }\n }),\n [EDIT_CALL_PAGE]: (state, { payload }) =>\n produce(state, draft => {\n if (typeof payload === 'number') {\n draft['mateCallPage'] = payload;\n }\n }),\n },\n initialState,\n);\n\nexport default appReducer;\n","import { createAction, handleActions } from 'redux-actions';\nimport produce from 'immer';\nimport * as authAPI from '../../Lib/Api/auth';\nimport { USER, MATE } from '../../Lib/variables';\n\n// middleware\nimport { createReduxThunk } from '../../Lib/middleware';\n\nconst EDIT_LOGIN_FORM = 'auth/EDIT_LOGIN_FORM';\nconst EDIT_REGISTER_FORM = 'auth/EDIT_REGISTER_FORM';\n\nconst ADD_LONGTERMCARE = 'auth/ADD_LONGTERMCARE';\nconst ADD_LONGTERMCARE_SUCCESS = 'auth/ADD_LONGTERMCARE_SUCCESS';\n\n// 환자 프로필\nconst ADD_PATIENT = 'auth/ADD_PATIENT';\nconst ADD_PATIENT_SUCCESS = 'auth/ADD_PATIENT_SUCCESS';\nconst GET_PATIENT = 'auth/GET_PATIENT';\nconst GET_PATIENT_SUCCESS = 'auth/GET_PATIENT_SUCCESS';\nconst EDIT_ADD_PATIENT_FORM = 'auth/EDIT_ADD_PATIENT_FORM';\nconst DELETE_PATIENT = 'auth/DELETE_PATIENT';\nconst DELETE_PATIENT_SUCCESS = 'auth/DELETE_PATIENT_SUCCESS';\nconst MODIFY_PATIENT = 'auth/MODIFY_PATIENT';\nconst MODIFY_PATIENT_SUCCESS = 'auth/MODIFY_PATIENT_SUCCESS';\nconst PATIENT_INFO = 'auth/PATIENT_INFO';\nconst PATIENT_INFO_SUCCESS = 'auth/PATIENT_INFO_SUCCESS';\n\n// 카드 정보\nconst ADD_CARD = 'auth/ADD_CARD';\nconst ADD_CARD_SUCCESS = 'auth/ADD_CARD_SUCCESS';\nconst GET_CARD = 'auth/GET_CARD';\nconst GET_CARD_SUCCESS = 'auth/GET_CARD_SUCCESS';\nconst EDIT_ADD_CARD_FORM = 'auth/EDIT_ADD_CARD_FORM';\nconst DELETE_CARD = 'auth/DELETE_CARD';\nconst DELETE_CARD_SUCCESS = 'auth/DELETE_CARD_SUCCESS';\nconst MODIFY_CARD = 'auth/MODIFY_CARD';\nconst MODIFY_CARD_SUCCESS = 'auth/MODIFY_CARD_SUCCESS';\nconst CARD_INFO = 'auth/CARD_INFO';\nconst CARD_INFO_SUCCESS = 'auth/CARD_INFO_SUCCESS';\n\nconst MATE_INFO = 'auth/MATE_INFO';\nconst MATE_INFO_SUCCESS = 'auth/MATE_INFO_SUCCESS';\nconst GET_MATE = 'auth/GET_MATE';\nconst GET_MATE_SUCCESS = 'auth/GET_MATE_SUCCESS';\n\nconst EDIT_FINDPASSWORD_FORM = 'auth/EDIT_FINDPASSWORD_FORM';\nconst EDIT_PASSWORD_FORM = 'auth/EDIT_PASSWORD_FORM';\nconst EDIT_INFO = 'auth/EDIT_INFO';\nconst EDIT_AUTH = 'auth/EDIT_AUTH';\n\nconst LOGIN = 'auth/LOGIN';\nconst LOGIN_SUCCESS = 'auth/LOGIN_SUCCESS';\nconst LOGOUT = 'auth/LOGOUT';\nconst LOGOUT_SUCCESS = 'auth/LOGOUT_SUCCESS';\nconst VALIDATE_USER_ID = 'auth/VALIDATE_USER_ID';\nconst VALIDATE_USER_ID_SUCCESS = 'auth/VALIDATE_USER_ID_SUCCESS';\nconst REGISTER = 'auth/REGISTER';\nconst REGISTER_SUCCESS = 'auth/REGISTER_SUCCESS';\nconst CHECK_AUTH = 'auth/CHECK_AUTH';\nconst CHECK_AUTH_SUCCESS = 'auth/CHECK_AUTH_SUCCESS';\nconst FIND_PASSWORD = 'auth/FIND_PASSWORD';\nconst FIND_PASSWORD_SUCCESS = 'auth/FIND_PASSWORD_SUCCESS';\nconst MODIFY_PASSWORD = 'auth/MODIFY_PASSWORD';\nconst MODIFY_PASSWORD_SUCCESS = 'auth/MODIFY_PASSWORD_SUCCESS';\n\nconst USER_WITHDRAWL = 'auth/USER_WITHDRAWL';\nconst USER_WITHDRAWL_SUCCESS = 'auth/USER_WITHDRAWL_SUCCESS';\nconst KAKAO_WITHDRAWL = 'auth/KAKAO_WITHDRAWL';\nconst KAKAO_WITHDRAWL_SUCCESS = 'auth/KAKAO_WITHDRAWL_SUCCESS';\n\nconst CONFIRM_EMAILAUTH = 'auth/CONFIRM_EMAILAUTH';\nconst CONFIRM_EMAILAUTH_SUCCESS = 'auth/CONFIRM_EMAILAUTH_SUCCESS';\n\nexport const login = createReduxThunk(LOGIN, authAPI.login);\nexport const logout = createReduxThunk(LOGOUT, authAPI.logout);\nexport const register = createReduxThunk(REGISTER, authAPI.register);\n\nexport const checkUserId = createReduxThunk(VALIDATE_USER_ID, authAPI.checkUserId);\nexport const checkAuth = createReduxThunk(CHECK_AUTH, authAPI.checkAuth);\nexport const findPassword = createReduxThunk(FIND_PASSWORD, authAPI.findPassword);\nexport const modifyPassword = createReduxThunk(MODIFY_PASSWORD, authAPI.modifyPassword);\n\nexport const withdrawlUser = createReduxThunk(USER_WITHDRAWL, authAPI.withdrawl);\nexport const withdrawlKakao = createReduxThunk(KAKAO_WITHDRAWL, authAPI.withdrawlKakao);\n\nexport const confirmEmailAuth = createReduxThunk(CONFIRM_EMAILAUTH, authAPI.confirmEmailAuth);\n\nexport const editAuth = createAction(EDIT_AUTH, input => input);\nexport const editLoginForm = createAction(EDIT_LOGIN_FORM, input => input);\nexport const editRegisterForm = createAction(EDIT_REGISTER_FORM, input => input);\n\nexport const onEditLongTermCare = createAction(ADD_LONGTERMCARE, authAPI.onAddLongTermCare);\n\nexport const fetchPatient = createReduxThunk(GET_PATIENT, authAPI.fetchPatient);\nexport const addPatient = createReduxThunk(ADD_PATIENT, authAPI.addPatient);\nexport const editAddPatientForm = createAction(EDIT_ADD_PATIENT_FORM, input => input);\nexport const deletePatient = createReduxThunk(DELETE_PATIENT, authAPI.deletePatient);\nexport const modifyPatient = createReduxThunk(MODIFY_PATIENT, authAPI.modifyPatient);\nexport const getPatientInfo = createReduxThunk(PATIENT_INFO, authAPI.getPatientInfo);\n\nexport const fetchCard = createReduxThunk(GET_CARD, authAPI.fetchCard);\nexport const addCard = createReduxThunk(ADD_CARD, authAPI.addCard);\nexport const editAddCardForm = createAction(EDIT_ADD_CARD_FORM, input => input);\nexport const deleteCard = createReduxThunk(DELETE_CARD, authAPI.deleteCard);\nexport const modifyCard = createReduxThunk(MODIFY_CARD, authAPI.modifyCard);\nexport const getCardInfo = createReduxThunk(CARD_INFO, authAPI.getCardInfo);\n\nexport const getMateInfo = createReduxThunk(MATE_INFO, authAPI.getMateInfo);\nexport const fetchMate = createReduxThunk(GET_MATE, authAPI.fetchMate);\n\nexport const editFindPasswordForm = createAction(EDIT_FINDPASSWORD_FORM, input => input);\nexport const editPasswordForm = createAction(EDIT_PASSWORD_FORM, input => input);\nexport const editInfo = createAction(EDIT_INFO, input => input);\n\n// initalState\nconst initialState = {\n id: '',\n name: '',\n photo: '',\n userType: '',\n allowed: null,\n ticket: {\n assist: 0,\n unemergency: 0,\n },\n\n loginForm: {\n userType: '',\n },\n registerForm: {\n userType: USER,\n page: 1,\n sex: '남',\n identify: '본인',\n agree: false,\n },\n\n longTermCare: [],\n longTermCareInfo: {},\n\n patientList: [],\n patientInfo: {},\n addPatientForm: {\n sex: '남'\n },\n\n cardList: [],\n cardInfo: {},\n addCardForm: {\n cardName: '',\n cardNum: '',\n year: '',\n month: ''\n },\n\n findForm: {\n userType: USER,\n },\n passwordForm: {\n password: '',\n newPassword: '',\n reNewPassword: '',\n },\n infoForm: {},\n\n mateInfo: {},\n};\n\n// reducer\nconst authReducer = handleActions(\n {\n [EDIT_LOGIN_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['loginForm'] = {\n userType: USER,\n };\n } else {\n draft['loginForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_REGISTER_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['registerForm'] = {\n userType: USER,\n page: 1,\n sex: '남',\n identify: '본인',\n agree: false,\n };\n } else {\n draft['registerForm'][payload.type] = payload.value;\n }\n }),\n\n [EDIT_ADD_PATIENT_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['addPatientForm'] = {\n sex: '남',\n };\n } else {\n draft['addPatientForm'][payload.type] = payload.value;\n }\n }),\n\n [EDIT_FINDPASSWORD_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['findForm'] = {\n userType: USER,\n };\n } else {\n draft['findForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_PASSWORD_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['passwordForm'] = {};\n } else {\n draft['passwordForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_INFO]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['infoForm'] = {};\n } else {\n draft['infoForm'][payload.type] = payload.value;\n }\n }),\n [EDIT_AUTH]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['id'] = '';\n draft['userType'] = '';\n draft['type'] = '';\n draft['photo'] = '';\n draft['name'] = '';\n } else {\n draft[payload.type] = payload.value;\n }\n }),\n [LOGIN_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload._id) {\n draft['id'] = payload._id;\n draft['photo'] = payload.photo;\n draft['name'] = payload.name;\n draft['type'] = payload.type;\n draft['userType'] = meta.userType;\n // if (payload.ticket) {\n // draft['ticket'] = payload.ticket;\n // }\n\n localStorage.setItem('id', payload._id);\n localStorage.setItem('photo', payload.photo);\n localStorage.setItem('name', payload.name);\n localStorage.setItem('contact', payload.contact);\n localStorage.setItem('userType', meta.userType);\n\n window.location.href = '/';\n }\n }),\n [USER_WITHDRAWL_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n draft['id'] = '';\n draft['userType'] = '';\n draft['photo'] = '';\n draft['name'] = '';\n draft['password'] = '';\n draft['allowed'] = false;\n localStorage.clear();\n window.location.href = '/';\n }\n }),\n [KAKAO_WITHDRAWL_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n draft['id'] = '';\n draft['userType'] = '';\n draft['photo'] = '';\n draft['name'] = '';\n draft['allowed'] = false;\n localStorage.clear();\n window.location.href = '/';\n }\n }),\n [LOGOUT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n draft['id'] = '';\n draft['userType'] = '';\n draft['photo'] = '';\n draft['name'] = '';\n draft['allowed'] = false;\n localStorage.clear();\n window.location.href = '/';\n }\n }),\n [VALIDATE_USER_ID_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n // console.log('VALIDATE_USER_ID_SUCCESS: ', payload);\n }),\n \n [REGISTER_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n const { data } = payload;\n draft['id'] = data._id;\n draft['photo'] = data.photo;\n draft['name'] = data.name;\n draft['userType'] = meta.userType;\n draft['allowed'] = data.allowed;\n if (payload.ticket) {\n draft['ticket'] = payload.ticket;\n }\n\n localStorage.setItem('id', data._id);\n localStorage.setItem('photo', data.photo);\n localStorage.setItem('name', data.name);\n localStorage.setItem('allowed', data.allowed);\n localStorage.setItem('userType', meta.userType);\n\n // window.location.href = '/success';\n }\n }),\n\n [ADD_LONGTERMCARE_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['longTermCare'];\n draft['longTermCare'] = list.map(info => {\n const { name, age, contact, sex, region, gradePresence, gradeLevel } = meta.info;\n info['name'] = name;\n info['age'] = age;\n info['contact'] = contact;\n info['sex'] = sex;\n info['region'] = region;\n info['gradePresence'] = gradePresence;\n info['gradeLevel'] = gradeLevel;\n\n return info;\n })\n }\n }),\n\n [CHECK_AUTH_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload._id) {\n draft['id'] = payload._id;\n draft['photo'] = payload.photo;\n draft['name'] = payload.name;\n draft['allowed'] = payload.allowed;\n draft['type'] = payload.type;\n draft['userType'] = meta.userType;\n if (payload.ticket) {\n draft['ticket'] = payload.ticket;\n }\n } else {\n localStorage.clear();\n window.location.href = '/';\n return null;\n }\n }),\n [FIND_PASSWORD_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n // console.log();\n }),\n [MODIFY_PASSWORD_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n // console.log();\n }),\n\n [CONFIRM_EMAILAUTH_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n // console.log();\n }),\n\n [ADD_PATIENT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['patientList'].push(payload.data);\n }\n }),\n\n [GET_PATIENT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['patientList'] = payload.data;\n }\n }),\n\n [PATIENT_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['patientInfo'] = payload.data;\n }),\n\n [MODIFY_PATIENT_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['patientList'];\n draft['patientList'] = list.map(info => {\n if (info._id === meta.patientId) {\n const { name, relate, sex, age, contact, starting, environment, caution } = meta.info;\n info['name'] = name;\n info['relate'] = relate;\n info['sex'] = sex;\n info['age'] = age;\n info['contact'] = contact;\n info['starting'] = starting;\n info['environment'] = environment;\n info['caution'] = caution;\n\n return info;\n }\n })\n }\n }),\n\n [DELETE_PATIENT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n // draft['patientList'] = '';\n // window.location.href = '/user/mypage/profile';\n }\n }),\n\n // 결제 카드 등록\n [ADD_CARD_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['cardList'].push(payload.data);\n }\n }),\n \n [EDIT_ADD_CARD_FORM]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.type === 'clear') {\n draft['addCardForm'] = {\n cardName: '',\n cardNum: '',\n year: '',\n month: ''\n };\n } else {\n draft['addCardForm'][payload.type] = payload.value;\n }\n }),\n\n [GET_CARD_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['cardList'] = payload.data;\n }\n }),\n\n [CARD_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['cardInfo'] = payload.data;\n }),\n\n [MODIFY_CARD_SUCCESS]: (state, { payload, meta }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n const list = draft['cardList'];\n draft['cardList'] = list.map(info => {\n if (info._id === meta.cardId) {\n const { cardName, cardNum, year, month } = meta.info;\n info['cardName'] = cardName;\n info['cardNum'] = cardNum;\n info['year'] = year;\n info['month'] = month;\n\n return info;\n }\n })\n }\n }),\n\n [DELETE_CARD_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload === 'success') {\n // draft['patientList'] = '';\n // window.location.href = '/user/mypage/profile';\n }\n }),\n\n [GET_MATE_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['mateList'] = payload.data;\n }\n }),\n\n [MATE_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['mateInfo'] = payload.data;\n }),\n },\n initialState,\n);\n\nexport default authReducer;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { message } from 'antd';\n\n// component\nimport Home from './home';\nimport { MATE } from '../../Lib/variables';\n\n// styles\nimport HomeStyledContainer from './home.styled';\n\n// actions\nimport {\n editResrveForm,\n getServiceInfo,\n serviceReserve,\n getUserInfo,\n // getMateReserveList,\n // getMateCallReserveList,\n getContractPartners,\n acceptCall,\n editReserveDetailView,\n editReserveLatestView,\n editViewType,\n editCallPage,\n editContractForm,\n} from '../../Reducer/Modules/app';\nimport { editAuth } from '../../Reducer/Modules/auth';\n\nclass HomeContainer extends React.PureComponent {\n componentDidMount = () => {\n const id = localStorage.getItem('id');\n const userType = localStorage.getItem('userType');\n\n if (id && userType === MATE) {\n } else {\n const prevList = localStorage.getItem('partners');\n if (prevList) {\n const list = JSON.parse(prevList);\n this.props.editContractForm({ type: 'partners', value: list });\n }\n\n this.props.fetchPartners();\n }\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapStateToDispatch = dispatch => ({\n editAuth: ({ type, value }) => dispatch(editAuth({ type, value })),\n editForm: ({ type, value }) => dispatch(editResrveForm({ type, value })),\n editLatest: ({ value }) => dispatch(editReserveLatestView({ value })),\n editDetail: ({ value }) => dispatch(editReserveDetailView({ value })),\n editViewType: ({ value }) => dispatch(editViewType({ value })),\n editCallPage: value => dispatch(editCallPage(value)),\n editContractForm: ({ type, value }) => dispatch(editContractForm({ type, value })),\n\n getServiceInfo: ({ code }) => dispatch(getServiceInfo({ code })),\n getUserInfo: ({ id, userType }) => dispatch(getUserInfo({ id, userType })),\n fetchPartners: () => dispatch(getContractPartners()),\n serviceReserve: ({ userId, info }) => dispatch(serviceReserve({ userId, info })),\n // mateReserveList: ({ mateId }) => dispatch(getMateReserveList({ mateId })),\n // mateCallList: ({ mateId, page }) => dispatch(getMateCallReserveList({ mateId, page })),\n acceptCall: ({ mateId, callId }) => dispatch(acceptCall({ mateId, callId })),\n});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(HomeContainer);\n","import React from 'react';\n\nconst NotFoundPage = () => (\n
\n 위드메이트 로고\n

해당 페이지를 찾을 수 없습니다.

\n\n

원하시는 결과를 찾을 수 없습니다.

\n

올바른 URL을 입력하였는지 확인하세요. 자세한 내용은 사이트 관리자에게 문의하시기 바랍니다.

\n
\n);\nexport default NotFoundPage;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\nconst LoginStyledContainer = styled.div`\n margin-top: 55px;\n min-height: 100vh;\n background-image: url('/assets/images/login_bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: 80% 50%;\n\n @media (max-width: 480px) {\n min-height: initial;\n height: 100%;\n }\n\n .inner-container {\n padding: 0px;\n padding-top: 144px;\n padding-bottom: 100px;\n\n @media (max-width: 480px) {\n padding: 0px;\n }\n\n .login-form {\n background-color: white;\n border-radius: 8px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n width: 100%;\n max-width: 340px;\n margin: 0 auto;\n padding: 24px;\n\n @media (max-width: 480px) {\n max-width: initial;\n width: 100%;\n border-radius: 0px;\n box-shadow: none;\n }\n\n .login-title {\n margin-bottom: 24px;\n\n p {\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 40px;\n border: solid 1px #e6e6e6;\n // margin-bottom: 20px;\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.5);\n\n &:first-child {\n // border-right: 1px solid #e6e6e6;\n padding-right: 16px;\n }\n\n &:last-child {\n margin-left: 16px;\n color: ${mainColor};\n }\n }\n }\n }\n\n .form-user-type {\n height: 76px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 30px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n line-height: 40px;\n text-align: left;\n padding-left: 10px;\n color: #606060;\n }\n\n h5 {\n font-size: ${sizeHandler(12)};\n text-align: left;\n padding-left: 10px;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n\n h5 {\n color: white;\n }\n }\n }\n }\n }\n }\n`;\nexport default LoginStyledContainer;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst TabContainer = styled.div`\n width: 100%;\n height: 48px;\n\n border: 1px solid #dddddd;\n border-radius: 6px;\n overflow: hidden;\n\n display: flex;\n align-items: center;\n`;\n\nconst Tab = styled.div`\n flex: 1;\n height: 100%;\n\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n background-color: ${props => (props.active ? '#3bc1ff' : '#ffffff')};\n\n color: ${props => (props.active ? '#ffffff' : '#3bc1ff')};\n font-size: 14px;\n font-weight: bold;\n\n transition: all 0.5s;\n`;\n\nexport { TabContainer, Tab };\n","import styled from 'styled-components';\n\nimport Pallete from '../../theme';\n\nconst H1 = styled.h1`\n margin: 0px;\n margin-bottom: 16px;\n\n font-size: 26px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.5;\n\n > span {\n font-size: 26px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.5;\n }\n`;\n\nconst H2 = styled.h2`\n margin: 0px;\n margin-bottom: 16px;\n\n font-size: 23px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.5;\n`;\n\nconst H3 = styled.h3`\n margin: 0px;\n margin-bottom: 12px;\n\n font-size: 18px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.5;\n`;\n\nconst H4 = styled.h4`\n margin: 0px;\n margin-bottom: 8px;\n\n font-size: 16px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.4;\n`;\n\nconst H5 = styled.h5`\n margin: 0px;\n margin-bottom: 8px;\n\n font-size: 13px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.4;\n`;\n\nconst H6 = styled.h6`\n margin: 0px;\n margin-bottom: 4px;\n\n font-size: 12px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.4;\n`;\n\nconst Text = styled.p`\n margin: 0px;\n margin-bottom: 0px;\n\n font-size: 11px;\n font-weight: ${props => (props.bold ? 'bold' : 'normal')};\n line-height: 1.4;\n`;\n\nexport { H1, H2, H3, H4, H5, H6, Text };\n","import styled from 'styled-components';\nimport Pallete from '../../theme';\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst InnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nexport { Container, InnerContainer };\n","export const isNotNumber = value => {\n const regExp = /[a-z|ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g;\n return regExp.test(value);\n};\n\nexport const celluarValidate = phone => {\n const regExp = /^01(?:0|1|[6-9])[0-9]{4}[0-9]{4}$/;\n const regExp2 = /^1(?:0|1|[6-9])[0-9]{4}[0-9]{4}$/;\n\n const result = regExp.test(phone);\n const result2 = regExp2.test(phone);\n\n return result === true || result2 === true ? true : false;\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Select, ConfigProvider, DatePicker, message } from 'antd';\nimport holidayKR from 'holiday-kr';\nimport moment from 'moment';\nimport swal from 'sweetalert2';\nimport 'moment/locale/zh-cn';\nimport locale from 'antd/es/locale/ko_KR';\n\n// components\nimport {\n DivisionLine,\n WithmateLabel,\n WithmateInput,\n WithamteInputWithButton,\n HalfWithmateInput,\n WithmateTextarea,\n WithmateSelect,\n FlexWrapper,\n HalfWithmateSelect,\n WithmateDatePicker,\n BorderDivisionLine,\n StyledHotFix,\n WithmateValue,\n WithmateValueTip,\n} from '../Common/input';\nimport { H1, H2, H3, H4, H5, H6, Text } from '../Common/text';\nimport { Container } from '../Common/container';\nimport { TabContainer, Tab } from '../Common/tab';\nimport { FullWidthButton } from '../Common/button';\n\n// utils\nimport Pallete from '../../theme';\nimport { isNotNumber, celluarValidate } from '../../Lib/regex';\n\n// imgs\n\nmoment.lang('ko', {\n weekdays: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],\n weekdaysShort: ['일', '월', '화', '수', '목', '금', '토'],\n});\n\nexport const Step1 = ({ data, inputDeepHandler, setDestination, setStarting }) => {\n const { service, sex, relate, patient, contact, destination, starting } = data;\n\n const onTab = tab => {\n inputDeepHandler({ type: 'temp', deepType: 'service', value: tab });\n };\n\n const onSex = sex => {\n inputDeepHandler({ type: 'temp', deepType: 'sex', value: sex });\n };\n\n const onRelation = relate => {\n inputDeepHandler({ type: 'temp', deepType: 'relate', value: relate });\n };\n\n const destinationHandler = ev => {\n inputDeepHandler({ type: 'temp', deepType: 'destination', value: ev.target.value });\n };\n\n const startingHandler = ev => {\n inputDeepHandler({ type: 'temp', deepType: 'starting', value: ev.target.value });\n };\n\n const onEditShielder = () => {\n const id = localStorage.getItem('id');\n if (!id) return null;\n\n inputDeepHandler({ type: '_temp', deepType: 'shielder', value: (data && data.shielder) || '' });\n inputDeepHandler({ type: '_temp', deepType: 'onShieldModal', value: true });\n };\n\n const onNextStep = () => {\n if (!localStorage.getItem('id')) {\n return message.warning('로그인 후 이용해주세요');\n }\n\n const fix = [];\n if (!relate) fix.push('relate');\n if (!contact || !celluarValidate(contact)) fix.push('contact');\n if (!patient) fix.push('patient');\n if (!starting) fix.push('starting');\n if (service === 'unemergency' && !destination) fix.push('destination');\n\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n };\n\n return (\n \n

\n 위드메이트와의\n
\n 병원 동행을 예약하세요\n

\n\n \n\n 서비스 선택\n \n {\n onTab('unemergency');\n }}\n >\n Pro\n \n {\n onTab('assist');\n }}\n >\n Basic\n \n \n\n \n\n \n 이용자 성함 / 성별\n 관계\n \n \n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'patient', value: ev.target.value });\n }}\n />\n\n \n {\n onSex('남');\n }}\n >\n 남\n \n {\n onSex('녀');\n }}\n >\n 녀\n \n \n \n \n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'patient') && (\n 이용자 성함을 입력해주세요.\n )}\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'relate') && (\n 환자와의 관계를 선택해주세요.\n )}\n \n\n 보호자(서비스를 신청한 사람) 연락처\n \n \n\n 환자(서비스를 받는 사람) 연락처\n {\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 11) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'contact', value: ev.target.value });\n }}\n />\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'contact') && (\n 올바른 휴대전화번호를 입력해주세요.\n )}\n\n \n\n 병원 위치\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'starting') && (\n 병원 위치를 입력해주세요.\n )}\n\n \n\n 자택 주소\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'destination') && (\n 귀가시 자택 주소를 입력해주세요.\n )}\n\n \n\n \n 신청하기\n \n\n \n\n {\n if (window.innerWidth > 480) {\n e.preventDefault();\n e.stopPropagation();\n\n swal.fire({\n title: '고객 센터 연결 번호',\n text: '☎ 070-4300-9075',\n icon: 'info',\n confirmButtonText: '확인',\n });\n }\n }}\n >\n 전화 예약하기\n \n
\n );\n};\n\nexport const Step2 = ({ data, inputDeepHandler }) => {\n const { date, time, minute, sick, comment } = data;\n const onNextStep = () => {\n const fix = [];\n if (!date) fix.push('date');\n if (!sick) fix.push('sick');\n if (!comment) fix.push('comment');\n if (!time) fix.push('time');\n if (time && time >= 18) fix.push('overtime');\n if (!minute) fix.push('minute');\n\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 3 });\n };\n\n const onPrevStep = () => {\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 1 });\n };\n\n const onCalendar = value => {\n inputDeepHandler({ type: 'temp', deepType: 'date', value });\n };\n\n const sickHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'sick', value });\n };\n\n const commentHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'comment', value });\n };\n\n return (\n \n

\n 병원 동행 예약을\n
\n 마무리 해주세요\n

\n\n 예약일자\n \n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n />\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'date') && (\n 예약일자를 선택해주세요.\n )}\n\n \n\n 예약 시간\n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 23) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'time', value: ev.target.value });\n }}\n suffix='시'\n />\n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 60) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'minute', value: ev.target.value });\n }}\n suffix='분'\n />\n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'time' || r === 'minute') && (\n 서비스 이용을 위한 예약 시간을 정확히 입력해주세요.\n )}\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'overtime') && (\n 18시 이후의 서비스 예약은 불가능합니다.\n )}\n\n \n\n 병명\n {\n sickHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'sick') && (\n 환자분의 병명을 입력해주세요.\n )}\n\n \n\n 병원 이름 및 상세내용\n {\n commentHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'comment') && (\n 병원 이름 및 상세내용을 입력해주세요.\n )}\n\n \n\n \n 신청하기\n \n\n \n\n \n 이전으로\n \n
\n );\n};\n\nexport const Step3 = ({ data, inputDeepHandler, onReserve }) => {\n const addTimeSelector = value => {\n inputDeepHandler({ type: 'temp', deepType: 'addTime', value });\n };\n const transportHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'transport', value });\n };\n\n const getFee = () => {\n const { addTime = '60', service } = data;\n const minute = parseInt(addTime, 10);\n\n const time = minute / 60;\n let total = 0;\n if (service === 'unemergency') {\n total = time * 20000 + time * 20000 * 0.1;\n } else {\n total = time * 15000 + time * 15000 * 0.1;\n }\n\n if (data.transport === 'own' && data.service === 'unemergency') {\n total += 20000;\n }\n\n return total;\n };\n\n const onSaveAndNext = () => {\n const fix = [];\n onReserve();\n };\n\n return (\n \n

\n 서비스 신청내용 확인\n

\n\n 선택된 서비스\n {data && data.service === 'unemergency' ? '병원 동행 Pro' : '병원 동행 Basic'}\n\n \n\n \n 이용자 성함\n 이용자와의 관계\n \n \n \n \n \n\n \n\n \n 전화번호\n 병명\n \n \n \n \n \n\n \n\n \n 병원 위치\n 자택 주소\n \n \n \n \n \n\n \n\n \n 예약 일자\n 예약 시간\n \n \n \n \n \n\n \n\n 병원 이름 및 상세내용\n \n\n \n\n {\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n }}\n >\n 이전으로\n \n\n \n\n

\n 예약 접수하기\n

\n\n \n 예상 소요 시간\n \n \n 1시간\n 1시간 30분\n 2시간\n 2시간 30분\n 3시간\n 3시간 30분\n 4시간\n 4시간 30분\n 5시간\n 5시간 30분\n 6시간\n 6시간 30분\n 7시간\n 7시간 30분\n 8시간\n \n\n {data && data.service === 'unemergency' && (\n <>\n \n\n 이동 수단 선택\n \n 대중교통 이용 (택시・버스 등)\n 본인소유 자차 이용\n {/* 위드메이트 차량 호출 */}\n \n {data.transport && data.transport === 'own' && * 자차 이용시, 운전자 보험 변경 필수}\n \n )}\n\n \n\n 총 예상비용\n ₩ {getFee()}\n (VAT 10% 포함된 가격입니다)\n\n \n\n 결제수단\n 계좌이체\n\n \n\n - 입금계좌는 서비스 종료 후 안내됩니다.\n - 카드 결제는 예약접수 후, 고객센터에 문의바랍니다.\n - 환불 및 접수 취소에 대한 자세한 안내 사항은 FAQ에서 확인 가능합니다.\n - 위드메이트는 후불제 서비스입니다.\n\n \n\n \n 예약 접수하기\n \n \n * 위드메이트는 자율형 매칭 플랫폼으로, 예약접수 시 서비스 매칭 인력 배정이 보장되지 않음을 알려드립니다.\n \n
\n );\n};\n\nexport const ContractdStep_1 = ({ data, inputDeepHandler, setDestination, onDropoReserve }) => {\n const { service, sex, relate, patient, contact, destination, starting } = data;\n\n const onTab = tab => {\n inputDeepHandler({ type: 'temp', deepType: 'service', value: tab });\n };\n\n const onSex = sex => {\n inputDeepHandler({ type: 'temp', deepType: 'sex', value: sex });\n };\n\n const onRelation = relate => {\n inputDeepHandler({ type: 'temp', deepType: 'relate', value: relate });\n };\n\n const destinationHandler = ev => {\n inputDeepHandler({ type: 'temp', deepType: 'destination', value: ev.target.value });\n };\n\n const onNextStep = () => {\n if (!localStorage.getItem('id')) {\n return message.warning('로그인 후 이용해주세요');\n }\n\n const fix = [];\n if (!relate) fix.push('relate');\n if (!contact || !celluarValidate(contact)) fix.push('contact');\n if (!patient) fix.push('patient');\n if (!destination) fix.push('destination');\n\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n };\n\n return (\n \n

\n {data.info &&\n data.info.description &&\n data.info.description.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))}\n

\n\n \n\n 서비스 선택\n {data && data.services && data.services.length > 0 && (\n \n {data.services.map((s, index) => (\n {\n onTab(s.code);\n }}\n >\n {s.serviceName}\n \n ))}\n \n )}\n \n\n \n 이용자 성함 / 성별\n 관계\n \n \n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'patient', value: ev.target.value });\n }}\n />\n\n \n {\n onSex('남');\n }}\n >\n 남\n \n {\n onSex('녀');\n }}\n >\n 녀\n \n \n \n \n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'patient') && (\n 이용자 성함을 입력해주세요.\n )}\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'relate') && (\n 환자와의 관계를 선택해주세요.\n )}\n \n\n 연락처(휴대전화번호)\n {\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 11) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'contact', value: ev.target.value });\n }}\n />\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'contact') && (\n 올바른 휴대전화번호를 입력해주세요.\n )}\n\n \n\n 병원 위치\n \n\n \n\n 자택 주소 (고향시 내 주소지만 서비스 진행 가능)\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'starting') && (\n 귀가시 자택 주소를 입력해주세요.\n )}\n\n {data && data.service === 'dropcare' && (\n <>\n \n\n \n 거주 유형\n 주택 유형\n \n \n \n 아파트\n 단독\n 다가구\n \n \n 자가\n 전.월세\n 기타\n \n \n\n \n \n 장기 요양 등급\n 확정\n \n \n \n 1등급\n 2등급\n 3등급\n 4등급\n 5등급\n \n \n 해피케어\n 장기요양\n 렌탈\n \n \n \n )}\n\n \n\n \n 신청하기\n \n
\n );\n};\n\nexport const ContractStep_2 = ({ data, inputDeepHandler }) => {\n const { date, time, minute, sick, comment } = data;\n const onNextStep = () => {\n const fix = [];\n if (!date) fix.push('date');\n if (!sick) fix.push('sick');\n if (!comment) fix.push('comment');\n if (!time) fix.push('time');\n if (time && time >= 18) fix.push('overtime');\n if (!minute) fix.push('minute');\n\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 3 });\n };\n\n const onPrevStep = () => {\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 1 });\n };\n\n const onCalendar = value => {\n inputDeepHandler({ type: 'temp', deepType: 'date', value });\n };\n\n const sickHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'sick', value });\n };\n\n const commentHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'comment', value });\n };\n\n return (\n \n

\n 예약 신청을\n
\n 마무리 해주세요\n

\n\n 예약일자\n \n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n />\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'date') && (\n 예약일자를 선택해주세요.\n )}\n\n \n\n 예약 시간\n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 23) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'time', value: ev.target.value });\n }}\n suffix='시'\n />\n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 60) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'minute', value: ev.target.value });\n }}\n suffix='분'\n />\n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'time' || r === 'minute') && (\n 서비스 이용을 위한 예약 시간을 정확히 입력해주세요.\n )}\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'overtime') && (\n 18시 이후의 서비스 예약은 불가능합니다.\n )}\n\n \n\n 병명\n {\n sickHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'sick') && (\n 환자분의 병명을 입력해주세요.\n )}\n\n \n\n 추가 요청 사항\n {\n commentHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'comment') && (\n 추가 요청 사항을 입력해주세요.\n )}\n\n \n\n \n 신청하기\n \n\n \n\n \n 이전으로\n \n
\n );\n};\n\nexport const ContractStep_3 = ({ data, inputDeepHandler, onReserve }) => {\n const addTimeSelector = value => {\n inputDeepHandler({ type: 'temp', deepType: 'addTime', value });\n };\n\n const onSaveAndNext = () => {\n const fix = [];\n\n onReserve();\n };\n\n let selectedService = '';\n if (data && data.service && data.services && data.services.length > 0 && data.services.some(s => s.code === data.service)) {\n const s = data.services.filter(s => s.code === data.service)[0];\n selectedService = s.serviceName;\n }\n\n return (\n \n

\n 서비스 신청내용 확인\n

\n\n 선택된 서비스\n {selectedService}\n\n \n\n \n 이용자 성함\n 이용자와의 관계\n \n \n \n \n \n\n \n\n \n 전화번호\n 병명\n \n \n \n \n \n\n \n\n \n 병원 위치\n 자택 주소\n \n \n \n \n \n\n \n\n \n 예약 일자\n 예약 시간\n \n \n \n \n \n\n \n\n 병원 이름 및 상세내용\n \n\n \n\n {\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n }}\n >\n 이전으로\n \n\n \n\n

\n 예약 접수하기\n

\n\n \n 예상 소요 시간\n \n \n 1시간\n 1시간 30분\n 2시간\n 2시간 30분\n 3시간\n 3시간 30분\n 4시간\n 4시간 30분\n 5시간\n 5시간 30분\n 6시간\n 6시간 30분\n 7시간\n 7시간 30분\n 8시간\n \n\n \n\n \n 예약 접수하기\n \n
\n );\n};\n\nconst RelativeWrapper = styled.div`\n position: relative;\n\n > input {\n width: 100% !important;\n }\n`;\n\nconst SigleButtonWrapper = styled.div`\n position: absolute;\n top: 1px;\n right: 1px;\n`;\n\nconst SigleButton = styled.span`\n display: inline-block;\n width: 43px;\n height: 100%;\n line-height: 43px;\n\n cursor: pointer;\n font-size: 11px;\n color: ${props => (props.active ? '#ffffff' : Pallete.dark60)};\n text-align: center;\n\n background-color: ${props => (props.active ? Pallete.blue50 : '#ffffff')};\n`;\n\nconst AlertMessage = styled.p`\n margin-bottom: 0px;\n margin-top: 4px;\n\n font-size: 11px;\n color: red;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Select, ConfigProvider, DatePicker } from 'antd';\nimport holidayKR from 'holiday-kr';\nimport moment from 'moment';\n\nimport 'moment/locale/zh-cn';\nimport locale from 'antd/es/locale/ko_KR';\n\n// components\nimport {\n DivisionLine,\n WithmateLabel,\n WithmateInput,\n WithamteInputWithButton,\n HalfWithmateInput,\n WithmateTextarea,\n WithmateSelect,\n FlexWrapper,\n HalfWithmateSelect,\n WithmateDatePicker,\n BorderDivisionLine,\n StyledHotFix,\n WithmateValue,\n WithmateValueTip,\n} from '../Common/input';\nimport { H1, H2, H3, H4, H5, H6, Text } from '../Common/text';\nimport { Container } from '../Common/container';\nimport { TabContainer, Tab } from '../Common/tab';\nimport { FullWidthButton } from '../Common/button';\n\n// utils\nimport Pallete from '../../theme';\nimport { isNotNumber, celluarValidate } from '../../Lib/regex';\nimport { ASSIST } from '../../Lib/variables';\n\nexport const EditStep1 = ({ data, inputDeepHandler, setDestination, setStarting }) => {\n const { service, sex, relate, patient, contact, destination, starting, status } = data;\n\n const onTab = tab => {\n inputDeepHandler({ type: 'temp', deepType: 'service', value: tab });\n };\n\n const onSex = sex => {\n inputDeepHandler({ type: 'temp', deepType: 'sex', value: sex });\n };\n\n const onRelation = relate => {\n inputDeepHandler({ type: 'temp', deepType: 'relate', value: relate });\n };\n\n const destinationHandler = ev => {\n inputDeepHandler({ type: 'temp', deepType: 'destination', value: ev.target.value });\n };\n\n const startingHandler = ev => {\n inputDeepHandler({ type: 'temp', deepType: 'starting', value: ev.target.value });\n };\n\n const onNextStep = () => {\n const fix = [];\n if (!relate) fix.push('relate');\n if (!contact || !celluarValidate(contact)) fix.push('contact');\n if (!patient) fix.push('patient');\n if (!starting) fix.push('starting');\n if (service === 'unemergency' && !destination) fix.push('destination');\n\n if (!data.disabled) {\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n }\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n };\n\n return (\n \n

\n 병원 동행 예약을\n
\n 확인해주세요\n

\n\n \n\n 서비스 선택\n \n {\n if (data && !data.disabled) onTab('unemergency');\n }}\n >\n Pro\n \n {\n if (data && !data.disabled) onTab('assist');\n }}\n >\n Basic\n \n \n\n \n\n \n 이용자 성함 / 성별\n 관계\n \n \n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'patient', value: ev.target.value });\n }}\n />\n\n \n {\n if (data && !data.disabled) onSex('남');\n }}\n >\n 남\n \n {\n if (data && !data.disabled) onSex('녀');\n }}\n >\n 녀\n \n \n \n \n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'patient') && (\n 이용자 성함을 입력해주세요.\n )}\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'relate') && (\n 환자와의 관계를 선택해주세요.\n )}\n \n\n 연락처(휴대전화번호)\n {\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 11) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'contact', value: ev.target.value });\n }}\n />\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'contact') && (\n 올바른 휴대전화번호를 입력해주세요.\n )}\n\n \n\n 병원 위치\n {},\n disabled: true,\n }}\n />\n\n \n\n 자택 주소\n {},\n disabled: true,\n }}\n />\n\n \n\n \n 다음으로\n \n
\n );\n};\n\nexport const EditStep2 = ({ data, inputDeepHandler, onClose, onModify }) => {\n const { date, time, minute, sick, comment } = data;\n const onNextStep = () => {\n const fix = [];\n if (!date) fix.push('date');\n if (!sick) fix.push('sick');\n if (!comment) fix.push('comment');\n if (!time) fix.push('time');\n if (time && time >= 18) fix.push('overtime');\n if (!minute) fix.push('minute');\n\n if (!data.disabled) {\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n }\n\n // onModify();\n };\n\n const onCancelReserve = () => {};\n\n const onPrevStep = () => {\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 1 });\n };\n\n const onCalendar = value => {\n inputDeepHandler({ type: 'temp', deepType: 'date', value });\n };\n\n const sickHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'sick', value });\n };\n\n const commentHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'comment', value });\n };\n\n const getFee = () => {\n const _transport = data.transport && data.transport === 'own' ? 20000 : 0;\n const _service =\n data.productInfo &&\n data.service &&\n (data.service === 'unemergency' ? data.productInfo.proPrice : data.productInfo.basicPrice ? data.productInfo.basicPrice : 0) * data.usageTime;\n\n const _point = (data.usingPoint || 0) * -1;\n\n return _transport + _service + _point;\n };\n\n const addTimeSelector = value => {\n inputDeepHandler({ type: 'temp', deepType: 'addTime', value });\n };\n\n const transportHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'transport', value });\n };\n\n return (\n \n

\n 병원 동행 예약을\n
\n 확인해주세요\n

\n\n {data.meetDate && (\n <>\n {data.service === ASSIST ? '병원 도착 요청 일자' : '자택 도착 희망 일자'}\n \n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n />\n \n \n {data.service === ASSIST ? '병원 도착 요청 시간' : '자택 도착 희망 시간'}\n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 23) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'meetTime', value: ev.target.value });\n }}\n suffix='시'\n />\n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 60) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'meetMinute', value: ev.target.value });\n }}\n suffix='분'\n />\n \n \n \n )}\n\n 예약일자\n \n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n />\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'date') && (\n 예약일자를 선택해주세요.\n )}\n\n \n 병원 진료 예약 시간\n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 23) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'time', value: ev.target.value });\n }}\n suffix='시'\n />\n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 60) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'minute', value: ev.target.value });\n }}\n suffix='분'\n />\n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'time' || r === 'minute') && (\n 서비스 이용을 위한 예약 시간을 정확히 입력해주세요.\n )}\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'overtime') && (\n 18시 이후의 서비스 예약은 불가능합니다.\n )}\n\n \n\n 추가 요청 사항\n {\n commentHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'comment') && (\n 병원 이름 및 상세내용을 입력해주세요.\n )}\n\n {data && data.service === 'unemergency' && (\n <>\n \n\n 이동 수단 선택\n \n 대중교통 이용 (택시・버스 등)\n 본인소유 자차 이용\n {data.disabled && 위드메이트 차량 호출}\n {data.transport && data.transport === 'own' && * 자차 이용시, 운전자 보험 변경 필수}\n \n \n )}\n\n \n\n \n 예상 소요 시간\n \n \n 1시간\n 1시간 30분\n 2시간\n 2시간 30분\n 3시간\n 3시간 30분\n 4시간\n 4시간 30분\n 5시간\n 5시간 30분\n 6시간\n 6시간 30분\n 7시간\n 7시간 30분\n 8시간\n \n\n \n\n 총 예상 비용 (실제 비용과 다를 수 있습니다)\n ₩ {getFee()}\n (VAT 10% 포함된 가격입니다)\n\n \n\n {/* {data && !data.disabled && ( */}\n {data && (\n <>\n \n 예약 변경\n \n \n \n )}\n\n \n 확인완료\n \n
\n );\n};\n\nexport const ContractEditStep_1 = ({ data, inputDeepHandler, setDestination, onDropoReserve }) => {\n const { service, sex, relate, patient, contact, destination, starting } = data;\n\n const onTab = tab => {\n inputDeepHandler({ type: 'temp', deepType: 'service', value: tab });\n };\n\n const onSex = sex => {\n inputDeepHandler({ type: 'temp', deepType: 'sex', value: sex });\n };\n\n const onRelation = relate => {\n inputDeepHandler({ type: 'temp', deepType: 'relate', value: relate });\n };\n\n const onNextStep = () => {\n const fix = [];\n if (!relate) fix.push('relate');\n if (!contact || !celluarValidate(contact)) fix.push('contact');\n if (!patient) fix.push('patient');\n if (!destination) fix.push('destination');\n\n inputDeepHandler({ type: 'temp', deepType: 'reserveHotFix', value: fix });\n if (fix.length > 0) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'step', value: 2 });\n };\n\n return (\n \n

\n 예약을\n
\n 확인해주세요\n

\n\n \n\n \n 이용자 성함 / 성별\n 관계\n \n \n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'patient', value: ev.target.value });\n }}\n />\n\n \n {\n onSex('남');\n }}\n >\n 남\n \n {\n onSex('녀');\n }}\n >\n 녀\n \n \n \n \n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'patient') && (\n 이용자 성함을 입력해주세요.\n )}\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'relate') && (\n 환자와의 관계를 선택해주세요.\n )}\n \n\n 연락처(휴대전화번호)\n {\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 11) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'contact', value: ev.target.value });\n }}\n />\n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'contact') && (\n 올바른 휴대전화번호를 입력해주세요.\n )}\n\n \n\n 병원 위치\n \n\n \n\n 자택 주소 (고향시 내 주소지만 서비스 진행 가능)\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'starting') && (\n 귀가시 자택 주소를 입력해주세요.\n )}\n\n {data && data.service === 'dropcare' && (\n <>\n \n\n \n 거주 유형\n 주택 유형\n \n \n \n 아파트\n 단독\n 다가구\n \n \n 자가\n 전.월세\n 기타\n \n \n\n \n \n 장기 요양 등급\n 확정\n \n \n \n 1등급\n 2등급\n 3등급\n 4등급\n 5등급\n \n \n 해피케어\n 장기요양\n 렌탈\n \n \n \n )}\n\n \n\n \n 다음으로\n \n
\n );\n};\n\nexport const ContractEditStep_2 = ({ data, inputDeepHandler, onClose }) => {\n const onCalendar = value => {\n inputDeepHandler({ type: 'temp', deepType: 'date', value });\n };\n\n const sickHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'sick', value });\n };\n\n const commentHandler = value => {\n inputDeepHandler({ type: 'temp', deepType: 'comment', value });\n };\n\n const getFee = () => {\n const _transport = data.transport && data.transport === 'own' ? 20000 : 0;\n const _service =\n data.productInfo &&\n data.service &&\n (data.service === 'unemergency' ? data.productInfo.proPrice : data.productInfo.basicPrice ? data.productInfo.basicPrice : 0) * data.usageTime;\n\n const _point = (data.usingPoint || 0) * -1;\n\n return _transport + _service + _point;\n };\n\n return (\n \n

\n 예약을\n
\n 확인해주세요\n

\n\n 예약일자\n \n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n />\n \n\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'date') && (\n 예약일자를 선택해주세요.\n )}\n\n \n\n 예약 시간\n \n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 23) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'time', value: ev.target.value });\n }}\n suffix='시'\n />\n {\n if (ev.target.value && ev.target.value.length > 10) return null;\n const numValue = parseFloat(ev.target.value);\n if (typeof numValue !== 'number') return null;\n if (ev.nativeEvent.data && isNotNumber(ev.nativeEvent.data)) {\n ev.preventDefault();\n return null;\n }\n if (ev.target.value.length > 2 || numValue > 60) return null;\n\n inputDeepHandler({ type: 'temp', deepType: 'minute', value: ev.target.value });\n }}\n suffix='분'\n />\n \n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'time' || r === 'minute') && (\n 서비스 이용을 위한 예약 시간을 정확히 입력해주세요.\n )}\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'overtime') && (\n 18시 이후의 서비스 예약은 불가능합니다.\n )}\n\n \n\n 추가 요청 사항\n {\n commentHandler(ev.target.value);\n }}\n />\n {data && data.reserveHotFix && data.reserveHotFix.length > 0 && data.reserveHotFix.some(r => r === 'comment') && (\n 추가 요청 사항을 입력해주세요.\n )}\n\n \n\n 이동 수단 선택\n \n {data.transport === 'own'\n ? '본인소유 자차 이용'\n : data.transport === 'common'\n ? '대중교통 이용 (택시・버스 등)'\n : data.transport === 'withcar'\n ? '위드메이트 차량 호출'\n : '-'}\n \n\n \n\n \n 예상 소요 시간\n \n {parseInt(data.addTime || 0, 10) / 60} 시간\n\n \n\n 총 예상비용\n ₩ {getFee()}\n (VAT 10% 포함된 가격입니다)\n\n \n\n \n 확인완료\n \n
\n );\n};\nconst RelativeWrapper = styled.div`\n position: relative;\n\n > input {\n width: 100% !important;\n }\n`;\n\nconst SigleButtonWrapper = styled.div`\n position: absolute;\n top: 1px;\n right: 1px;\n`;\n\nconst SigleButton = styled.span`\n display: inline-block;\n width: 43px;\n height: 100%;\n line-height: 43px;\n // border-radius: 4px;\n\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n font-size: 11px;\n color: ${props => (props.active ? '#ffffff' : Pallete.dark60)};\n text-align: center;\n\n background-color: ${props => (props.active ? Pallete.blue50 : '#ffffff')};\n`;\n\nconst AlertMessage = styled.p`\n margin-bottom: 0px;\n margin-top: 4px;\n\n font-size: 11px;\n color: #565656;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Modal from 'react-modal';\nimport { Timeline } from 'antd';\nimport moment from 'moment';\n\n// components\nimport { TabContainer, Tab } from '../Components/Common/tab';\nimport { FullWidthButton, HalfWidthButton, ButtonWrapper } from '../Components/Common/button';\nimport {\n DivisionLine,\n WithmateLabel,\n WithmateInput,\n HalfWithmateInput,\n WithmateTextarea,\n WithmateSelect,\n FlexWrapper,\n FlexDiv,\n HalfWithmateSelect,\n} from '../Components/Common/input';\n\nimport { Step1, Step2, Step3, ContractdStep_1, ContractStep_2, ContractStep_3 } from './Reserve/step';\nimport { EditStep1, EditStep2, ContractEditStep_1, ContractEditStep_2 } from './Reserve/editStep';\nimport ColorPallete from '../theme';\n\nconst customStyles = {\n overlay: {\n display: 'flex',\n\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n alignItems: 'center',\n justifyContent: 'center',\n\n zIndex: '99999999999999 !important',\n },\n content: {\n width: '100%',\n height: '100%',\n boxShadow: 'initial',\n border: '0px',\n top: '0px',\n left: '0px',\n right: '0px',\n bottom: '0px',\n backgroundColor: 'transparent',\n padding: '0px',\n\n display: 'flex',\n alignItems: 'center',\n },\n};\n\nclass CustomModal extends React.PureComponent {\n state = {};\n\n componentDidMount = () => {\n window.addEventListener('resize', this.onCheckSize, false);\n if (this.props.visible) {\n document.body.style.overflow = 'hidden';\n }\n };\n\n componentWillUnmount = () => {\n window.removeEventListener('resize', this.onCheckSize, false);\n document.body.style.overflow = 'unset';\n };\n\n onCheckSize = () => {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const innerContent = document.getElementById(this.props.childrenId);\n\n if (windowWidth <= 480) {\n let top = innerContent.clientHeight / windowHeight >= 0.8 ? '100px' : 'initial';\n let bottom = innerContent.clientHeight / windowHeight >= 0.8 ? 'initial' : '0px';\n\n if (this.props.childrenId && this.props.childrenId.includes('full-header')) {\n top = '0px';\n bottom = '0px';\n }\n\n innerContent.style.maxWidth = '424px';\n innerContent.style.top = top;\n innerContent.style.bottom = bottom;\n\n this.setState({\n top,\n bottom,\n });\n } else {\n innerContent.style.maxWidth = this.props.childrenId && this.props.childrenId.includes('wide') ? '720px' : '424px';\n innerContent.style.top = windowHeight * 0.15 + 'px';\n innerContent.style.marginBottom = windowHeight * 0.15 + 'px';\n }\n };\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport const CommonWithmateModal = ({ visible, config = {}, onCancel, onOk }) => {\n return (\n \n \n {!config.noClose && }\n\n \n {config && config.title ? config.title : ''}\n \n {config && config.description ? config.description : ''}\n \n \n\n \n {/* contents */}\n {config && config.content ? config.content : null}\n \n {/* cancel */}\n {config && config.cancelText && onCancel && typeof onCancel === 'function' ? (\n \n {config && config.cancelText ? config.cancelText : '취소'}\n \n ) : null}\n {/* confirm */}\n \n {config && config.confirmText ? config.confirmText : '확인 및 저장'}\n \n \n \n \n \n );\n};\n\nexport const SampleModal = ({ visible, visibleHandler, inputHandler, inputDeepHandler, data, onSave }) => {\n return (\n \n \n \n \n \n \n\n \n \n \n );\n};\n\nexport const NoramlReserveModal = ({ visible, visibleHandler, inputHandler, inputDeepHandler, data, setDestination, setStarting, onSave }) => {\n const { step = 1 } = data;\n\n return (\n \n \n \n\n \n {step === 1 && }\n\n {step === 2 && }\n\n {step === 3 ? : null}\n \n \n \n );\n};\n\nexport const HappyReserveModal = ({ visible, visibleHandler, inputHandler, inputDeepHandler, data, setDestination, setStarting, onSave, onDropSave }) => {\n const { step = 1 } = data;\n\n return (\n \n \n \n\n \n {step === 1 && (\n \n )}\n\n {step === 2 && }\n\n {step === 3 ? : null}\n \n \n \n );\n};\n\nexport const NoramlReserveEditModal = ({ visible, visibleHandler, data, inputDeepHandler, onModify }) => {\n const { step = 1 } = data;\n return (\n \n \n \n \n {step === 1 && }\n\n {step === 2 && }\n \n \n \n );\n};\n\nexport const HappyReserveEditModal = ({ visible, visibleHandler, data, inputDeepHandler, onModify }) => {\n const { step = 1 } = data;\n return (\n \n \n \n \n {step === 1 && }\n\n {step === 2 && }\n \n \n \n );\n};\n\nexport const NewHandleReportModal = ({ visible, visibleHandler, data, inputHandler, onSave }) => {\n return (\n \n \n \n \n 서비스 리포트 작성\n \n *서비스 리포트를 작성하지 않을 경우 서비스 종료로 인정되지 않습니다.\n
\n 환자와 헤어진 후 1시간 내에 꼭 리포트를 작성해주세요. 리포트 작성 완료 후 정산이 진행됩니다*\n
\n
\n \n \n\n 서비스 진행 중 특이사항\n {\n inputHandler({ type: 'description', value: ev.target.value });\n }}\n />\n\n \n\n 진료 및 치료 내용\n {\n inputHandler({ type: 'care', value: ev.target.value });\n }}\n />\n\n \n\n 복약지도 사항\n {\n inputHandler({ type: 'medicine', value: ev.target.value });\n }}\n />\n\n \n\n 다음 진료 일정 정리\n {\n inputHandler({ type: 'nextSchedule', value: ev.target.value });\n }}\n />\n\n \n\n 메이트 전달 사항\n {\n inputHandler({ type: 'mateComment', value: ev.target.value });\n }}\n />\n\n \n\n 의료 기관 및 의사 평가\n {\n inputHandler({ type: 'doctorComment', value: ev.target.value });\n }}\n />\n\n \n\n \n \n 닫기\n \n \n 리포트 등록하기\n \n \n \n
\n
\n );\n};\n\nexport const NoReportModal = ({ visible, visibleHandler, onNext }) => {\n return (\n \n \n \n \n 서비스 리포트 미완료 예약 알림\n \n \n \n\n

서비스 리포트 작성을 완료하지않은 수행 이력이 있습니다.

\n

서비스 리포트 등록을 완료하고 서비스 수행 대금을 수령해보세요.

\n\n \n\n \n \n 리포트 작성하러 가기\n \n \n
\n
\n
\n );\n};\nexport const ReportMoal = ({ visible, visibleHandler, data }) => {\n const { report, timeline, selectedServiceName } = data;\n\n return (\n \n \n \n \n 서비스 리포트\n \n \n \n\n \n

{moment(report.createdAt).format('YYYY년 MM월 DD일')}

\n \n 금일 {selectedServiceName} 서비스는\n \n 총 {moment(timeline.complete.time).diff(timeline.receipt.time, 'minutes')}분\n \n 동안 진행됐습니다.\n \n
\n\n \n {timeline && timeline.receipt && timeline.receipt.time && (\n 고객님과 메이트가 만났습니다.\n )}\n {timeline && timeline.start && timeline.start.time && (\n 병원으로 출발했습니다.\n )}\n {timeline && timeline.arrived && timeline.arrived.time && (\n 병원에 도착했습니다.\n )}\n {timeline && timeline.careStart && timeline.careStart.time && (\n 진료를 시작했습니다.\n )}\n {timeline && timeline.careDone && timeline.careDone.time && (\n \n 진료가 종료됐습니다. {moment(timeline.careDone.time).diff(moment(timeline.careStart.time).toDate(), 'minutes')}분 동안\n 진료했습니다.\n \n )}\n\n {timeline && timeline.treatmentStart && timeline.treatmentStart.time && (\n 치료를 시작했습니다.\n )}\n {timeline && timeline.treatmentDone && timeline.treatmentDone.time && (\n \n 치료가 종료됐습니다. {moment(timeline.treatmentDone.time).diff(moment(timeline.treatmentStart.time).toDate(), 'minutes')}분 동안\n 치료했습니다.\n \n )}\n\n {/* 진료 시작/종료(두 번째) */}\n {timeline && timeline.careStart_second && timeline.careStart_second.time && (\n \n 진료(두 번째)를 시작했습니다.\n \n )}\n {timeline && timeline.careDone_second && timeline.careDone_second.time && (\n \n 진료(두 번째)가 종료됐습니다.{' '}\n {moment(timeline.careDone_second.time).diff(moment(timeline.careStart_second.time).toDate(), 'minutes')}분 동안 진료했습니다.\n \n )}\n {/* 치료 시작/종료(두 번째) */}\n {timeline && timeline.treatmentStart_second && timeline.treatmentStart_second.time && (\n \n 치료(두 번째)를 시작했습니다.\n \n )}\n {timeline && timeline.treatmentDone_second && timeline.treatmentDone_second.time && (\n \n 치료(두 번째)가 종료됐습니다.{' '}\n {moment(timeline.treatmentDone_second.time).diff(moment(timeline.treatmentStart_second.time).toDate(), 'minutes')}분 동안\n 치료했습니다.\n \n )}\n\n {/* 진료 시작/종료(세 번째) */}\n {timeline && timeline.careStart_third && timeline.careStart_third.time && (\n \n 진료(세 번째)를 시작했습니다.\n \n )}\n {timeline && timeline.careDone_third && timeline.careDone_third.time && (\n \n 진료(세 번째)가 종료됐습니다.{' '}\n {moment(timeline.careDone_third.time).diff(moment(timeline.careStart_third.time).toDate(), 'minutes')}분 동안 진료했습니다.\n \n )}\n {/* 치료 시작/종료(세 번째) */}\n {timeline && timeline.treatmentStart_third && timeline.treatmentStart_third.time && (\n \n 치료(세 번째)를 시작했습니다.\n \n )}\n {timeline && timeline.treatmentDone_third && timeline.treatmentDone_third.time && (\n \n 치료(세 번째)가 종료됐습니다.{' '}\n {moment(timeline.treatmentDone_third.time).diff(moment(timeline.treatmentStart_third.time).toDate(), 'minutes')}분 동안\n 치료했습니다.\n \n )}\n\n {timeline && timeline.backStart && timeline.backStart.time && (\n 귀가를 시작했습니다.\n )}\n {timeline && timeline.complete && timeline.complete.time && (\n \n 귀가 완료하였으며, 서비스가 종료됐습니다.\n \n )}\n \n {report.description && (\n <>\n \n

서비스 진행 중 특이사항

\n \n {(report.description &&\n report.description.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))) ||\n '-'}\n
\n
\n\n \n \n )}\n\n {report.care && (\n <>\n \n

진료 및 치료 내용

\n \n {(report.care &&\n report.care.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))) ||\n '-'}\n
\n
\n \n \n )}\n\n {report.medicine && (\n <>\n \n

복약지도 내용

\n \n {(report.medicine &&\n report.medicine.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))) ||\n '-'}\n
\n
\n\n \n \n )}\n {report.nextSchedule && (\n <>\n \n

다음 진료 일정 정리

\n \n {(report.nextSchedule &&\n report.nextSchedule.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))) ||\n '-'}\n
\n
\n\n \n \n )}\n {report.mateComment && (\n <>\n \n

메이트 전달 사항

\n \n {(report.mateComment &&\n report.mateComment.split('\\n').map((word, index) => (\n \n {word}\n
\n
\n ))) ||\n '-'}\n
\n
\n\n \n \n )}\n\n {selectedServiceName.includes('은평 성모병원') && (\n <>\n \n

가톨릭대학교 은평성모병원 안내 말

\n \n {(report.mateComment &&\n report.mateComment.split('\\n').map((word, index) => (\n \n 가톨릭대학교 은평성모병원을 이용해 주셔서 감사드립니다.
\n 최고의 환자경험이 되도록 항상 최선을 다하겠습니다.\n
\n
\n ))) ||\n '-'}\n
\n
\n\n \n \n )}\n\n \n \n 닫기\n \n \n
\n
\n
\n );\n};\n\nconst ModalInnerContainer = styled.div`\n position: absolute;\n left: 0px;\n right: 0px;\n\n box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);\n border: 1px solid #e6e6e6;\n background-color: #ffffff;\n border-radius: 8px;\n\n width: 100%;\n max-width: 424px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none;\n }\n\n margin: 0 auto;\n height: auto;\n padding: 24px;\n\n ${props =>\n props.onlyMobile\n ? `\n display: none;\n `\n : ''}\n @media (max-width: 480px) {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n bottom: 0px;\n padding: 16px;\n\n ${props =>\n props.onlyMobile\n ? `\n display: flex;\n border-radius: 0px;\n padding: 0px;\n `\n : ''}\n }\n`;\n\nconst TitleSection = styled.div``;\n\nconst HeaderTitleSection = styled.div`\n height: 44px;\n line-height: 44px;\n font-size: 15px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.45px;\n text-align: center;\n color: #161616;\n border-bottom: 1px solid #e9e9e9;\n > span.mobile-only {\n font-size: 15px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.45px;\n text-align: center;\n color: #161616;\n }\n position: relative;\n > img {\n position: absolute;\n top: 6px;\n left: 10px;\n width: 32px;\n height: 32px;\n object-fit: contain;\n cursor: pointer;\n }\n > img.close {\n left: unset;\n right: 10px;\n }\n @media (min-width: 480px) {\n height: unset;\n line-height: unset;\n border-bottom: 0px;\n > span.mobile-only {\n display: none;\n }\n > img.mobile-only {\n display: none;\n }\n }\n`;\n\nconst ContentSection = styled.div`\n flex: 1;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst MobileContentSection = styled(ContentSection)`\n padding: 16px;\n @media (min-width: 480px) {\n padding: 0px;\n }\n`;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 24px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;\nconst CommonModalTitle = styled.p`\n font-size: 28px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n text-align: left;\n color: #161616;\n\n margin-bottom: ${props => (props.withSub ? '8px' : '16px')};\n`;\n\nconst CommonModalSubtitle = styled.p`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: -0.7px;\n text-align: center;\n color: #565656;\n\n margin-bottom: 40px;\n\n @media (max-width: 480px) {\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.46;\n letter-spacing: -0.65px;\n text-align: center;\n margin-bottom: 32px;\n }\n`;\n\nconst CommonModalDescription = styled.p`\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n text-align: center;\n color: #a6a6a6;\n margin-top: -32px;\n margin-bottom: 40px;\n\n @media (max-width: 480px) {\n font-size: 11px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.55;\n letter-spacing: -0.55px;\n text-align: center;\n }\n`;\n\nconst ReportInfoBlock = styled.div`\n padding-bottom: 24px;\n border-bottom: 1px solid #e9e9e9;\n\n > p.title {\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: normal;\n text-align: left;\n color: #afb0b2;\n margin-bottom: 8px;\n }\n`;\n\nconst ReportDescription = styled.div`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n`;\n","import React, { Component } from 'react';\nimport Styled from 'styled-components';\nimport { withRouter } from 'react-router-dom';\nimport KakaoLoginImg from './o2.png';\nimport KakaoLoginImgM from './o.png';\nimport { KAKAO, USER } from '../../../../Lib/variables';\nimport { notification } from 'antd';\n\nconst { Kakao } = window;\n\nclass KakaoLogin extends Component {\n onEdit = ({ type, value }) => {\n this.props.editRegisterForm({ type, value });\n };\n\n checkUser = async ({ email }) => {\n const { userType, type } = this.props.auth.registerForm;\n const resolve = await this.props.checkUserId({ id: email, userType: USER, type: KAKAO });\n console.log(resolve);\n return resolve;\n };\n\n register = async ({ email, gender }) => {\n const { photo, contact, marketing, connection, birth, message, userType, type, name } = this.props.auth.registerForm;\n this.onEdit({ type: 'type', value: KAKAO });\n this.onEdit({ type: 'email', value: email });\n this.onEdit({ type: 'sex', value: gender === 'male' ? '남' : '녀' });\n this.props.history.push('/user/register');\n // const resolve = await this.props.register({ id: email, userType: USER, name, type: KAKAO, photo, contact, marketing, connection, birth, sex: gender });\n // if (resolve && resolve.message === 'success') {\n // }\n\n // if (resolve === 'check parameters') {\n // notification.open({\n // message: '회원가입에 실패하였습니다.',\n // description: '누락된 정보가 없는지 확인해주세요.',\n // type: 'success',\n // });\n // }\n };\n\n login = async ({ email }) => {\n const { userType, type } = this.props.auth.registerForm;\n const resolve = await this.props.login({ id: email, userType: USER, type: KAKAO });\n if (resolve === 'not exist') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '존재하지 않는 사용자의 아이디입니다. 아이디를 확인해주세요.',\n });\n }\n\n if (resolve === 'not allowed') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '관리자로부터의 가입 승인을 대기중입니다. ',\n });\n }\n\n if (resolve === 'wrong password') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '잘못된 비밀번호입니다. 확인 후 다시 시도해주세요. ',\n });\n }\n };\n\n loginWithKakao = () => {\n // scope : 수집할 사용자 정보 명시(동의항목)\n const scope = 'profile_nickname, gender, account_email';\n\n const that = this;\n // const { photo, contact, marketing, connection, birth, message } = this.props.auth.registerForm;\n\n Kakao.Auth.login({\n scope,\n // success는 인증 정보를 응답(response) 받는다.\n success: function (response) {\n //카카오 SDK에 사용자 토큰을 설정한다.\n window.Kakao.Auth.setAccessToken(response.access_token);\n // console.log(`AccessToken 정보 : ${window.Kakao.Auth.getAccessToken()}`);\n\n window.Kakao.API.request({\n url: '/v2/user/me',\n success: async function ({ kakao_account }) {\n //어떤 정보 넘어오는지 확인\n // console.log(kakao_account);\n const { email, gender } = kakao_account;\n\n // console.log(email)\n const resolve = await that.checkUser({ email });\n console.log(resolve);\n if (resolve === true) {\n that.login({ email });\n } else {\n that.register({ email, gender });\n }\n },\n fail: function (error) {\n console.log(error);\n },\n });\n },\n fail: function (error) {\n console.log(error);\n },\n });\n };\n render() {\n const { location } = this.props.history;\n\n let viewToShow;\n if (location.pathname.includes('/login')) {\n viewToShow = 카카오 로그인;\n } else if (location.pathname.includes('/mainRegister')) {\n viewToShow = (\n \n 카카오\n \n );\n }\n\n return
{viewToShow}
;\n }\n}\n\nexport default withRouter(KakaoLogin);\n\nconst ButtonWrap = Styled.div`\n background-image: url(${KakaoLoginImg});\n background-repeat: no-repeat;\n margin: -10px auto;\n padding-top: 12px;\n text-align: center;\n font-weight: bold;\n width: 100%;\n height: 45px;\n border-radius: 12px;\n\n @media (max-width: 768px) {\n background-image: url(${KakaoLoginImgM});\n width: 100%;\n height: 45px;\n }\n`;\n\nconst ButtonWrap2 = Styled.div`\n background-image: url(${'/assets/images/icons/kakaotalk.png'});\n background-repeat: no-repeat;\n margin: -10px auto;\n text-align: center;\n width: 50px;\n height: 50px;\n overflow: hidden;\n\n @media (max-width: 768px) {\n background-image: url(${'/assets/images/icons/kakaotalk.png'});\n width: 100%;\n height: 45px;\n }\n\n span.visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n border: 0;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n }\n`;\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { notification, message, Input, Button } from 'antd';\nimport { LOCAL, MATE, USER } from '../../../../Lib/variables';\nimport { CommonWithmateModal } from '../../../../Components/newModal';\nimport { DivisionLine, WithmateInput } from '../../../../Components/Common/input';\n\nimport KakaoLogin from './KakaoLogin';\n\nclass LoginComponent extends React.PureComponent {\n state = {\n modal: false,\n modalTitle: '',\n modalInfo: '',\n };\n\n onEdit = ({ type, value }) => {\n this.props.editLoginForm({ type, value });\n };\n\n login = () => {\n const { email, password, userType } = this.props.auth.loginForm;\n const type = LOCAL;\n\n this.props\n .login({ id: email, password, userType, type })\n .then(resolve => {\n if (resolve === 'not exist') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '존재하지 않는 사용자의 아이디입니다. 아이디를 확인해주세요.',\n });\n }\n\n if (resolve === 'not allowed') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '관리자로부터의 가입 승인을 대기중입니다. ',\n });\n }\n\n if (resolve === 'wrong password') {\n return this.setState({\n modal: true,\n modalTitle: '이메일 로그인',\n modalInfo: '잘못된 비밀번호입니다. 확인 후 다시 시도해주세요. ',\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n // return notification.open({\n // message: '로그인 에러',\n // description: '로그인 처리중 에러가 발생하였습니다. 새로고침 후 다시 시도해주세요.',\n // type: 'error',\n // });\n });\n };\n\n render() {\n const { loginForm } = this.props.auth;\n\n return (\n
\n
\n
\n
\n 위드메이트 로고

로그인

\n
\n
위드메이트의 서비스를 이용하기 위해 로그인을 해주세요.
\n
\n
\n
\n {\n this.onEdit({ type: 'userType', value: USER });\n }}\n className={`type ${loginForm && loginForm.userType === USER ? 'active' : undefined}`}\n >\n

일반 고객 로그인

\n
병원 동행서비스를 이용하고 싶어요!
\n
\n
\n
\n {\n this.onEdit({ type: 'userType', value: MATE });\n }}\n className={`type ${loginForm && loginForm.userType === MATE ? 'active' : undefined}`}\n >\n

메이트 로그인

\n
병원 동행서비스를 수행하는 메이트로 활동하고 싶어요!
\n
\n
\n
\n {loginForm.userType === USER ? <>\n
\n \n {\n this.onEdit({ type: 'email', value: ev.target.value });\n }}\n placeholder='ex) korea@mail.com'\n />\n \n {\n this.onEdit({ type: 'password', value: ev.target.value });\n }}\n onPressEnter={this.login}\n placeholder='비밀번호를 입력해주세요'\n />\n\n \n {loginForm.userType === USER ?\n : null\n }\n\n \n\n
\n {\n this.props.history.push('/user/register');\n }}\n >\n 회원가입\n \n {\n this.props.history.push('/user/find/password');\n }}\n >\n 비밀번호 찾기\n \n {\n this.props.history.push('/mate/apply');\n }}\n >\n 메이트 지원하기\n \n
\n
\n : null}\n\n {loginForm.userType === MATE ? <>\n
\n \n {\n this.onEdit({ type: 'email', value: ev.target.value });\n }}\n placeholder='ex) korea@mail.com'\n />\n \n {\n this.onEdit({ type: 'password', value: ev.target.value });\n }}\n onPressEnter={this.login}\n placeholder='비밀번호를 입력해주세요'\n />\n\n \n\n \n\n
\n {\n this.props.history.push('/user/register');\n }}\n >\n 회원가입\n \n {\n this.props.history.push('/user/find/password');\n }}\n >\n 비밀번호 찾기\n \n {\n this.props.history.push('/mate/apply');\n }}\n >\n 메이트 지원하기\n \n
\n
\n : null}\n
\n
\n\n {this.state.modal && (\n {\n this.setState({ modal: false, modalTitle: '', modalInfo: '' });\n }}\n />\n )}\n \n );\n }\n}\nexport default LoginComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport LoginStyledContainer from './login.styled';\nimport Login from './login';\nimport { login, editLoginForm, editRegisterForm, checkUserId } from '../../../../Reducer/Modules/auth';\n\nclass LoginPage extends React.PureComponent {\n componentDidMount = () => {\n const { auth } = this.props;\n const userId = localStorage.getItem('id');\n if ((auth && auth.id) || userId) return this.props.history.goBack('/');\n };\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n editRegisterForm: ({ type, value }) => dispatch(editRegisterForm({ type, value })),\n login: ({ id, password, userType, type }) => dispatch(login({ id, password, userType, type })),\n checkUserId: ({ id, userType, type }) => dispatch(checkUserId({ id, userType, type })),\n editLoginForm: ({ type, value }) => dispatch(editLoginForm({ type, value })),\n});\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginPage);\n","import React from 'react';\nimport { MATE, USER } from '../../../../Lib/variables';\nimport KakaoLogin from '../Login/KakaoLogin';\n\nclass MainComponent extends React.PureComponent {\n render() {\n const { userType } = this.props.auth;\n\n return (\n
\n
\n
\n
\n 위드메이트 로고\n

회원가입

\n
\n
위드메이트의 서비스를 이용하기 위해 회원가입을 해주세요.
\n
\n\n
\n
\n {\n this.props.history.push('/user/register');\n }}\n className={`type ${userType === USER ? 'active' : undefined}`}\n >\n

일반 고객으로 가입하기

\n
병원 동행서비스를 이용하고 싶어요!
\n
\n
\n
\n {\n this.props.history.push('/mate/apply');\n }}\n className={`type ${userType === MATE ? 'active' : undefined}`}\n >\n

메이트 지원하기

\n
병원 동행서비스를 수행하는 메이트로 활동하고 싶어요!
\n
\n
\n
\n\n {/*
\n SNS계정으로 간편하게 회원가입 \n
\n \n
\n
*/}\n
\n 이미 계정이 있으신가요? \n {\n this.props.history.push('/user/login');\n }}\n className='link'\n >\n 로그인\n \n
\n
\n \n \n );\n }\n}\nexport default MainComponent;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\n\nconst MainRegisterStyledContainer = styled.div`\n margin-top: 55px;\n min-height: 100vh;\n background-image: url('/assets/images/login_bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: 80% 50%;\n\n @media (max-width: 480px) {\n min-height: initial;\n height: 100%;\n }\n\n .inner-container {\n padding: 0px;\n padding-top: 144px;\n padding-bottom: 100px;\n\n @media (max-width: 480px) {\n padding: 0px;\n }\n\n .register-form {\n background-color: white;\n border-radius: 8px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n width: 100%;\n max-width: 340px;\n margin: 0 auto;\n padding: 24px;\n\n @media (max-width: 480px) {\n max-width: initial;\n width: 100%;\n border-radius: 0px;\n box-shadow: none;\n }\n\n .register-title {\n margin-bottom: 24px;\n\n p {\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n .text {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n line-height: 21px;\n }\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.3px;\n text-align: center;\n color: ${mainColor};\n\n margin-left: 8px;\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 40px;\n border: solid 1px #e6e6e6;\n // margin-bottom: 20px;\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n }\n\n .form-user-type {\n height: 76px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 30px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n line-height: 40px;\n text-align: left;\n padding-left: 10px;\n color: #606060;\n }\n\n h5 {\n font-size: ${sizeHandler(12)};\n text-align: left;\n padding-left: 10px;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n\n h5 {\n color: white;\n }\n }\n }\n }\n }\n }\n`;\nexport default MainRegisterStyledContainer;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport MainRegister from './main';\nimport MainRegisterStyledContainer from './main.styled';\n\nclass MainRegisterPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MainRegisterPage);","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\n\nconst RegisterStyledContainer = styled.div`\n padding-top: 110px;\n padding-bottom: 55px;\n\n background-image: url('/assets/images/login_bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: 80% 50%;\n\n @media (max-width: 480px) {\n min-height: initial;\n height: 100%;\n padding-bottom: 0px;\n padding-top: 55px;\n }\n\n .inner-container {\n padding-bottom: 0px;\n padding-top: 0px;\n\n @media (max-width: 480px) {\n padding: 0px;\n }\n\n .register-form {\n background-color: white;\n border-radius: 8px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n width: 100%;\n max-width: 360px;\n margin: 0 auto;\n padding: 32px;\n\n @media (max-width: 480px) {\n max-width: initial;\n width: 100%;\n border-radius: 0px;\n box-shadow: none;\n padding: 24px;\n }\n\n .title-wrapper {\n display: flex;\n justify-content: flex-start;\n margin-bottom: 16px;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n line-height: 48px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: ${mainColor};\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n line-height: 20px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n }\n\n input {\n height: 44px;\n border: solid 1px #e6e6e6;\n padding: 10px;\n\n &.ant-input {\n font-size: 16px;\n line-height: 28px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.7);\n\n &::placeholder {\n font-size: 14px;\n }\n }\n }\n\n .type-button-wrapper {\n width: 100%;\n height: 48px;\n\n background-color: white;\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n\n > .type-button {\n width: 50%;\n height: 100%;\n line-height: 48px;\n\n text-align: center;\n cursor: pointer;\n\n font-size: 16px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n }\n\n > .type-button.active {\n background: rgba(0, 0, 0, 0.7);\n border-radius: 4px;\n color: #f9f9f9;\n }\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n margin-bottom: 8px;\n .text {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n line-height: 21px;\n }\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.3px;\n text-align: center;\n color: ${mainColor};\n\n margin-left: 8px;\n }\n }\n }\n\n .form-user-type {\n height: 36px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 36px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n text-align: center;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n }\n }\n }\n }\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n`;\nexport default RegisterStyledContainer;\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\nconst TermsStyledContainer = styled.div`\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default TermsStyledContainer;\n","import React from 'react';\n\nclass TermsComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

위드메이트 서비스 이용약관

\n
\n\n
\n

제 1조(목적)

\n

\n 본 약관은 ㈜블루카멜(이하 “회사”라 한다)가 제공하는 위드메이트 병원 동행 서비스와 관련하여 회사와 회원과의 권리, \n
의무 및 책임 사항, 그리고 기타 필요한 사항을 규정함을 목적으로 합니다.\n

\n
\n

\n 본 서비스 이용약관은 2021년 12월 20일부터 시행됩니다.\n

\n
\n\n
\n

제 2조(정의)

\n
1. 본 약관에서 사용하는 용어의 정의는 다음과 같습니다.
\n\n
\n

“위드메이트 서비스” 혹은 “서비스”라 함은 당사가 제공하는 ‘병원 동행 서비스’를 의미합니다.

\n

\n “회원”이라 함은 회사가 제공하는 서비스를 이용하기 위하여 본 약관에 동의하고 회사의 회원으로 가입하는 자를 말합니다. (단,\n 메이트와 관련된 사실 관계에 한하여, 메이트도 본 약관에서 “회원”에 포함될 수 있습니다)\n

\n

\n “메이트”라 함은 회사가 회원에게 서비스를 제공하기 위해 직접 선별하고 교육하여 ‘프리랜서’의 형태로 간접 고용한 인원을 말합니다.\n

\n

\n “운송사업자\"라 함은 여객자동차 운수사업법 제4조에 따른 면허를 받은 여객자동차 운송사업자로서, 회사(메이트 인력)의 중개 또는 회원\n 스스로를 통해 택시 등 그 면허를 받은 운송 수단을 이용하여 운송서비스를 제공하는 자를 의미합니다.\n

\n

\n “매칭”이라 함은 회원이 플랫폼(웹사이트 포함)에서 출발지와 목적지를 입력하고, “예약하기\" 버튼을 통해 서비스 이용을 요청(이하\n “이용 요청”이라고 합니다)하면, 요청 시점에 서비스 제공이 가능한 메이트가 플랫폼(웹사이트 포함)을 통하여\n 수락함으로써(매칭됨으로써), 회원과 회사 사이의 메이트 알선 계약 및 회원과 운송사업자 간의 운송 계약이 각 체결된 상태를\n 의미합니다.\n

\n

\n “플랫폼(웹사이트 포함)”이라 함은 회사가 회원에게 서비스를 제공하기 위하여 개발한 위드메이트 애플리케이션과 웹사이트를\n 의미합니다.\n

\n

\n “이용요금”이라 함은\n
\n (i) 메이트가 제공하는 의료 동행 서비스에 대한 비용\n
\n (ii) 회원이 택시 등 운송사업자의 운송 수단을 예약하거나 호출하여 이동하는 비용,\n
\n (iii) 기타 비용(고객 소유 자가용 대리 운전 비용, 예약 취소 및 변경 수수료 등)을 총칭하여 의미합니다.\n

\n
\n\n
\n 2. 본 약관에서 사용하는 용어의 정의는 본 조제 1항에서 정하는 것을 제외하고는 관계 법령에서 정하는 바에 의합니다. 관계 법령에서\n 정하지 않는 것은 일반적인 상 관례에 의합니다.\n
\n
\n\n
\n

제 3조(약관의 효력 및 변경)

\n
1.
\n
\n 약관은 애플리케이션 소프트웨어 및 해당 애플리케이션과 웹사이트의 모든 패치, 업데이트, 업그레이드 또는 새로운 버전에 적용되며, 가장\n 최신 버전이 모든 기존 버전에 우선합니다.\n
\n
2.
\n
\n 본 약관은 서비스 이용계약의 성격상 회사의 웹사이트 또는 서비스 이용을 위한 애플리케이션 내에 본 약관을 명시하고, 이용자가\n 애플리케이션을 설치 및 실행 혹은 웹사이트 열람과 동시에 효력이 발생합니다.\n
\n
3.
\n
회사는 관계 법령 또는 상관습에 위배되지 않는 범위에서 본 약관을 개정할 수 있습니다.
\n
4.
\n
\n 회사는 관련 법령의 변경이나 이용자의 권리 및 의무사항, 서비스 등을 개선하기 위해 본 약관을 변경할 수 있으며, 변경된 경우에 약관의\n 내용과 적용일을 정하여, 적용일 7일 전 회사 공식 홈페이지나 공식 블로그, 제공하는 애플리케이션 등을 통해 이용자에게 고지하고\n 적용일부터 효력이 발생합니다.\n
\n
5.
\n
\n 이용자는 변경된 약관에 대해 거부할 권리가 있습니다. 본 약관의 변경에 대해 이의가 있는 이용자는 서비스 이용을 중단하고 이용을\n 해지(탈퇴 및 삭제)할 수 있습니다.\n
\n
6.
\n
\n 회사가 본 조 4항에 따라 변경된 약관을 공시 또는 고지하면서 이용자가 기간 내의 의사표시를 하지 않으면 변경된 약관에 동의한 것으로\n 간주합니다.\n
\n
\n\n
\n

제 4조(약관 외 준칙)

\n
1.
\n
\n 회사는 필요한 경우 특정 서비스에 관하여 적용될 사항을 위해 개별 약관이나 이용 정책을 정하여 운영할 수 있으며, 해당 내용은 홈페이지\n 등을 통해 공지합니다.\n
\n
2.
\n
\n 본 약관에 규정되지 않은 사항에 대해서는 관련 법령 또는 개별 약관, 이용 정책, 서비스 이용 화면을 통하여 제시된 개별 이용 조건(이용\n 요금 등, 이하 “개별계약“이라고 합니다)에서 정한 바에 따릅니다.\n
\n
3.
\n
\n 본 약관과 개별 약관, 개별 계약의 내용이 충돌할 경우 본 약관에 별도의 규정이 없는 한 개별 계약 또는 개별 약관에서 정한 바에 따릅니다.\n
\n
4.
\n
\n 회원은 서비스 이용 시 개별 계약 또는 개별 약관의 내용을 확인하여야 하며, 이를 확인하지 않아 발생한 손해에 대해 회사는 책임을\n 부담하지 않습니다.\n
\n
\n\n
\n

제 5조(이용 계약의 성립)

\n
1.
\n
\n 이용 계약은 이용자가 본 이용 약관에 대한 동의 또는 회사의 애플리케이션을 다운로드 받거나 실행하여 이용하는 경우, 그리고 웹사이트\n 회원 가입을 완료한 경우 이 약관에 동의한 것으로 간주합니다.\n
\n
2.
\n
이용자는 동의하지 않는 경우 애플리케이션이나 웹사이트 계정 로그아웃 및 삭제와 함께 이를 철회할 수 있습니다.
\n
3.
\n
\n 회사는 제 1항에 따른 회원 가입 신청에 대해 승낙함을 원칙으로 합니다. 다만, 다음 각 호의 경우 회사는 회원 가입 신청을 승낙하지 않거나\n 사후에 회원 계약을 해지할 수 있습니다.\n
\n\n
\n

신청자가 본 약관 위반 등의 사유로 이전에 회원 자격이 상실 또는 회원 계약이 해지되었던 경우

\n

자신의 귀책으로 이용 정지를 당한 회원이 그 이용 정지 기간 중에 이용 계약을 임의 해지하고 재신청을 하는 경우

\n

본 약관에 위배되거나 위법 또는 사회상규상 부당한 가입 신청임이 확인된 경우

\n

허위의 정보를 기재한 경우, 회사가 제시하는 내용을 기재하지 않은 경우 또는 오기 등이 있는 경우

\n

미성년자 등 법령상 행위 무능력자인 경우

\n

기타 신청자의 귀책 사유로 인하여 승낙이 불가능하거나 기타 회사가 정한 제반 사항을 위반한 자의 신청

\n
\n
\n\n
\n

제 6조(회원 계약의 해제 및 해지 등)

\n
1.
\n
\n 회원은 언제든지 회원 계약의 해지를 신청할 수 있으며, 회사는 관련 법령에서 정하는 바에 따라 이를 즉시 처리하여야 합니다. 다만,\n 회원에게 미수금이 있을 경우에는 미수금에 대한 결제를 완료한 이후에 해지 신청이 가능합니다.\n
\n
2.
\n
\n 회원이 회원 계약을 해지할 경우, 회사는 관련 법령 개인정보처리방침 또는 내부관리 계획 등에 따라 회원 정보를 보유하는 경우를\n 제외하고는 해지 즉시 회원의 모든 정보를 삭제합니다.\n
\n
3.
\n
\n 회원 계약 해지로 인해 발생한 불이익에 대한 책임은 회원 본인이 부담해야 하며, 회사는 회원에게 부가적으로 제공한 각종 무상 혜택을\n 회수할 수 있습니다.\n
\n
4.
\n
\n 회사가 회원 계약을 해지하는 경우 회사는 회원에게 해지 사유를 밝혀 해지 의사를 통지합니다. 이 경우 회사는 해지를 하기 전에 상당한\n 기간을 정하여 회원에게 이의 신청의 기회를 부여합니다.\n
\n
5.
\n
회원 계약이 회사에 의해 해지되는 경우 회원의 재이용 신청에 대해 회사는 승낙을 거절할 수 있습니다.
\n
6.
\n
\n 회원의 귀책 사유로 인해 회원 계약이 해지됨으로써 발생한 손해는 당해 회원이 부담하여야 하며, 회사는 관련 법령에 규정이 없는 한 책임을\n 부담하지 않습니다.\n
\n
\n\n
\n

제 7조(서비스 내용)

\n
1.
\n
회사가 제공하는 병원 동행 서비스의 내용은 다음과 같습니다.
\n
\n

\n 병원 동행 Pro 서비스 : 응급 상황에 처하지는 않았으나 정기적, 혹은 비정기적으로 의료 기관에 방문해\n 적절한 조치를 받아야 하는 고객을 위한 서비스.\n

\n

\n 병원 동행 Basic 서비스 & 수면내시경 보호자 서비스 :보호자 동행이 법적 의무는 아니나 보호자가 없을 경우 시술이 어려운 수면\n 내시경 등과 같은 의료 조치를 받아야 하는 고객을 위한 보호자 대행 서비스.\n

\n

\n 병원 동행 서비스 제공을 위한 메이트 알선 서비스 : 회원의 요청에 따라 적격 자격을 갖춘 인원을\n 회사가 직접 선별하고 교육한 후, 프리랜서 형태로 간접 고용하여 회원이 병원 동행 서비스를 위한 동행자를 알선 받을 수 있도록\n 중개해주는 서비스.\n

\n\n

\n 고객 소유 자가용 대리 운전 서비스 : 회원의 요청에 따라 알선된 메이트가 고객 소유의 자가용을 운행해\n 병원과 자택을 이동하는 서비스\n

\n

\n 택시 등 여객자동차 운송 중개 서비스 :회원의 요청에 따라 알선된 메이트가 택시 등 여객자동차\n 운송사업자의 운송 수단을 호출하여 동행할 수 있도록 중개해주는 서비스.\n

\n
\n\n
2.
\n
회사는 제1항의 각 호의 서비스 이외에도 추가적인 서비스를 개발하여 회원에게 제공할 수 있습니다.
\n
3.
\n
\n 회사가 제공하는 서비스와 플랫폼(웹사이트 포함)의 사용은 무료입니다. 단, 회사가 제공한 서비스를 통해 메이트 알선을 포함한 병원 동행\n 서비스가 제공되는 경우 사용자는 해당 서비스에 대한 이용 요금을 지불할 의무를 가집니다.\n
\n
4.
\n
\n 회사는 회원과 메이트 사이의 병원 동행 서비스 혹은 메이트 알선 계약 및 회원과 여객자동차 운송사업자 사이의 운송 계약 체결을 중개하고\n 제 8조 1항에 명시된 ‘병원 동행 서비스 비용’을 수취하는 회사입니다.\n
\n
5.
\n
회사의 메이트는 고객에게 어떠한 형태의 의료 서비스나 치료, 구급차 등의 의료 운송 서비스를 제공하지 않습니다.
\n
\n\n
\n

제 8조(이용 요금 등)

\n
1.
\n
\n 위드메이트 서비스 이용 요금은 ‘병원 동행 서비스 비용’으로 구성되어 있습니다. 단, 상황에 따라 이동 중에 발생하는 운송 교통 비용이\n 고객 본인 부담으로 발생할 수 있습니다.\n
\n
2.
\n
\n 회사는 이용 요금을 애플리케이션 혹은 웹사이트 내의 예약하기 페이지에 게시하거나, 예약 완료 시에 별도로 회원에게 안내합니다. 다만\n 최종 이용 요금은 다양한 변수에 따라서 서비스 종료 후 추가 부과가 될 수 있습니다.\n
\n
3.
\n
\n 메이트가 회원이 지정한 출발지에 도착하여 회원에게 도착을 안내하였음에도 회원이 사전 연락 없이 일정 시간(20분) 이내에 나타나지\n 아니하거나 계약을 취소하는 경우 회사는 제 9조에 명시된 취소 수수료를 회원에게 부과할 수 있습니다.\n
\n\n
4.
\n
\n [병원 동행 Pro] 서비스 이용 옵션 중 ‘고객 소유의 자차 운행’을 선택한 경우 예약일에 맞춰 본인의 차량 보험사가 제공하는 ‘임시 운전자\n 특약’에 가입을 해야 합니다. 이때 발생하는 보험 비용은 고객 본인 부담이며, 임시 운전자 특약에 가입을 하지 않고 메이트에게 운전을\n 위임하여 사고가 발생한 경우 모든 책임은 고객 본인에게 있습니다.\n
\n\n
5.
\n
\n 서비스와 관련하여 발생한 미납경비, 손해배상 등 회원의 회사에 대한 채무가 모두 정산될 때까지 해당 회원의 서비스 사용이 중지되며, 그\n 채무가 일정기간 계속하여 변제되지 않을 경우에는 해당 회원의 회원자격이 박탈될 수 있습니다. 서비스 사용 중지 또는 회원자격 박탈에\n 대한 판단 기준은 회사의 약관 및 이용정책에 근거합니다.\n
\n
6.
\n
\n 회원이 본 약관 및 위 각 조항을 준수하지 않았을 경우, 회사는 본 약관 및 이용 정책에 따라 손해배상 금액 등 각종 수수료를 부과하는 것\n 외에 계약을 해지할 수 있는 권리를 가집니다.\n
\n
7.
\n
\n 회사는 본 서비스와 관련하여 발생한 미납경비, 손해배상 등 회원의 회사에 대한 채무가 정산되지 않을 경우 회원을 상대로 보전처분,\n 본안소송제기, 강제집행절차의 착수 등 채무 변제를 위한 법적 조치에 들어갈 수 있습니다.\n
\n
\n\n
\n

제 9조(계약 등의 취소)

\n
1. 회원이 정상적으로 매칭된 병원 동행 서비스 계약을 취소 및 변경하는 경우에는 아래와 같이 수수료가 발생합니다.
\n\n
\n

\n 서비스 예약 날짜 기준 48시간 이내 변경 및 취소수수료 없이 변경 & 취소 가능\n

\n

\n 서비스 예약 전날 18:00 이전 변경 및 취소취소 시 수수료 10,000원 발생. 단, 메이트와 변경 협의 성공\n 시에는 수수료 부과 X 수수료 부과 X\n

\n

\n 당일 예약 변경 및 취소취소 시 수수료 15,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과\n X\n

\n

\n 서비스 시작 2시간 전 이내 변경 및 취소서비스 수수료 20,000원 발생. 단, 메이트와 변경 협의 성공\n 시에는 수수료 부과 X 수수료 부과 X\n

\n

\n 노쇼(No-Show)의 경우회원 자격 정지 및 민/형사상 책임 소지를 물을 수 있음\n

\n
\n\n
\n 2. 회사가 서비스 계약을 취소하는 경우 회원에게 사유를 설명하고 이용요금 전액을 청구하지 아니하며, 회원이 입은 피해에 대한 보상을\n 협의하고 지급합니다.\n
\n
\n\n
\n

제 10조(서비스 제공 밎 중단)

\n\n
1.
\n
\n 회사는 서비스를 주 5일 (월~금), 1일 10시간 (오전 9시~오후 7시) 제공함을 원칙으로 합니다. 특수 예약에 대해서는 검토 후 해당 시간\n 외에도 서비스를 제공할 수 있습니다.\n
\n
2.
\n
\n 회사는 서비스의 제공에 필요한 경우 정기 점검을 실시할 수 있으며, 정기 점검 시간은 플랫폼(웹사이트 포함)의 서비스 제공 화면에 공지한\n 바에 따릅니다.\n
\n
3.
\n
\n 회사는 파산 또는 회생 절차 개시 등 정상적인 영업 활동이 곤란한 경우 또는 회사의 영업상 필요한 경우 서비스 내용을 변경하거나 서비스를\n 종료할 수 있습니다.\n
\n
4.
\n
회사는 다음 각 호의 경우 당해 서비스의 전부 또는 일부의 제공을 중단하거나 제한할 수 있습니다.
\n\n
\n

\n 천재지변, 전쟁, 폭동, 화재, 파업 등 쟁의행위, 정부기관의 통제, 테러, 해킹, DDOS, 기타 회사의 합리적인 노력으로 제어할 수 없는\n 사유가 발생하거나 발생할 우려가 있는 경우\n

\n

기간통신사업자로부터 전기통신서비스가 제공되지 않은 경우

\n

서비스용 설비의 장애 및 정기 점검, 보수점검, 교체 또는 고장, 통신의 두절 등의 사유가 발생한 경우

\n

서비스가 제3자와의 제휴를 통하여 제공되는 경우에 당해 제휴사업자의 사정에 따라 변경되거나 중지되는 경우

\n

기타 서비스의 원활한 운영을 현저히 저해하는 사유가 발생한 경우

\n
\n\n
5.
\n
\n 본 조 제3항, 제4항의 사유로 서비스 내용이 변경 또는 중단되는 경우, 회사는 그로 인해 회원이 입은 손해에 대하여 고의 또는 중과실이\n 없는 한 배상하지 않습니다.\n
\n
6.
\n
회사는 본 조 상기된 사유가 발생한 경우 최대한 빠른 시간 내에 서비스를 재개하도록 최선의 노력을 다합니다.
\n
\n\n
\n

제 11조(서비스의 변경)

\n\n
1.
\n
\n 회사는 상당한 이유가 있는 경우에 운영상, 기술상의 필요에 따라 제공하고 있는 전부 또는 일부의 서비스를 변경할 수 있습니다. 다만,\n 변경된 내용이 중대하거나 회원에게 불리한 경우에는 회사가 해당 서비스를 제공받는 회원에게 통지합니다.\n
\n
2.
\n
\n 회사는 전항에 따른 서비스 변경에 대한 동의를 거절한 회원에 대하여는 해당 서비스의 제공을 중지하거나 회원 이용 계약을 해지할 수\n 있습니다. 이 때 회원 역시 회원 계약을 종료할 권한을 가집니다.\n
\n
\n\n
\n

제 12조(회원에 대한 서비스 이용 제한 등)

\n\n
1.
\n
회사는 다음 각 호에 해당하는 경우 회원에 대하여 서비스 제공을 제한하거나 중지할 수 있습니다.
\n
\n

폭언, 폭행, 그 밖에 적정 범위를 벗어난 신체적ㆍ정신적 고통을 유발하는 행위를 통해, 회원이 서비스의 정상적인 운영을 방해한 경우

\n

법정 감염병 환자, 법정 감염병 의사 환자, 감염병 병원체보유자 등, 환자가 각종 매개체를 통해 메이트에게 질병을 전염 및 유발할 것으로 우려되는 경우

\n

회원이 타인의 명의를 도용하여 회원가입을 한 경우

\n

\n 이용 요금을 지급하지 아니하거나 이용 요금을 결제함에 있어서 타인 명의 결제 도용, 전화번호 도용 등 불법적인 방법을 사용한 경우\n

\n

\n 불법프로그램의 제공 및 운영 방해, 정보통신망법을 위반한 불법 통신 및 해킹, 악성프로그램의 배포, 접속 권한 초과 행위 등과 같이\n 회원이 관련 법령을 위반한 경우\n

\n

회원이 계속해서 1년 이상 로그인하지 않는 경우

\n
\n\n
2.
\n
\n 본 조에 따라 서비스 이용을 제한하거나 중지하는 경우에는 회사는 사전에 이를 회원에게 통지하거나 공지합니다. 다만 부득이한 경우 사후에\n 통지하거나 공지할 수 있습니다.\n
\n
\n\n
\n

제 13조(개인정보의 관리 및 변경)

\n\n
\n 이용자는 본 서비스의 이용을 위해 자신의 개인 정보를 성실히 관리해야 하며, 개인정보에 변동사항이 있을 경우 이를 변경해야 합니다. 본\n 서비스를 이용하면서 이용자의 개인정보 변경이 지연되거나 누락, 이용자에 의해 유출되어 발생하는 손해는 이용자의 책임으로 합니다.\n
\n
\n\n
\n

제 14조(정보의 제공 및 광고의 게재)

\n\n
1.
\n
\n 회사는 회원이 서비스 이용 중 필요하다고 인정되는 다양한 정보를 서비스 내 공지사항 또는 서비스 화면, 메시지, 전자우편 등의 방법으로\n 회원에게 제공할 수 있습니다.\n
\n\n
2.
\n
회사는 서비스의 운영과 관련하여 서비스 화면 등에 광고를 게재할 수 있습니다.
\n
\n\n
\n

제 15조(회사의 의무)

\n\n
1.
\n
회사는 관련법과 본 약관의 금지하는 행위를 하지 않으며, 계속적이고 안정적인 서비스를 제공하기 위하여 최선을 다하여 노력합니다.
\n\n
2.
\n
회사는 이용자의 개인정보 보호를 위한 보안 의무에 최선을 다합니다.
\n\n
3.
\n
\n 회사는 이용자로부터 제기되는 의견이나 불만이 정당하고 객관적으로 인정될 경우에는 적절한 절차를 거쳐 즉시 처리하여야 합니다. 다만,\n 즉시 처리가 불가한 경우에는 이용자에게 그 사유와 처리 일정을 통보하여야 합니다.\n
\n\n
4.
\n
\n 회사가 제공하는 서비스로 인하여 회원에게 손해가 발생한 경우 그러한 손해가 회사의 고의나 과실에 기해 발생한 경우에 한하여 회사에서\n 책임을 부담합니다.\n
\n\n
5.
\n
회사는 정보통신망법, 통신비밀보호법, 전기통신사업법 등 서비스의 운영, 유지와 관련 있는 법령을 준수합니다.
\n
\n\n
\n

제 16조(회원의 의무)

\n\n
1.
\n
\n 회원은 최종 요금 등의 서비스 조건을 확인한 후 이용 요청을 하여야 하고, 제 8조 2항에 따라 서비스 종료 이후 추가 요금이 발생할 수\n 있다는 사실을 인지해야 합니다. 서비스 조건을 확인하지 않고 이용 요청을 하여 발생한 손실, 손해에 대한 책임은 회원 본인이 부담하여야\n 합니다.\n
\n\n
2.
\n
\n 회원은 본 약관 및 회사가 서비스와 관련하여 고지하는 내용을 준수하여야 하며, 약관 및 고지 내용을 위반하거나 이행하지 아니하여\n 발생하는 모든 손실, 손해에 대하여 책임을 부담합니다. 이용 요청과 관련하여 회원이 입력한 정보 및 그 정보와 관련하여 발생한 책임과\n 불이익은 전적으로 회원이 부담하여야 합니다.\n
\n\n
3.
\n
\n 회원은 택시 혹은 승합자동차의 대여 및 이동 서비스 이용 시 반드시 본인 명의의 결제수단을 사용하여야 하며, 타인의 결제 수단을 임의로\n 사용해서는 안 됩니다. 타인의 결제수단을 임의로 사용함으로써 발생하는 회사, 결제 수단의 적법한 소유자, 전자결제대행 또는 이동서비스\n 제공자 등의 손실과 손해에 대한 모든 책임은 회원에게 있습니다.\n
\n\n
4.
\n
\n 회원은 회사가 서비스를 안전하게 제공할 수 있도록 회사에 협조하여야 하며, 회사가 회원의 본 약관 위반행위를 발견하여 회원에게 해당\n 위반행위에 대하여 소명을 요청할 경우 회원은 회사의 요청에 적극 응하여야 합니다.\n
\n\n
5.
\n
\n 회원은 분쟁이 발생한 경우 분쟁의 해결을 위하여 성실히 임하여야 하며, 분쟁 해결에 대한 회원의 불성실로 인하여 이동 서비스 제공자 또는\n 회사에 손해가 발생한 경우 회원은 이에 대한 책임을 부담하여야 합니다.\n
\n
\n\n
\n

제 17조(회원의 금지 행위)

\n\n
1.
\n
\n 회사는 서비스의 신뢰성을 제고하고 안전한 거래가 이뤄질 수 있도록 회원에게 특정한 행위를 금지하며 이를 금지 행위로 규정하고 있습니다.\n 금지 행위의 항목은 수시로 갱신될 수 있으며 항목 추가 및 변경 시 별도로 고지하지 않습니다.\n
\n\n
2.
\n
\n 회원이 위드메이트 서비스로 중개 받은 메이트 또는 기타 운송 수단 탑승 중 메이트, 차량, 혹은 제 3자에 대하여 손해를 입혔을 경우 회원은\n 이를 배상하여야 하며 구체적인 금액은 아래와 같습니다. 이에 관하여 제휴사의 기사 알선 포함 승합자동차 대여 서비스 이용약관에서 정한\n 사항이 있다면 그에 따릅니다.\n
\n
\n

\n 메이트를 폭행하거나 정신적인 피해를 끼친 경우 :치료비 전액 배상 및 영업손실비\n

\n

\n 차량을 오염시킨 경우: 30만원 이내에서 세차 실비 및 영업손실비\n

\n

\n 차량 및 차내 기물 파손 비용: 원상 복구 비용 및 영업손실비\n

\n

\n 목적지 도착 후 하차 거부:경찰서 등의 인계 시까지의 운임 및 영업손실비\n

\n

\n 분실물 발견 후 배달 요청 :배차 중지 후 분실물 배달을 위한 영업손실비\n

\n
\n\n
3.
\n
\n 회사는 회원이 본 조의 금지행위를 하는 경우 서비스 이용을 제한할 수 있으며, 이 경우 발생하는 모든 책임은 회원이 부담합니다. 회사는\n 필요한 경우 회원의 금지 행위 사실을 관련 정부기관 또는 사법기관에 통지할 수 있습니다.\n
\n
\n\n
\n

제 18조(책임 제한)

\n\n
1.
\n
\n 회사는 회원과 메이트 간, 회원과 운송사업자 간 거래를 중개하는 시스템의 운영 관리를 제공하며, 회원, 메이트, 운송사업자를 대리하지\n 않습니다. 회원과 메이트, 그리고 운송사업자 사이에 성립된 거래에 따라 회원 또는 메이트, 혹은 운송사업자가 제공한 정보에 대한 책임은\n 회원과 메이트, 그리고 운송사업자가 부담합니다.\n
\n\n
2.
\n
\n 회원이 자신의 개인 정보 및 계정 등을 타인에게 제공하거나, 회원의 관리 소홀로 유출됨으로써 발생하는 피해에 대해서 책임을 부담하지\n 않습니다.\n
\n\n
3.
\n
회사는 회원의 귀책 사유로 인한 서비스 이용의 장애에 대하여는 책임을 지지 않습니다.
\n\n
4.
\n
회사는 회원이 서비스와 관련하여 게재한 정보, 자료, 사실의 신뢰도, 정확성 등의 내용에 관하여는 책임을 부담하지 않습니다.
\n\n
5.
\n
\n 회사는 서비스간 회원의 귀책 사유로 발생한 메이트와의 갈등(물리적 폭행, 언어 폭력, 부적절한 신체 접촉 등)으로 인해 발생한 피해에\n 대해서 책임을 부담하지 않습니다.\n
\n\n
6.
\n
\n 회사는 관계 법령의 변경, 천재지변, 디도스(DDOS)공격, IDC 장애, 기간통신사업자의 회선 장애 또는 이에 준하는 불가항력으로 인하여\n 서비스를 제공할 수 없는 경우에는 서비스 제공에 관한 책임이 면제됩니다.\n
\n\n
7.
\n
\n 회사는 회원의 서비스 이용과 직접적으로 관련이 없는 분쟁에 관여하지 않으며, 회원과 운전용역 제공자 및 운송사업자 또는 회원과 제3자\n 간의 분쟁을 포함하여 도난, 폭행, 성범죄 등에 대해서는 회사의 과실이 없는 한 책임을 부담하지 않습니다.\n
\n\n
8.
\n
\n 회사는 스마트기기 환경으로 인하여 발생하는 제반 문제 또는 회사의 귀책 사유가 없는 네트워크 환경으로 인하여 발생하는 문제에 대해서\n 책임을 지지 않습니다.\n
\n
\n\n
\n

제 19조(분쟁의 해결)

\n\n
1.
\n
본 약관에 명시되지 않은 사항이 관계 법령에 규정되어 있을 경우에는 해당 규정에 따릅니다.
\n\n
2.
\n
서비스 이용으로 발생한 분쟁에 대해 소송이 제기되는 경우 법령에 정한 절차에 따른 법원을 관할 법원으로 합니다.
\n
\n\n
\n
\n

개인정보 처리방법 버전 번호 : v.1.2

\n

제정일자 : 2021년 12월 20일

\n
\n
\n
\n
\n );\n }\n}\nexport default TermsComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport TermsStyledContainer from './terms.styled';\nimport Terms from './terms';\n\nclass TermsContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(TermsContainer);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\nconst PrivacyStyledContainer = styled.div`\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .medium-bold {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n\n \n .in {\n font-size: ${sizeHandler(13)};\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n text-indent: -20px;\n padding-left: 40px;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default PrivacyStyledContainer;\n","import React from 'react';\n\nclass PrivacyComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

㈜ 블루카멜 개인정보처리방침

\n

\n 병원동행서비스 위드메이트(www.withmate.kr, 이하 “서비스\")를 운영하는 (주)블루카멜(이하 “회사”)은 「개인정보보호법」 제30조에 따라\n 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 다음과 같이 개인정보처리방침(이하 \"방침\")을\n 수립 및 공개합니다. 개인정보처리방침은 관련 법령 또는 지침, 회사의 약관 또는 정책에 따라 변경될 수 있습니다. 회사는 해당 변경 사항을\n 온라인 게시 등의 방법으로 이용자에게 알립니다.\n
\n
이 개인정보처리방침은 2023년 7월 25일부터 적용됩니다.\n

\n
\n
\n
\n\n

\n \n ✅ 개인정보처리방침 2차(2023.07.22)\n \n

\n

\n \n ✅ 개인정보처리방침 1차(2021.12.20)\n \n

\n
\n {/*
\n

제 1조 (수집하는 개인정보의 항목 및 수집 방법)

\n
1. 수집하는 개인정보의 항목
\n

\n 회사는 회원가입(또는 서비스 가입), 원활한 고객 상담, 의료 시설 관계자와 메이트 지원자의 신분 확인, 그리고 각종 서비스의 제공을 위해\n 위드메이트 서비스 최초 이용 시 다음과 같은 개인정보를 수집하고 있습니다.\n
\n
\n 일반개인정보: 회원의 이름, 이메일 주소(아이디) 및 패스워드, 전화번호, 단말기 정보, 프로필 사진(메이트 지원자에 한함), 블랙박스로\n 인하여 수집되는 영상 (회사는 음성을 수집하지 않으나, 회사가 직접 관리하지 않는 일반 택시와 같은 여객운송 서비스 차량에 설치된\n 블랙박스 기종에 따라 음성이 녹음될 수 있습니다), 민원/사고 발생 관련 정보, 집이나 회사 등의 주소 정보, 기타 아래 서비스 이용\n 과정에서 수집되는 정보 및 회원이 서비스 이용을 위해 자발적으로 입력하는 정보 등.\n

\n
\n

또한, 서비스 이용과정이나 사업처리 과정에서 아래와 같은 정보들이 자동으로 생성되어 수집될 수 있습니다.

\n

\n - IP Address, 방문 일시, 서비스 이용 기록, 쿠키, 접속 로그, 불량 이용 기록, 앱 설치정보, 네트워크 위치정보 등{' '}\n

\n
\n
\n

나아가 서비스 이용과정에서 다음과 같은 정보들이 수집될 수 있습니다.

\n

- 계좌 이체 시: 은행명, 계좌번호 등

\n

- 신용카드 결제 시 : 카드사명, 카드번호 등

\n

- 휴대전화 결제 시 : 전화 번호, 통신사, 결제 승인 번호 등

\n
\n\n
2. 개인정보 수집방법
\n

회사는 다음과 같은 방법으로 개인정보를 수집합니다.

\n
\n

- 위드메이트 플랫폼(애플리케이션 & 웹사이트)의 실행 또는 사용 과정에서 수집

\n

- 협력 회사로부터의 제공

\n

- 생성 정보 수집 툴(쿠키를 포함)을 통한 수집

\n

- 사용 중 회원의 자발적 제공을 통한 수집

\n
\n
\n\n
\n

제 2조 (개인정보의 수집 및 이용 목적)

\n

\n 회사는 회원의 동의가 있거나 법령의 규정에 의한 경우를 제외하고는 본 조에서 고지한 범위를 넘어 회원의 개인정보를 활용하지 않습니다.\n 회사는 수집한 개인정보를 다음과 같은 목적으로 이용합니다.\n

\n\n
\n

1. 위드메이트 서비스 제공 및 운영

\n

\n 회원이 가입한 위드메이트 서비스 내 상호 식별, 서비스 제공에 관한 계약 이행 및 서비스 제공에 따른 요금정산, 이용 및 경비 결제,\n 콘텐츠 제공, 물품 배송 또는 청구서 등 발송, 금융거래 본인 인증 및 금융 서비스(추후 기능 추가 예정), 미수금 추심, 서비스 이용 중\n 사고 발생 시 사고처리, 회사의 약관 또는 이용 정책의 위반 행위 적발을 위한 기록 조회\n

\n
\n\n
\n

2. 회원관리

\n

\n 서비스 제공, 회원 식별, 본인 확인, 개인 식별, 이용이 제한된 회원 - 위드메이트 이용약관에 따라 이용이 제한된 회원 - 의 부정 이용\n 방지와 비인가 사용 방지, 가입 의사 확인 및 가입 횟수 제한, 분쟁 조정을 위한 기록 보존, 불만 처리 등 민원 처리, 고지 사항 전달,\n 추후 법정 대리인 본인 확인, 최신 정보 전달, 서비스의 유효성 확인, 접속 빈도 파악, 회원의 서비스 이용에 대한 통계 확인 및 파악\n

\n
\n\n
\n

3. (선택적) 신규 서비스 개발 및 마케팅 · 광고에 활용

\n

\n 신규 서비스 개발 및 맞춤 서비스 제공, 통계학적 특성에 따른 서비스 제공 및 광고 게재, 이벤트 참여 기회 제공 또는 광고성 정보 제공\n

\n
\n\n
\n

4. 사고 발생시 원인 규명 및 처리를 위한 수집 및 이용

\n
\n
\n\n
\n

제 3조 (개인정보의 제한적 공개 및 제 3자 제공)

\n
\n 회사는 회원의 개인정보를 “제2조 (개인정보의 수집 및 이용목적)”에서 고지한 범위 내에서 처리하며, 회원의 사전 동의가 있거나 법령에 규정된 \n 경우를 제외하고는 회원의 개인정보를 동의 범위를 초과하여 이용하거나 외부에 공개 또는 제3자에게 제공하지 않는 것을 원칙으로 합니다. \n 다만, 다음의 경우 주의를 기울여 회원의 개인정보를 제한적으로 공개할 수 있습니다.\n
\n
\n

\n - 제휴관계 :회사는 제 3자와 제휴 관계를 맺을 경우 반드시 사전에 제휴사명, 제휴사의 개인정보 이용목적, \n 공유하는 개인정보의 항목, 제휴기간에 관하여 알릴 것이며 반드시 이용자의 동의에 의해서만 정보를 제공하거나 공유합니다. 제휴 관계에 있어서 \n 위 고지할 사항에 변화가 있을 때도 같은 절차에 의하여 이용자에게 알리고 동의를 구합니다.\n

\n
\n
\n

\n - 취급위탁 :원활한 업무 처리를 위해 이용자의 개인정보를 위탁 처리할 경우 반드시 사전에 위탁 처리 업체명과 \n 개인정보 취급 위탁을 하는 업무의 내용을 이용자에게 알리고 동의를 받아야 합니다.\n

\n
\n
\n

\n - 매각, 인수합병 등 :회사의 영업의 전부 또는 일부의 양도 합병 등으로 이용자의 개인정보를 제3자에게 이전하는 \n 경우에는 회사는 해당 이용자에게 개인정보를 이전하려는 사실, 개인정보를 이전받는 자의 명칭, 이용자가 개인정보의 이전을 원하지 아니하는 경우 \n 그 동의를 철회할 수 있는 방법과 절차에 관하여 사전에 전자우편ㆍ서면ㆍ전화 또는 이와 유사한 방법 중 어느 하나의 방법으로(회사가 과실 없이 \n 이용자의 연락처를 알 수 없어 이러한 방법에 따라 통지할 수 없는 경우에는 회사의 어플리케이션 또는 플랫폼 첫 화면에 30일 이상 게시하는 방법으로\n 한다) 알릴 것이며 이용자의 개인정보에 대한 동의 철회의 선택권을 부여합니다.\n

\n
\n
\n

\n - 고지 및 동의 방법 :위 제휴 관계 또는 취급 위탁의 경우 회사가 이용자의 동의를 얻는 방법은 다음 열거된 방법들 중 \n 어느 하나와 같습니다. 다만, 개인정보 수집 매체의 특성상 동의 내용을 전부 표시하기 어려운 경우에는 이용자에게 동의 내용을 확인할 수 있는 \n 아래의 방법(인터넷주소ㆍ사업장 전화번호 등)을 안내하고 동의를 얻을 수 있습니다.\n

\n 가. 인터넷 사이트(어플리케이션 또는 플랫폼)에 동의 내용을 게재하고 이용자가 동의 여부를 표시하도록 하는 방법
\n 나. 동의 내용이 기재된 서면을 이용자에게 직접 교부하거나, 우편을 통하여 전달하고 이용자가 동의 내용에 대하여 \n 서명 날인 후 제출하도록 하는 방법
\n 다. 동의 내용이 적힌 전자우편을 발송하여 이용자로부터 동의의 의사표시가 적힌 전자우편을 전송 받는 방법
\n 라. 전화를 통하여 동의 내용을 이용자에게 알리고 동의를 얻거나 인터넷 주소 등 동의 내용을 확인할 수 있는 방법을 \n 안내하고
재차 전화 통화를 통하여 동의를 얻는 방법
\n

\n
\n
\n

\n - 예외 사항 :다음 예외의 경우에는 회사는 이용자의 동의를 받지 아니하고 또한 이용자에게 고지하지 아니하고도 이용자의 \n 개인정보를 제공할 수 있습니다.\n

\n 가. 법관이 발부한 영장에 의하여 이용자의 개인정보의 제공 요구가 있을 경우
\n 나. 통계 작성, 학술 연구나 시장 조사를 위하여 특정 개인을 식별할 수 없는 형태로 광고주, 협력사 또는 연구 단체 등에 \n 제공하는 경우
\n 다. 기타 관계 법령에 따라 회사에게 이용자의 개인정보를 제공할 의무가 인정되는 경우\n
\n 그러나 위 예외에 해당하여 이용자의 동의를 받지 아니하고 정보를 제공하는 경우에도 정보를 제공하는 경우에도 본래의 수집 목적 및 이용 목적에 반하여 무분별하게 \n 정보가 제공되지 않도록 최대한 노력하겠습니다.\n

\n
\n
\n

\n - 병원 동행 서비스 매칭 서비스 및 온라인 플랫폼 특성에 의한 예외 사항 :위드메이트 서비스 이용 도중 매칭된 회원과 메이트 상호간\n 식별을 위해 이름, 프로필 사진, 전화 번호, 주소, 병명, 나이 등이 위드메이트 서비스 내의 매칭된 회원에게 공개됩니다. 이는 공개 범위 특정이 불가능하여 별도로 고지하여 \n 동의 받지 못함을 양해바랍니다.\n

\n
\n
\n\n
\n

제 4조 (개인정보의 취급 위탁)

\n
\n 회사는 원활한 개인정보 업무 처리를 위하여 추후 개인정보 처리 업무를 외부에 위탁할 예정이며, 해당 업체의 명단은 확정 후 공지될\n 예정입니다.\n
\n
\n 또, 회사는 위탁 계약 체결 시 개인정보보호법 제25조에 따라 위탁 업무 수행 목적 외 개인정보 처리 금지, 재위탁 제한, 수탁자에 대한 관리\n 및 감독, 책임에 관한 사항을 명시하고, 수탁자가 개인정보를 안전하게 처리하는지 감독할 의무가 있으며, 해당 의무를 책임지고 준수할\n 것입니다.\n
\n
\n\n
\n

제 5조 (동의의 거부권 및 거부 시의 불이익 고지)

\n
\n 회원은 개인정보 수집ㆍ이용에 관한 동의를 거부할 권리가 있습니다. 다만, 계약 체결 및 이행 등을 위해 필요한 최소한의 개인정보\n 수집ㆍ이용에 관한 동의를 거부하는 경우에는 서비스 이용이 불가능하거나 처리 업무가 지연되는 등의 불이익이 있을 수 있습니다.\n
\n
\n 또한 마케팅 활동 및 홍보를 위한 개인정보 수집ㆍ이용 및/또는 선택적 수집ㆍ이용에 관한 동의를 거부하는 경우에는 이벤트, 혜택에 대한\n 정보를 제공받지 못하거나 사은품ㆍ판촉물 제공, 제휴서비스 이용, 할인 혜택 적용 및 포인트 적립 불가 등의 불이익이 있을 수 있습니다.\n
\n

\n ※ 본 제공 동의 이외에도 회사는 회원이 별도로 동의한 경우, 회원이 동의한 바에 따라 개인정보를 수집ㆍ이용하거나 제3자에게 개인정보를\n 제공할 수 있습니다.\n

\n
\n\n
\n

제 6조 (개인정보의 보유 및 이용 기간)

\n
1.
\n
회사는 회원이 회원의 자격을 유지하고 있는 동안 수집된 회원의 개인정보를 보유 및 이용할 수 있습니다.
\n
2.
\n
\n 하지만 회원이 탈퇴하거나 자격을 상실한 경우, 회사는 회원의 별도 요청이 없더라도 수집된 회원 정보를 삭제 및 파기합니다. 회사는 다음의\n 방법으로 개인정보를 파기합니다.\n
\n
\n

- 전자적 파일 : 파일 삭제 및 디스크 등의 저장 매체 포맷

\n

- 수기(手記) 문서 : 분쇄하거나 소각

\n
\n
3.
\n
단, 회원의 탈퇴 또는 자격 상실에도 불구하고 다음의 정보는 아래의 이유로 명시 기간 동안 보존 후 삭제 및 파기됩니다.
\n
\n

3-1) 회사 내부 방침에 의한 정보 보유

\n

- 회원 간의 분쟁 및 문제해결을 위한 회원정보 기록 : 분쟁의 소멸 시효 등 도과시까지

\n

- 탈퇴 회원의 재가입 제한을 위한 회원정보 기록: 3개월

\n

- 이용 제한 회원 및 부정 회원의 재가입 제한을 위한 회원 정보 기록: 제한 기간에 따름(별도저장)

\n
\n
\n

3-2) 관계 법령에 의한 정보 보유

\n

- 표시/광고에 관한 기록 : 6개월 (「전자상거래 등에서의 소비자보호에 관한 법률」)

\n

- 계약 또는 청약철회 등에 관한 기록 : 5년 (「전자상거래 등에서의 소비자보호에 관한 법률」)

\n

- 대금결제 및 재화 등의 공급에 관한 기록 : 5년 (「전자상거래 등에서의 소비자보호에 관한 법률」)

\n

- 소비자의 불만 또는 분쟁 처리에 관한 기록 : 3년 (「전자상거래 등에서의 소비자보호에 관한 법률」)

\n

- 로그인 기록 : 3개월 (「통신비밀보호법」)

\n
\n
\n\n
\n

제 7조 (회원 및 법정대리인의 권리, 의무와 그 행사 방법)

\n
1.
\n
\n 회원은 언제든지 등록되어 있는 자신의 개인 정보를 열람하거나 수정할 수 있으며, 회사의 개인정보 처리에 동의하지 않는 경우 동의를\n 거부하거나 가입 해지(회원탈퇴)를 요청할 수 있습니다. 단, 개인 정보에서 서비스 운영을 위해 확인이 필요한 정보를 변경할 경우에는\n 회사의 승인이 이루어질 때까지 서비스 이용이 제한될 수 있습니다.\n
\n
2.
\n
\n 회원의 개인정보 조회 및 수정을 위해서는 \"개인정보변경\"(또는 \"회원정보수정\" 등)을, 가입해지(동의철회)를 위해서는 \"회원탈퇴\"를, 각\n 클릭하여 본인 확인 절차를 거치신 후 직접 열람, 정정 또는 탈퇴가 가능합니다. 혹은 개인정보 관리책임자에게 서면 또는 이메일로\n 연락하시면 지체 없이 조치하겠습니다.\n
\n
3.
\n
\n 회원이 개인정보의 오류에 대한 정정을 요청하신 경우에 회사는 당해 정정을 완료하기 전까지 당해 개인정보를 이용하거나 제3자에게\n 제공하지 않습니다. 또한 잘못된 개인정보를 제3자에게 이미 제공한 경우에는 정정 처리 결과를 제3자에게 지체 없이 통지하여 정정이\n 이루어지도록 하겠습니다.\n
\n
4.
\n
\n 회사는 회원의 요청에 의해 해지 또는 삭제된 개인정보는 \"제6조 개인정보의 보유 및 이용기간\"에 명시된 바에 따라 처리하고 그 외의 용도로\n 열람 또는 이용할 수 없도록 처리하고 있습니다.\n
\n
5.
\n
\n 서비스에 가입할 수 있는 자는 만 19세 이상이며, 개인정보의 수집∙이용에 법정 대리인의 동의가 필요한 만 14세 미만 아동의 개인정보는\n 원칙적으로 수집하지 않습니다.\n
\n
\n\n
\n

제 8조 (개인정보 자동 수집 장치의 설치와 운영 및 거부에 관한 사항)

\n
1.
\n
\n 회원은 언제든지 등록되어 있는 자신의 개인 정보를 열람하거나 수정할 수 있으며, 회사의 개인정보 처리에 동의하지 않는 경우 동의를\n 거부하거나 가입 해지(회원탈퇴)를 요청할 수 있습니다. 단, 개인 정보에서 서비스 운영을 위해 확인이 필요한 정보를 변경할 경우에는\n 회사의 승인이 이루어질 때까지 서비스 이용이 제한될 수 있습니다.\n
\n
\n

\n 쿠키의 사용목적 :이용자가 방문한 각 서비스와 웹 사이트들에 대한 방문 및 이용 형태, 인기 검색어,\n 보안 접속 여부, 등을 파악하여 이용자에게 최적화된 정보 제공을 위해 사용됩니다.\n

\n

\n 쿠키의 설치∙운영 및 거부 :웹브라우저 상단의 도구>인터넷 옵션>개인정보 메뉴의 옵션 설정을 통해 쿠키\n 저장을 거부 할 수 있습니다.\n

\n

\n 쿠키 저장을 거부할 경우 맞춤형 서비스 이용에 어려움이 발생할 수 있습니다.\n

\n
\n\n
2.
\n
회사는 이용자에게 개별적인 맞춤 서비스를 제공하기 위해 온라인 맞춤형 광고 서비스를 사용합니다.
\n
\n

\n 행태 정보 수집 방법 :이용자가 당사 애플리케이션을 실행할 때 자동 수집 및 전송합니다.\n

\n

\n 모바일 애플리케이션 사용 시 광고 식별자 수집 :회사는 이용자의 ADID/IDFA를 수집할 수 있습니다.\n ADID/IDFA란 모바일 앱 이용자의 광고 식별 값으로써, 사용자의 맞춤 서비스 제공이나 더 나은 환경의 광고를 제공하기 위한 측정을 위해\n 수집할 수 있습니다.\n

\n

\n 거부 방법 :- Android: 설정 → 구글(구글설정) → 광고 → 광고 맞춤설정 선택 해제\n

\n
\n
\n\n
\n

제 9조 (개인정보의 안전성 확보 조치)

\n
\n 회원은 언제든지 등록되어 있는 자신의 개인 정보를 열람하거나 수정할 수 있으며, 회사의 개인정보 처리에 동의하지 않는 경우 동의를\n 거부하거나 가입 해지(회원탈퇴)를 요청할 수 있습니다. 단, 개인 정보에서 서비스 운영을 위해 확인이 필요한 정보를 변경할 경우에는\n 회사의 승인이 이루어질 때까지 서비스 이용이 제한될 수 있습니다.\n
\n\n
\n

\n - 관리적 조치 :내부 관리 계획 수립 및 시행, 직원과 종업원 등에 대한 정기적 교육\n

\n

\n - 기술적 조치 : 개인정보 처리시스템(또는 개인정보가 저장된 컴퓨터)의 비밀번호 설정 등 접근권한\n 관리, 백신소프트웨어 등 보안프로그램 설치, 개인정보가 저장된 파일의 암호화\n

\n

\n - 물리적 조치 :개인정보가 저장․보관된 장소의 시건, 출입통제 등\n

\n
\n
\n\n
\n

제 10조 (개인정보 관리책임자 및 담당자의 연락처)

\n
\n 회사는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보 주체의 불만 및 피해 구제를 처리하기 위하여 아래와\n 같이 개인정보 보호책임자를 지정하고 있습니다.\n
\n\n

개인정보 보호 및 관리 책임자 (사업주 또는 대표자)

\n
\n

\n 성명 및 직책 :지승배 / 대표이사\n

\n

\n 연락처 :ceo@withmate.kr\n

\n

\n 고객센터 :070-4300-9075\n

\n
\n
\n\n
\n

제 11조 (고지의 의무)

\n
\n 현 개인정보처리방침 내용 추가, 삭제 및 수정이 있을 시에는 개정 최소 7일전부터 회사 애플리케이션, 서비스 내의 '공지사항' 또는 기타\n 알기 쉬운 방법을 통해 고지할 것입니다. 다만, 개인정보의 수집 및 활용, 제3자 제공 등과 같이 회원 권리의 중요한 변경이 있을 경우에는\n 최소 30일 전에 고지합니다.\n
\n
\n\n
\n
\n

개인정보 처리방법 버전 번호 : v.1.2

\n

제정일자 : 2021년 12월 20일

\n
\n
*/}\n
\n
\n );\n }\n}\nexport default PrivacyComponent;\n","import React from 'react';\n\n// component\nimport PrivacyStyledContainer from './privacy.styled';\nimport Privacy from './privacy';\n\nclass PrivacyContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default PrivacyContainer;\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\nconst MarketingStyledContainer = styled.div`\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > table {\n border-spacing: 0px;\n width: 100%;\n height: 100px;\n border: 1px solid #e2e2e2;\n\n > tr, th, td {\n width: 200px;\n border: 1px solid #e2e2e2;\n text-align: left;\n padding-left: 10px;\n }\n\n > td {\n line-height: 2rem;\n border: 1px solid #e2e2e2;\n }\n\n > thead {\n height: 35px; \n }\n\n > tbody {\n background-color: #f9f9f9;\n }\n\n @media (max-width: 832px) {\n width: 100%;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default MarketingStyledContainer;","import React from 'react';\n\nclass MarketingComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

위드메이트 마케팅 정보 활용 동의

\n
\n\n
\n

\n 마케팅 정보 수신 여부 및 마케팅을 위한 개인정보 수집이용을 거부하실 수 있으며,
\n 거부 시에도 위드메이트 서비스를 이용하실 수 있으나, 동의를 거부한 경우 각종 소식 및 이벤트 참여에 제한이 있을 수 있습니다.\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
개인정보 수집 항목개인정보 수집 이용 목적보유 및 이용기간
이름, 연락처, 이메일• 이벤트 운영 및 광고성 정보 전송\n
\n • 서비스 관련 정보 전송\n
이용자가 동의를 철회하거나, 회원 탈퇴시 즉시 삭제
\n
\n
\n
\n );\n }\n}\nexport default MarketingComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport MarketingStyledContainer from './marketing.styled';\nimport Marketing from './marketing';\n\nclass MarketingContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(MarketingContainer);\n","import styled from 'styled-components';\nimport { sizeHandler } from '../../../../theme';\nconst NromalStyledContainer = styled.div`\n * {\n thead {\n border: 1px solid gray;\n text-align: center;\n\n tr {\n font-weight: bold;\n }\n }\n\n tbody {\n td:nth-child(2),\n td:nth-child(3) {\n text-align: center;\n }\n }\n\n tr {\n border: 1px solid gray;\n }\n\n td {\n padding: 0.5rem;\n border: 1px solid gray;\n }\n }\n\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default NromalStyledContainer;\n","import React from 'react';\n\nclass EssentialComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

[필수/일반] (주)블루카멜 개인정보 수집 및 이용 동의 확인서

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
처리 항목처리 목적처리 목적
\n 공통(가입경로, 가입자 생년월일, 가입자 성별, 가입자 이름, 가입자 휴대전화번호, 보호자/환자 여부), 이메일주소 가입\n 시(이메일 주소, 비밀번호, 인증번호), 카카오계정 가입 시(카카오계정)\n 회원 가입 및 관리
민원인 이름, 민원인 휴대전화번호회원 가입 및 관리
\n 거주환경(계단이용여부), 동행인 선택 여부, 동행인 성별 선택, 동행인 이름, 예상 소요시간, 예약자 휴대전화번호, 이동 수단,\n 환자 나이, 환자 성별, 환자 이름, 환자 휴대전화번호, 환자와의 관계, 희망 접선 일시\n 서비스 제공 및 관리온라인 예약하기
\n 서비스 종류, 작성 일시, 작성자 이름, 평점, 방문병원 주소, 서비스 진행 현황, 예약 신청 일자, 진료 예약 일시, 환자 이름\n 서비스 제공 및 관리후기 작성하기
\n 동행인 사진, 동행인 서비스 이력, 동행인 이름, 동행인 평점, 동행인 휴대전화번호, 보호자 휴대전화번호, 서비스 종류, 예상\n 소요시간, 예약 신청 일시, 이동 수단, 환자 성별, 환자 이름, 환자 휴대전화번호, 환자와의 관계, 희망 접선 시간, 희망 접선\n 일자\n 서비스 제공 및 관리마이페이지(예약내역)
가입자 이름, 가입자 휴대전화번호, 비밀번호, 카드 유효기간, 카드번호, 카드사서비스 제공 및 관리마이페이지(개인정보 관리)
쿠폰 번호, 쿠폰 사용 내역, 포인트 적립 내역, 포인트 사용 내역, 현재 잔여 포인트서비스 제공 및 관리마이페이지(내 포인트)
거주환경(계단이용여부), 환자 나이, 환자 성별, 환자 이름, 환자 휴대전화번호, 환자와의 관계서비스 제공 및 관리마이페이지(환자 프로필 관리)
\n 거주환경(계단이용여부), 동행인 성별 선택, 동행인 의료 기관 평가, 동행인 의사 평가, 동행인 이름, 동행인 휴대전화번호,\n 보호자 휴대전화번호, 서비스 종류, 예상 소요시간, 예약번호, 예약자 이름, 이동 수단, 환자 나이, 환자 성별, 환자 이름, 환자\n 휴대전화번호, 희망 접선 일시\n 서비스 제공 및 관리관리자페이지(예약/수행이력)
\n 가입자 생년월일, 가입자 성별, 거주환경(계단이용여부), 병원동행서비스 개선점, 의료 기관 만족 여부, 동행인 서비스 이력,\n 동행인 선택 여부, 동행인 성별 선택, 동행인 의료 기관 평가, 동행인 의사 평가, 동행인 평점, 의료 기관 만족 이유, 의료진\n 만족 여부, 의료진 만족 이유, 서비스 종류, 예상 소요시간, 이벤트 참여 여부, 이용 후기, 향후 재신청 의향, 이동 수단,\n 포인트 사용 내역, 환불 정보, 결제수단, 이용금액(결산), 이용금액(예상), 쿠폰 사용 내역, 평점, 총 이용시간, 포인트 적립\n 내역, 현재 잔여 포인트, 환자 나이, 환자 성별, 환자와의 관계\n 서비스 품질 개선 및 신규 서비스 개발서비스 품질 개선 및 신규 서비스 개발
\n\n
\n

\n

\n [ 개인정보의 수집 및 이용 동의 거부 시 불이익 ]
\n 정보주체는 개인정보 수집 및 이용에 동의를 거부할 권리가 있습니다. 단, 필수항목에 대해 거부할 경우,\n ‘(주)블루카멜(개인정보처리자)’이 제공하는 서비스의 일부 또는 전부를 이용할 수 없습니다.\n

\n

\n [ 개인정보의 보유 및 이용 기간 ]
\n ① 위에서 제시한 처리 목적과 관련한 개인정보는 수집 및 이용에 대한 동의일부터 회원 탈퇴 후 2년까지\n ‘(주)블루카멜(개인정보처리자)’이 보유 및 처리합니다.
\n ② 다음과 같은 경우에는 ‘(주)블루카멜(개인정보처리자)’이 개인정보를 제1항에서 정한 기간과 달리 보유 및 처리할 수 있습니다.
\n   1. 다음과 같이 관련 법령에 의하여 보존할 필요성이 있는 경우
\n   1) 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
\n   2) 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년
\n   3) 대금결제 및 재화 등의 공급에 관한 기록 : 5년
\n   4) 계약 또는 청약철회 등에 관한 기록 : 5년
\n   5) 표시/광고에 관한 기록 : 6개월
\n   2. 정보주체로부터 사전에 동의를 받은 경우 : 정보주체가 사전 동의한 기간\n

\n
\n
\n
\n
\n );\n }\n}\nexport default EssentialComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport NormalStyledContainer from './normal.styled';\nimport Normal from './normal';\n\nclass NormalContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(NormalContainer);\n","import styled from 'styled-components';\nimport { sizeHandler } from '../../../../theme';\nconst TermsStyledContainer = styled.div`\n * {\n thead {\n border: 1px solid gray;\n text-align: center;\n\n tr {\n font-weight: bold;\n }\n }\n\n tbody {\n td:nth-child(2),\n td:nth-child(3) {\n text-align: center;\n }\n }\n\n tr {\n border: 1px solid gray;\n }\n\n td {\n padding: 0.5rem;\n border: 1px solid gray;\n }\n }\n\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default TermsStyledContainer;\n","import React from 'react';\n\nclass SensitiveComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

[필수/민감] (주)블루카멜 개인정보 수집 및 이용 동의 확인서

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
수집 및 이용 항목수집 및 이용 목적수집 및 이용 목적
동행 시 주의사항, 진료 예약 시간, 진료 예약 일자, 방문병원 주소, 출발지 주소(자택, 터미널, 입원 병원 등)서비스 제공 및 관리온라인 예약하기
방문병원 주소, 서비스 진행 현황, 예약 신청 일자, 진료 예약 일시서비스 제공 및 관리후기 작성하기
\n 다음 진료 일정 정리, 동행인 전달사항, 방문병원 주소, 복약 지도사항, 서비스 진행 중 특이사항, 진료 및 치료 내용, 진료\n 예약 시간, 진료 예약 일자, 출발지 주소(자택, 터미널, 입원 병원 등), 환자 통원 타임라인\n 서비스 제공 및 관리마이페이지(예약내역)
동행 시 주의사항, 출발지 주소(자택, 터미널, 입원 병원 등)서비스 제공 및 관리마이페이지(환자 프로필 관리)
\n 다음 진료 일정 정리, 동행 시 주의사항, 동행인 전달사항, 방문병원 주소, 복약 지도사항, 서비스 진행 중 특이사항, 서비스\n 진행 현황, 진료 및 치료 내용, 진료 예약 일시, 출발지 주소(자택, 터미널, 입원 병원 등), 환자 통원 타임라인\n 서비스 제공 및 관리관리자페이지(예약/수행이력)
\n 동행 시 주의사항, 동행인 전달사항, 방문병원 주소, 서비스 진행 중 특이사항, 진료 및 치료 내용, 출발지 주소(자택, 터미널,\n 입원 병원 등), 환자 통원 타임라인\n 서비스 품질 개선 및 신규 서비스 개발서비스 품질 개선 및 신규 서비스 개발
\n\n
\n

\n

\n [ 개인정보의 수집 및 이용 동의 거부 시 불이익 ]
\n 정보주체는 개인정보 수집 및 이용에 동의를 거부할 권리가 있습니다. 단, 필수항목에 대해 거부할 경우,\n ‘(주)블루카멜(개인정보처리자)’이 제공하는 서비스의 일부 또는 전부를 이용할 수 없습니다.\n

\n

\n [ 개인정보의 보유 및 이용 기간 ]
\n ① 위에서 제시한 처리 목적과 관련한 개인정보는 수집 및 이용에 대한 동의일부터 회원 탈퇴 후 2년까지\n ‘(주)블루카멜(개인정보처리자)’이 보유 및 처리합니다.
\n ② 다음과 같은 경우에는 ‘(주)블루카멜(개인정보처리자)’이 개인정보를 제1항에서 정한 기간과 달리 보유 및 처리할 수 있습니다.
\n   1. 다음과 같이 관련 법령에 의하여 보존할 필요성이 있는 경우
\n   1) 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
\n   2) 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년
\n   3) 대금결제 및 재화 등의 공급에 관한 기록 : 5년
\n   4) 계약 또는 청약철회 등에 관한 기록 : 5년
\n   5) 표시/광고에 관한 기록 : 6개월
\n   2. 정보주체로부터 사전에 동의를 받은 경우 : 정보주체가 사전 동의한 기간\n

\n
\n
\n
\n
\n );\n }\n}\nexport default SensitiveComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport SensitiveStyledContainer from './sensitive.styled';\nimport Sensitive from './sensitive';\n\nclass SensitiveContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(SensitiveContainer);\n","import styled from 'styled-components';\nimport { sizeHandler } from '../../../../theme';\nconst NromalStyledContainer = styled.div`\n * {\n thead {\n border: 1px solid gray;\n text-align: center;\n\n tr {\n font-weight: bold;\n }\n }\n\n tbody {\n td:nth-child(2),\n td:nth-child(3) {\n text-align: center;\n }\n }\n\n tr {\n border: 1px solid gray;\n }\n\n td {\n padding: 0.5rem;\n border: 1px solid gray;\n }\n }\n\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default NromalStyledContainer;\n","import React from 'react';\n\nclass NormalComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

[선택/일반] (주)블루카멜 개인정보 수집 및 이용 동의 확인서

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
수집 및 이용 항목수집 및 이용 목적수집 및 이용 목적
추천인 이름, 추천인 휴대전화번호, 이벤트 참여 정보(이벤트 참여 여부, 받는 사람, 받는 주소)서비스 제공 및 관리온라인 예약하기
\n 병원동행서비스 개선점, 의료 기관 만족 여부, 의료 기관 만족 이유, 의료진 만족 여부, 의료진 만족 이유, 이용 후기, 제목,\n 향후 재신청 의향\n 서비스 제공 및 관리후기 작성하기
추천인 이름서비스 제공 및 관리관리자페이지(예약/수행이력)
이벤트 참여 여부, 병원동행서비스 개선점, 의료 기관 만족 여부, 의료 기관 만족 이유, 이용 후기, 향후 재신청 의향서비스 품질 개선 및 신규 서비스 개발서비스 품질 개선 및 신규 서비스 개발
\n\n
\n

\n

\n [ 개인정보의 수집 및 이용 동의 거부 시 불이익 ]
\n 정보주체는 개인정보 수집 및 이용에 동의를 거부할 권리가 있습니다. 단, 필수항목에 대해 거부할 경우,\n ‘(주)블루카멜(개인정보처리자)’이 제공하는 서비스의 일부 또는 전부를 이용할 수 없습니다.\n

\n

\n [ 선택항목 입력 시 처리 동의로 간주 ]
\n ‘(주)블루카멜(개인정보처리자)’이 정한 선택항목은 정보주체가 서비스 이용 과정에서 해당 항목을 입력하지 않는다면 수집되지\n 않습니다. 선택항목 처리에 동의를 거부하더라도, 서비스 이용 중 정보주체가 해당 항목을 입력한다면 처리에 대해 동의한 것으로\n 간주합니다.\n

\n

\n [ 개인정보의 보유 및 이용 기간 ]
\n ① 위에서 제시한 처리 목적과 관련한 개인정보는 수집 및 이용에 대한 동의일부터 회원 탈퇴 후 2년까지\n ‘(주)블루카멜(개인정보처리자)’이 보유 및 처리합니다.
\n ② 다음과 같은 경우에는 ‘(주)블루카멜(개인정보처리자)’이 개인정보를 제1항에서 정한 기간과 달리 보유 및 처리할 수 있습니다.
\n   1. 다음과 같이 관련 법령에 의하여 보존할 필요성이 있는 경우
\n   1) 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
\n   2) 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년
\n   3) 대금결제 및 재화 등의 공급에 관한 기록 : 5년
\n   4) 계약 또는 청약철회 등에 관한 기록 : 5년
\n   5) 표시/광고에 관한 기록 : 6개월
\n   2. 정보주체로부터 사전에 동의를 받은 경우 : 정보주체가 사전 동의한 기간\n

\n
\n
\n
\n
\n );\n }\n}\nexport default NormalComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport NormalStyledContainer from './normal.styled';\nimport Normal from './normal';\n\nclass NormalContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(NormalContainer);\n","import styled from 'styled-components';\nimport { sizeHandler } from '../../../../theme';\nconst SensitiveStyledContainer = styled.div`\n * {\n thead {\n border: 1px solid gray;\n text-align: center;\n\n tr {\n font-weight: bold;\n }\n }\n\n tbody {\n td:nth-child(2),\n td:nth-child(3) {\n text-align: center;\n }\n }\n\n tr {\n border: 1px solid gray;\n }\n\n td {\n padding: 0.5rem;\n border: 1px solid gray;\n }\n }\n\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default SensitiveStyledContainer;\n","import React from 'react';\n\nclass SensitiveComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

[선택/민감] (주)블루카멜 개인정보 수집 및 이용 동의 확인서

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
수집 및 이용 항목수집 및 이용 목적수집 및 이용 목적
기타 요청 및 전달사항서비스 제공 및 관리온라인 예약하기
의료진 이름서비스 제공 및 관리후기 작성하기
기타 요청 및 전달사항서비스 제공 및 관리마이페이지(예약내역)
기타 요청 및 전달사항서비스 제공 및 관리관리자페이지(예약/수행이력)
기타 요청 및 전달사항서비스 품질 개선 및 신규 서비스 개발서비스 품질 개선 및 신규 서비스 개발
\n\n
\n

\n

\n [ 개인정보의 수집 및 이용 동의 거부 시 불이익 ]
\n 정보주체는 개인정보 수집 및 이용에 동의를 거부할 권리가 있습니다. 단, 필수항목에 대해 거부할 경우,\n ‘(주)블루카멜(개인정보처리자)’이 제공하는 서비스의 일부 또는 전부를 이용할 수 없습니다.\n

\n

\n [ 선택항목 입력 시 처리 동의로 간주 ]
\n ‘(주)블루카멜(개인정보처리자)’이 정한 선택항목은 정보주체가 서비스 이용 과정에서 해당 항목을 입력하지 않는다면 수집되지\n 않습니다. 선택항목 처리에 동의를 거부하더라도, 서비스 이용 중 정보주체가 해당 항목을 입력한다면 처리에 대해 동의한 것으로\n 간주합니다.\n

\n

\n [ 개인정보의 보유 및 이용 기간 ]
\n ① 위에서 제시한 처리 목적과 관련한 개인정보는 수집 및 이용에 대한 동의일부터 회원 탈퇴 후 2년까지\n ‘(주)블루카멜(개인정보처리자)’이 보유 및 처리합니다.
\n ② 다음과 같은 경우에는 ‘(주)블루카멜(개인정보처리자)’이 개인정보를 제1항에서 정한 기간과 달리 보유 및 처리할 수 있습니다.
\n   1. 다음과 같이 관련 법령에 의하여 보존할 필요성이 있는 경우
\n   1) 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
\n   2) 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년
\n   3) 대금결제 및 재화 등의 공급에 관한 기록 : 5년
\n   4) 계약 또는 청약철회 등에 관한 기록 : 5년
\n   5) 표시/광고에 관한 기록 : 6개월
\n   2. 정보주체로부터 사전에 동의를 받은 경우 : 정보주체가 사전 동의한 기간\n

\n
\n
\n
\n
\n );\n }\n}\nexport default SensitiveComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport SensitiveStyledContainer from './sensitive.styled';\nimport Sensitive from './sensitive';\n\nclass SensitiveContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(SensitiveContainer);\n","import styled from 'styled-components';\nimport { sizeHandler } from '../../../theme';\nconst AdvertisementStyledContainer = styled.div`\n * {\n thead {\n border: 1px solid gray;\n text-align: center;\n\n tr {\n font-weight: bold;\n }\n }\n\n tbody {\n td:nth-child(2),\n td:nth-child(3) {\n text-align: center;\n }\n }\n\n tr {\n border: 1px solid gray;\n }\n\n td {\n padding: 0.5rem;\n border: 1px solid gray;\n }\n }\n\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default AdvertisementStyledContainer;\n","import React from 'react';\n\nclass AdvertisementComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

[맞춤 광고] (주)블루카멜 개인정보 수집 및 이용 동의 확인서

\n
\n\n
\n
\n

\n [ 개인정보 처리 항목 ]
\n 가입경로, 가입자 생년월일, 가입자 성별, 가입자 휴대전화번호, 서비스 종류, 이동 수단, 이메일 주소, 결제 카드사, 카드사, 환자\n 나이, 환자 성별, 환자 휴대전화번호, 다음 진료 일정 정리
* ‘다음 진료 일정 정리’는 민감 정보에 해당\n

\n

\n [ 개인정보의 수집 및 이용 동의 거부 시 불이익 ]
\n 정보주체는 개인정보 수집 및 이용에 동의를 거부할 권리가 있습니다. 맞춤 광고 목적의 항목에 대해 거부하더라도,\n ‘(주)블루카멜(개인정보처리자)’이 제공하는 서비스를 전부 또는 일부를 이용하실 수 있습니다.\n

\n

\n [ 개인정보의 보유 및 이용 기간 ]
\n ① 위에서 제시한 처리 목적과 관련한 개인정보는 수집 및 이용에 대한 동의일부터 회원 탈퇴 후 2년까지\n ‘(주)블루카멜(개인정보처리자)’이 보유 및 처리합니다.
\n ② 다음과 같은 경우에는 ‘(주)블루카멜(개인정보처리자)’이 개인정보를 제1항에서 정한 기간과 달리 보유 및 처리할 수 있습니다.
\n   1. 다음과 같이 관련 법령에 의하여 보존할 필요성이 있는 경우
\n   1) 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
\n   2) 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년
\n   3) 대금결제 및 재화 등의 공급에 관한 기록 : 5년
\n   4) 계약 또는 청약철회 등에 관한 기록 : 5년
\n   5) 표시/광고에 관한 기록 : 6개월
\n   2. 정보주체로부터 사전에 동의를 받은 경우 : 정보주체가 사전 동의한 기간\n

\n
\n
\n
\n
\n );\n }\n}\nexport default AdvertisementComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport AdvertisementStyledContainer from './advertisement.styled';\nimport Advertisement from './advertisement';\n\nclass AdvertisementContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(AdvertisementContainer);\n","import React from 'react';\nimport { notification, message, Button, Checkbox, Select } from 'antd';\nimport validator from 'validator';\nimport styled from 'styled-components';\n\nimport { LOCAL, MATE, USER, KAKAO } from '../../../../Lib/variables';\nimport axios from '../../../../Lib/axios';\nimport { CommonWithmateModal } from '../../../../Components/newModal';\nimport { DivisionLine, WithmateSelect, WithmateInput } from '../../../../Components/Common/input';\n\nimport Terms from '../../../Policy/Terms';\nimport Privacy from '../../../Policy/Privacy';\nimport Marketing from '../../../Policy/Marketing';\nimport EssentialNormal from '../../../Policy/Essential/Normal';\nimport EssentialSensitive from '../../../Policy/Essential/Sensitive';\nimport SelectiveNormal from '../../../Policy/Selective/Normal';\nimport SelectiveSensitive from '../../../Policy/Selective/Sensitive';\nimport Advertisement from '../../../Policy/Advertisement';\n\nclass RegisterComponent extends React.PureComponent {\n state = {\n modal: false,\n modalInfo: '',\n modalTitle: '',\n createdAuthCode: '',\n authCodeCheck: false,\n vaildated: false,\n };\n\n componentWillUnmount = () => {\n this.onEdit({ type: 'clear', value: '' });\n };\n\n onEdit = ({ type, value }) => {\n this.props.editRegisterForm({ type, value });\n };\n\n handleCheckAllChange = () => {\n const { registerForm } = this.props.auth;\n\n this.onEdit({ type: 'checkAll', value: !registerForm.checkAll });\n\n this.onEdit({ type: 'termsOfUse', value: !registerForm.checkAll });\n this.onEdit({ type: 'privacyPolicy', value: !registerForm.checkAll });\n this.onEdit({ type: 'essentialGeneral', value: !registerForm.checkAll });\n this.onEdit({ type: 'essentialSensitive', value: !registerForm.checkAll });\n this.onEdit({ type: 'selectiveGeneral', value: !registerForm.checkAll });\n this.onEdit({ type: 'selectiveSensitive', value: !registerForm.checkAll });\n this.onEdit({ type: 'selectiveAdvertise', value: !registerForm.checkAll });\n };\n\n onSendMailHandler = event => {\n event.preventDefault();\n\n const { email } = this.props.auth.registerForm;\n\n if (!email) {\n this.setState({\n modal: true,\n modalTitle: '이메일 미입력',\n modalInfo: '이메일이 입력되지 않았습니다. 사용하실 이메일을 입력해주세요.',\n });\n return;\n }\n\n axios.post('/v1/auth/create/code', { email: this.props.auth.registerForm.email }).then(response => {\n console.log('>> 인증코드가 발송되었습니다.');\n alert('인증코드가 발송되었습니다.', response);\n });\n };\n\n onCheckHandler = event => {\n event.preventDefault();\n const { email, code } = this.props.auth.registerForm;\n axios.get('/v1/auth/vaildate/code', { params: { email, code } }).then(resolve => {\n const { data } = resolve;\n if (data === 'success') {\n notification.open({\n message: '이메일 인증완료',\n description: '이메일 인증이 완료되었습니다.',\n type: 'success',\n });\n } else {\n notification.open({\n message: '이메일 인증실패',\n description: '이메일 인증에 실패하였습니다. 다시 입력하세요.',\n type: 'warning',\n });\n }\n\n this.setState({ vaildated: true });\n });\n };\n\n pageOneValidator = () => {\n const { termsOfUse, privacyPolicy, essentialGeneral, essentialSensitive } = this.props.auth.registerForm;\n\n if (!termsOfUse) {\n return this.setState({\n modal: true,\n modalTitle: '서비스 이용 약관에 동의해주세요.',\n modalInfo: '원활한 서비스 이용을 위해 위드메이트 서비스 이용약관에 동의해주세요.',\n });\n }\n\n if (!privacyPolicy) {\n return this.setState({\n modal: true,\n modalTitle: '개인 정보 처리 방침에 동의해주세요.',\n modalInfo: '원활한 서비스 이용을 위해 위드메이트 개인 정보 처리 방침에 동의해주세요.',\n });\n }\n\n if (!essentialGeneral) {\n return this.setState({\n modal: true,\n modalTitle: '[필수/일반] 개인정보 수집 및 이용 동의에 동의해주세요.',\n modalInfo: '원활한 서비스 이용을 위해 위드메이트 [필수/일반] 개인정보 수집 및 이용 동의에 동의해주세요.',\n });\n }\n\n if (!essentialSensitive) {\n return this.setState({\n modal: true,\n modalTitle: '[필수/민감] 개인정보 수집 및 이용 동의에 동의해주세요.',\n modalInfo: '원활한 서비스 이용을 위해 위드메이트 [필수/일반] 개인정보 수집 및 이용 동의에 동의해주세요.',\n });\n }\n\n this.onEdit({ type: 'page', value: 2 });\n };\n\n pageSndValidator = () => {\n const { userType, name, photo = '', contact, sex, birth } = this.props.auth.registerForm;\n\n if (!name)\n return this.setState({\n modal: true,\n modalTitle: '성함을 입력해주세요.',\n modalInfo: '보다 원활한 서비스 이용을 위해 고객님의 성함을 입력해주세요.',\n });\n\n if (!sex) {\n return this.setState({\n modal: true,\n modalTitle: '성별을 선택해주세요.',\n modalInfo: '보다 원활한 서비스 이용을 위해 고객님의 성별을 선택해주세요.',\n });\n }\n\n if (!birth || birth.length < 8) {\n return this.setState({\n modal: true,\n modalTitle: '생년월일을 입력해주세요.',\n modalInfo: '보다 원활한 서비스 이용을 위해 고객님의 생년월일을 입력해주세요.',\n });\n }\n\n if (userType === USER) {\n if (!contact || contact.length < 11) {\n return this.setState({\n modal: true,\n modalTitle: '연락처를 입력해주세요.',\n modalInfo: '원활한 위드메이트 서비스를 이용을 위해 고객님의 연락처를 입력해주세요.',\n });\n }\n }\n\n if (userType === MATE) {\n if (!photo) {\n return this.setState({\n modal: true,\n modalTitle: '메이트님의 프로필 사진을 설정해주세요.',\n modalInfo: '실물 사진(ex. 증명사진)으로 프로필 사진을 설정하시면 고객과의 원활한 소통에 도움이 됩니다.',\n });\n }\n\n if (!contact) {\n return this.setState({\n modal: true,\n modalTitle: '메이트님의 연락처를 입력해주세요.',\n modalInfo: '메이트님의 신원 확인을 위해 위드메이트에서 연락이 갈 예정입니다. 올바른 연락처를 입력해주세요.',\n });\n }\n }\n\n this.onEdit({ type: 'page', value: 3 });\n };\n\n onRegister = () => {\n const {\n termsOfUse, // 서비스 이용약관\n privacyPolicy, // 개인정보처리방침 동의\n essentialGeneral, // 필수_일반\n essentialSensitive, // 필수_민감\n selectiveGeneral = false, // 선택_일반\n selectiveSensitive = false, // 선택_민감\n selectiveAdvertise = false, // 선택_광고\n email,\n password,\n repassword,\n connection,\n recommenderName,\n longtermCare = false,\n marketing = false,\n userType,\n type = LOCAL,\n name,\n photo,\n contact,\n birth,\n code,\n identify,\n reason,\n } = this.props.auth.registerForm;\n\n const urlSource = window.location.search === '?source=dlive' ? 'dlive' : 'withmate';\n\n if (type === LOCAL) {\n if (!email || !validator.isEmail(email)) {\n return this.setState({\n modal: true,\n modalTitle: '올바른 이메일을 입력해주세요',\n modalInfo: '잘못된 이메일을 입력하시면 예약 알림을 받지 못하는 등의 불이익을 받으실 수 있습니다',\n });\n }\n\n if (!password || password.length < 10) {\n return this.setState({\n modal: true,\n modalTitle: '비밀번호를 확인해주세요.',\n modalInfo: '고객님의 개인정보 보호를 위해 비밀번호는 최소 10자리 이상으로 설정해주세요.',\n });\n }\n\n if (!repassword || password !== repassword) {\n return this.setState({\n modal: true,\n modalTitle: '비밀번호가 일치하지 않습니다.',\n modalInfo: '입력하신 비밀번호와 비밀번호 확인란의 정보가 일치하지 않습니다.',\n });\n }\n\n if (!this.state.vaildated || !code) {\n return this.setState({\n modal: true,\n modalTitle: '이메일 인증을 먼저 진행해주세요.',\n modalInfo: '이메일을 입력 후 인증을 먼저 진행해주세요.',\n });\n }\n }\n\n if (!connection) {\n return this.setState({\n modal: true,\n modalTitle: '유입 경로를 선택해주세요.',\n modalInfo: '위드메이트를 알게된 경로를 선택해주세요.',\n });\n }\n\n if (!identify) {\n return this.setState({\n modal: true,\n modalTitle: '보호자인지 본인인지 선택해주세요.',\n modalInfo: '보다 원활한 서비스 이용을 위해 보호자인지 본인인지 선택해주세요.',\n });\n }\n\n if (identify === '보호자') {\n if (!reason) {\n return this.setState({\n modal: true,\n modalTitle: '이용하는 이유를 입력하세요.',\n modalInfo: '위드메이트를 이용하는 이유를 입력해주세요.',\n });\n }\n }\n\n this.props\n .checkUserId({ id: email, userType, type })\n .then(resolve => {\n if (!resolve) {\n this.props\n .register({\n termsOfUse,\n privacyPolicy,\n essentialGeneral,\n essentialSensitive,\n selectiveGeneral,\n selectiveSensitive,\n selectiveAdvertise,\n\n id: email,\n password,\n userType,\n name,\n code,\n identify,\n reason,\n type,\n photo,\n contact,\n marketing,\n connection,\n recommenderName,\n birth,\n longtermCare,\n urlSource:\n window.location.search === '?source=dlive' ? 'dlive' : window.location.search === '?source=metlife' ? 'metlife' : 'withmate',\n })\n .then(resolve => {\n // 메이트 회원가입 처리\n if (userType === MATE && resolve && resolve.message === 'success') {\n this.props.editRegisterForm({ type: 'clear', value: '' });\n\n notification.open({\n message: '회원가입을 완료하였습니다.',\n description: '관리자의 회원가입 승인 후 활동가능합니다.',\n type: 'success',\n });\n }\n\n if (userType === USER && resolve === 'check parameters') {\n notification.open({\n message: '회원가입에 실패하였습니다.',\n description: '누락된 정보가 없는지 확인해주세요.',\n type: 'success',\n });\n }\n\n if (userType === USER && resolve && resolve.message === 'success') {\n this.props.history.push(`/success`);\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n } else {\n return this.setState({\n modal: true,\n modalTitle: '이미 존재하는 사용자의 이메일입니다.',\n modalInfo: '아이디를 확인해주세요. 비밀번호를 분실하신 경우 비밀번호 찾기를 이용해주세요.',\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n setPhoto = ({ file }) => {\n this.onEdit({ type: 'photo', value: file.originFileObj });\n };\n\n formCompleteStatus = () => {\n let valid = true;\n if (!this.props.auth || !this.props.auth.registerForm) return false;\n\n const { page } = this.props.auth.registerForm;\n if (page === 1) {\n const { termsOfUse, privacyPolicy, essentialGeneral, essentialSensitive, selectiveGeneral, selectiveSensitive, selectiveAdvertise } =\n this.props.auth.registerForm;\n if (!termsOfUse) valid = false;\n if (!privacyPolicy) valid = false;\n if (!essentialGeneral) valid = false;\n if (!essentialSensitive) valid = false;\n }\n\n if (page === 2) {\n const { name, contact, sex, birth } = this.props.auth.registerForm;\n if (!name) valid = false;\n if (!contact || contact.length < 11) valid = false;\n if (!sex) valid = false;\n if (!birth || birth.length < 8) valid = false;\n }\n\n if (page === 3) {\n const { email, password, repassword, connection, recommenderName, code, type, identify, reason, longtermCare } = this.props.auth.registerForm;\n if (type === LOCAL) {\n if (!email) valid = false;\n if (!password) valid = false;\n if (!repassword) valid = false;\n if (!code) valid = false;\n if (!this.state.vaildated) valid = false;\n }\n if (!connection) valid = false;\n if (!identify) valid = false;\n\n if (identify === '보호자') {\n if (!reason) valid = false;\n }\n }\n\n return valid;\n };\n\n render() {\n const { registerForm } = this.props.auth;\n // console.log(registerForm)\n const status = this.formCompleteStatus();\n\n return (\n
\n
\n
\n
\n

회원가입

\n {registerForm.page}/3\n
\n {registerForm.page === 1 ? (\n
\n \n \n 전체 동의하기\n \n \n

\n [선택/일반] 개인정보 수집 및 이용 동의, [선택/민감] 개인정보 수집 및 이용 동의, [맞춤 광고] 개인정보 수집 및 이용 동의를\n 포함합니다.\n

\n
\n\n \n {\n this.onEdit({ type: 'termsOfUse', value: !registerForm.termsOfUse });\n }}\n checked={registerForm.termsOfUse || false}\n >\n [필수] 서비스 이용 약관\n \n {\n this.setState({ modal: true, modalTitle: '이용약관 확인', modalInfo: });\n }}\n >\n

내용보기

\n \n
\n\n \n {\n this.onEdit({ type: 'privacyPolicy', value: !registerForm.privacyPolicy });\n }}\n checked={registerForm.privacyPolicy || false}\n >\n [필수] 개인 정보 처리 방침 동의\n \n\n {\n this.setState({ modal: true, modalTitle: '개인정보 처리방침 확인', modalInfo: });\n }}\n >\n

내용보기

\n \n
\n\n \n {\n this.onEdit({ type: 'essentialGeneral', value: !registerForm.essentialGeneral });\n }}\n checked={registerForm.essentialGeneral || false}\n >\n [필수/일반] 개인정보 수집 및 이용 동의\n \n {\n this.setState({\n modal: true,\n modalTitle: '[필수/일반] 개인정보 수집 및 이용 동의',\n modalInfo: ,\n });\n }}\n >\n

내용보기

\n \n
\n \n {\n this.onEdit({ type: 'essentialSensitive', value: !registerForm.essentialSensitive });\n }}\n checked={registerForm.essentialSensitive || false}\n >\n [필수/민감] 개인정보 수집 및 이용 동의\n \n {\n this.setState({\n modal: true,\n modalTitle: '[필수/민감] 개인정보 수집 및 이용 동의',\n modalInfo: ,\n });\n }}\n >\n

내용보기

\n \n
\n \n {\n this.onEdit({ type: 'selectiveGeneral', value: !registerForm.selectiveGeneral });\n }}\n checked={registerForm.selectiveGeneral || false}\n >\n [선택/일반] 개인정보 수집 및 이용\n 동의\n \n {\n this.setState({\n modal: true,\n modalTitle: '[선택/일반] 개인정보 수집 및 이용 동의',\n modalInfo: ,\n });\n }}\n >\n

내용보기

\n \n
\n \n {\n this.onEdit({ type: 'selectiveSensitive', value: !registerForm.selectiveSensitive });\n }}\n checked={registerForm.selectiveSensitive || false}\n >\n [선택/민감] 개인정보 수집 및 이용\n 동의\n \n {\n this.setState({\n modal: true,\n modalTitle: '[선택/민감] 개인정보 수집 및 이용 동의',\n modalInfo: ,\n });\n }}\n >\n

내용보기

\n \n
\n \n {\n this.onEdit({ type: 'selectiveAdvertise', value: !registerForm.selectiveAdvertise });\n }}\n checked={registerForm.selectiveAdvertise || false}\n >\n [선택/광고] 개인정보 수집 및 이용\n 동의\n \n {\n this.setState({\n modal: true,\n modalTitle: '[맞춤 광고] 개인정보 수집 및 이용 동의',\n modalInfo: ,\n });\n }}\n >\n

내용보기

\n \n
\n\n \n\n {\n if (!status) return null;\n\n this.pageOneValidator();\n }}\n type='primary'\n style={!status ? { backgroundColor: '#E6E6E6', border: 0, cursor: 'not-allowed' } : {}}\n >\n 계속하기\n \n
\n ) : registerForm.page === 2 ? (\n
\n \n {\n this.onEdit({ type: 'name', value: ev.target.value });\n }}\n />\n\n \n\n \n
\n {\n this.onEdit({ type: 'sex', value: '남' });\n }}\n >\n 남자\n
\n {\n this.onEdit({ type: 'sex', value: '녀' });\n }}\n >\n 여자\n
\n
\n\n \n\n \n {\n this.onEdit({ type: 'birth', value: ev.target.value });\n }}\n />\n\n \n\n \n {\n this.onEdit({ type: 'contact', value: ev.target.value });\n }}\n />\n\n \n\n {\n if (!status) return null;\n\n this.pageSndValidator();\n }}\n type='primary'\n style={!status ? { backgroundColor: '#E6E6E6', border: 0, cursor: 'not-allowed' } : {}}\n >\n 계속하기\n \n\n
\n 메이트 신청을 희망하시나요? \n {\n this.props.history.push('/mate/apply');\n }}\n className='link'\n >\n 메이트 신청하기\n \n
\n\n
\n 이미 계정이 있으신가요? \n {\n this.props.history.push('/user/login');\n }}\n className='link'\n >\n 로그인\n \n
\n
\n ) : (\n <>\n
\n {registerForm.type === KAKAO ? null : (\n <>\n \n
\n {\n this.onEdit({ type: 'email', value: ev.target.value });\n }}\n required\n style={{ width: '180px' }}\n placeholder='이메일을 입력해주세요.'\n />\n \n 인증하기\n \n
\n\n
\n {\n this.onEdit({ type: 'code', value: ev.target.value });\n }}\n required\n style={{ width: '180px' }}\n placeholder='인증번호를 입력해주세요.'\n />\n \n 확인\n \n
\n\n \n\n \n {\n this.onEdit({ type: 'password', value: ev.target.value });\n }}\n placeholder='10자리 이상 비밀번호를 입력해주세요.'\n value={registerForm.password || ''}\n />\n\n \n\n \n {\n this.onEdit({ type: 'repassword', value: ev.target.value });\n }}\n placeholder='비밀번호를 확인해주세요.'\n value={registerForm.repassword || ''}\n />\n\n \n \n )}\n\n \n {\n this.onEdit({ type: 'connection', value });\n }}\n >\n 메트라이프(360Future)\n 딜라이브\n 검색\n 언론기사\n 광고\n 지인 추천\n \n\n \n\n {registerForm.connection === '지인 추천' ? (\n <>\n \n {\n this.onEdit({ type: 'recommenderName', value: ev.target.value });\n }}\n value={registerForm.recommenderName || ''}\n />\n \n ) : null}\n\n \n\n \n
\n {\n this.onEdit({ type: 'identify', value: '본인' });\n }}\n >\n 본인\n
\n {\n this.onEdit({ type: 'identify', value: '보호자' });\n }}\n >\n 보호자\n
\n
\n\n \n\n {registerForm.identify === '본인' ? null : (\n <>\n \n {\n this.onEdit({ type: 'reason', value: ev.target.value });\n }}\n placeholder='육아, 직장등'\n value={registerForm.reason || ''}\n />\n\n \n \n )}\n\n {/* \n {\n this.onEdit({ type: 'longtermCare', value: !registerForm.longtermCare });\n }}\n value={registerForm.agree || false}\n >\n 장기요양등급 상담 신청하기 (선택)\n \n \n *장기요양등급 상담 신청을 원하시면 체크해주세요. */}\n\n \n\n \n {\n this.onEdit({ type: 'marketing', value: !registerForm.marketing });\n }}\n >\n 개인정보 마케팅 활용 동의 (선택)\n \n {\n this.setState({ modal: true, modalTitle: '개인정보 마케팅 활용 동의', modalInfo: });\n }}\n >\n 더보기 {'>'}\n \n \n\n *개인 정보 활용에 동의할 경우, 2000 포인트를 지급합니다.\n\n \n\n {\n this.onRegister();\n }}\n style={{ display: 'block' }}\n style={!status ? { backgroundColor: '#E6E6E6', border: 0, cursor: 'not-allowed' } : {}}\n >\n 가입하기\n \n\n
\n 이미 계정이 있으신가요? \n {\n this.props.history.push('/user/login');\n }}\n >\n 로그인\n \n
\n \n \n )}\n \n \n\n {this.state.modal && (\n {\n this.setState({ modal: false, modalTitle: '', modalInfo: '' });\n }}\n onCancel={() => {\n this.setState({ modal: false, modalTitle: '', modalInfo: '' });\n }}\n />\n )}\n \n );\n }\n}\nexport default RegisterComponent;\n\nconst Agree = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n margin-bottom: 8px;\n\n span {\n font-size: 14px;\n line-height: 21px;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n span.point {\n color: #3bc1ff;\n }\n\n a.point {\n color: #3bc1ff;\n cursor: pointer;\n text-decoration: none;\n }\n\n .ant-checkbox-wrapper {\n margin-bottom: 0px !important;\n }\n`;\n\nconst Alert = styled.p`\n margin-bottom: 0px;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 20px;\n letter-spacing: -0.15px;\n color: #ff5500;\n`;\n\nconst AgreeLinkText = styled.p`\n margin-bottom: 4px;\n font-size: 13px;\n color: rgba(0, 0, 0, 0.7);s\n\n cursor: pointer;\n &:hover {\n color: #3bc1ff;\n transition: all 0.3s;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport RegisterStyledContainer from './register.styled';\nimport Register from './register';\nimport { register, editRegisterForm, checkUserId, confirmEmailAuth } from '../../../../Reducer/Modules/auth';\n\nclass RegisterPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n editRegisterForm: ({ type, value }) => dispatch(editRegisterForm({ type, value })),\n register: info => dispatch(register(info)),\n checkUserId: ({ id, userType, type }) => dispatch(checkUserId({ id, userType, type })),\n confirmEmailAuth: verificationCode => dispatch(confirmEmailAuth(verificationCode))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(RegisterPage);","import React from 'react';\nimport { connect } from 'react-redux';\nimport { KAKAO } from '../../../../Lib/variables';\nimport { logout } from '../../../../Reducer/Modules/auth';\n\nclass LogoutPage extends React.PureComponent {\n componentDidMount = () => {\n const { id, userType, type } = this.props.auth;\n if (!id || !userType) {\n localStorage.clear();\n return (window.location.href = '/');\n }\n if( type === KAKAO && window.Kakao) {\n window.Kakao.Auth.logout()\n }\n this.props.logout({ id, userType });\n };\n\n render() {\n return
;\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\nconst mapDispatchToProps = dispatch => ({\n logout: ({ id, userType }) => dispatch(logout({ id, userType })),\n});\nexport default connect(mapStateToProps, mapDispatchToProps)(LogoutPage);\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\n\nconst StyledFindContainer = styled.div`\n margin-top: 55px;\n min-height: 100vh;\n background-image: url('/assets/images/main-background.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n .find-container {\n .inner-container {\n padding: 0px;\n padding-top: 144px;\n padding-bottom: 100px;\n\n .login-form {\n background-color: white;\n border-radius: 8px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n width: 100%;\n max-width: 340px;\n margin: 0 auto;\n padding: 24px;\n\n .login-title {\n margin-bottom: 24px;\n\n p {\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 40px;\n border: solid 1px #e6e6e6;\n margin-bottom: 20px;\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.5);\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n padding-right: 16px;\n }\n\n &:last-child {\n margin-left: 16px;\n }\n }\n }\n }\n\n .form-user-type {\n height: 36px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 36px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n text-align: center;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n }\n }\n }\n }\n }\n }\n`;\nexport default StyledFindContainer;\n","import React from 'react';\nimport { notification, Input, Button, message } from 'antd';\nimport { USER, MATE } from '../../../../Lib/variables';\n\nclass Find extends React.PureComponent {\n state = {\n alert: '',\n };\n\n onEdit = ({ type, value }) => {\n this.props.editFindForm({ type, value });\n };\n\n onFind = () => {\n const { email, userType } = this.props.auth.findForm;\n\n this.props\n .findPassword({ id: email, userType })\n .then(resolve => {\n if (resolve === 'not exist') {\n return message.info('존재하지 않는 사용자 아이디입니다.');\n }\n\n if (resolve === 'success') {\n message.info('이메일로 임시 비밀번호가 전송되었습니다.');\n setTimeout(() => {\n this.props.history.push('/user/login');\n }, 1200);\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n render() {\n const { findForm } = this.props.auth;\n return (\n
\n
\n
\n
\n

비밀번호 찾기

\n
\n
\n {\n this.onEdit({ type: 'userType', value: USER });\n }}\n className={`type ${findForm && findForm.userType === USER ? 'active' : undefined}`}\n >\n

일반

\n
\n {\n this.onEdit({ type: 'userType', value: MATE });\n }}\n className={`type ${findForm && findForm.userType === MATE ? 'active' : undefined}`}\n >\n

메이트

\n
\n
\n
\n \n {\n this.onEdit({ type: 'email', value: ev.target.value });\n }}\n />\n \n\n
\n {\n this.props.history.push('/user/login');\n }}\n >\n 로그인\n \n {\n this.props.history.push('/user/register');\n }}\n >\n 회원가입\n \n
\n
\n
\n \n \n );\n }\n}\nexport default Find;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledFindContainer from './find.styled';\nimport Find from './find';\nimport { editFindPasswordForm, findPassword } from './../../../../Reducer/Modules/auth';\n\nclass FindPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n editFindForm: ({ type, value }) => dispatch(editFindPasswordForm({ type, value })),\n findPassword: ({ id, userType }) => dispatch(findPassword({ id, userType })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FindPage);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\n\nconst StyledMateContainer = styled.div`\n margin-top: 55px;\n\n .auth-container {\n // min-height: 100vh;\n // display: flex;\n flex-direction: column;\n background-color: rgba(0, 0, 0, 0.02);\n }\n\n .navigation-container {\n border-bottom: 1px solid #e6e6e6;\n background-color: white;\n\n .inner-container {\n padding: 0px;\n }\n\n .user-info-container {\n display: flex;\n align-items: center;\n padding: 82px 30px;\n\n .default-info {\n flex: 1;\n display: flex;\n align-items: center;\n\n div {\n width: 110px;\n height: 110px;\n border-radius: 55px;\n margin-right: 20px;\n background-color: #e6e6e6;\n position: relative;\n overflow: hidden;\n\n img {\n width: 100%;\n height: 110px;\n object-fit: cover;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n\n span {\n display: inline-block;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n line-height: 110px;\n text-align: center;\n color: #ada5a5;\n }\n }\n\n p {\n flex: 1;\n font-size: ${sizeHandler(38)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: rgba(0, 0, 0, 0.8);\n\n > span {\n font-size: ${sizeHandler(38)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: rgba(0, 0, 0, 0.8);\n }\n\n br {\n display: block;\n }\n\n @media (max-width: 768px) {\n font-size: ${sizeHandler(26)};\n \n > span {\n font-size: ${sizeHandler(26)};\n }\n }\n }\n }\n\n .reserve-info {\n flex: 1;\n\n .title {\n margin-bottom: 12px;\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: rgba(145, 145, 145, 0.8);\n }\n }\n\n .value-wrapper {\n display: flex;\n align-items; center;\n\n .value-block {\n flex: 1;\n\n .title {\n img {\n height: 14px;\n margin-right: 4px;\n }\n \n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n \n .value {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n color: #3bc1ff;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n }\n }\n }\n\n .navigator {\n display: flex;\n align-items: center;\n padding: 0px 30px;\n\n @media (max-width: 768px) {\n padding: 0px 16px;\n }\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n @media (max-width: 768px) {\n margin-right: 16px;\n }\n\n .name {\n font-size: ${sizeHandler(14)};\n text-align: center;\n cursor: pointer;\n\n &.active { \n font-weight: bold;\n color: #3bc1ff;\n }\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n .user-info-container {\n padding: 42px 16px;\n flex-direction: column;\n align-items: flex-start;\n\n .reserve-info {\n margin-top: 40px;\n }\n\n .value-wrapper {\n flex-direction: column;\n\n .value-block:last-child {\n margin-top: 20px;\n }\n }\n }\n }\n }\n\n .usage-info-container {\n flex: 1;\n // background-color: rgba(0, 0, 0, 0.02);\n\n .inner-container {\n height: 100%;\n padding: 56px 30px;\n\n @media (max-width: 768px) {\n padding: 40px 16px;\n }\n }\n\n .filter-wrapper {\n margin-bottom: 20px;\n\n .filter {\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: rgba(0, 0, 0, 0.4);\n margin-right: 32px;\n cursor: pointer;\n }\n\n .filter.active {\n color: ${mainColor};\n }\n }\n }\n\n .user-info-wrapper {\n .wrapper {\n padding: 36px;\n background-color: white;\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n float: left;\n width: calc(50% - 10px);\n \n @media (max-width: 768px) {\n width: 100%;\n }\n }\n \n .title-wrapper {\n font-size: ${sizeHandler(20)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 28px;\n }\n\n .service {\n margin-bottom: 20px;\n\n p.info {\n font-size: ${sizeHandler(12)};\n font-weight: normal;\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n }\n\n button {\n width: 100%;\n height: 48px;\n border-radius: 2px;\n color: white;\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n \n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n\n .flex-wrapper {\n display: flex;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n cursor: pointer;\n }\n }\n }\n\n .default-info {\n margin-right: 20px;\n }\n\n .privacy-info {\n\n @media (max-width: 768px) {\n margin-top: 20px;\n }\n }\n\n .etc-info {\n margin-top: 20px;\n }\n }\n`;\n\nexport const UserPhoto = styled.div`\n width: 100%;\n height: 200px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n border-radius: 4px;\n border: 2px dotted #e9e9e9;\n // background-color: #e6e6e6;\n\n > img {\n width: 120px;\n height: 120px;\n object-fit: cover;\n border-radius: 50%;\n }\n`;\n\nexport const GuideRowWrapper = styled.div`\n width: 100%;\n height: 293px;\n\n max-width: 372px;\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 1px #f2f2f2;\n background-color: #ffffff;\n\n margin-right: 12px;\n\n @media (max-width: 768px) {\n > div:last-child {\n margin-right: 0px;\n }\n }\n`;\n\nexport const GuideRowWrapper2 = styled.div`\n width: 100%;\n height: 293px;\n\n max-width: 750px;\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 1px #f2f2f2;\n background-color: #ffffff;\n\n margin-right: 12px;\n\n @media (max-width: 768px) {\n > div:last-child {\n margin-right: 0px;\n }\n }\n`;\n\nexport const GuideContainer = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n margin-bottom: 56px;\n\n > div:last-child {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n\n > div:last-child {\n margin-top: 12px;\n }\n }\n`;\n\nexport const GuideDescriptionSectionTitle = styled.div`\n margin-top: 0px;\n margin-bottom: 16pxs;\n\n border-bottom: 1px solid #f2f2f2;\n padding: 32px;\n padding-bottom: 24px;\n\n font-size: 20px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.56;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n text-decoration: underline;\n cursor: pointer;\n\n > img {\n text-decoration: none;\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n margin-left: 4px;\n }\n`;\n\nexport const GuideDescriptionSection = styled.div`\n padding: 32px;\n padding-top: 24px;\n`;\n\nexport const GuideDescriptionSectionContent = styled.div`\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.86;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n word-break: keep-all;\n`;\n\nexport const StudyButton = styled.div`\n margin: 32px auto;\n\n height: 76px;\n width: fit-content;\n\n padding: 22px 30px;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 2px #3bc1ff;\n background-color: #ffffff;\n\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: #3bc1ff;\n\n cursor: pointer;\n\n img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n margin-left: 8px;\n }\n\n @media (max-width: 768px) {\n font-size: 18px;\n height: 52px;\n padding: 12px 24px;\n }\n`;\n\nexport const AlertMessage = styled.div`\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.64;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ff5500;\n\n max-width: 682px;\n margin: 0 auto;\n\n word-break: keep-all;\n\n @media (max-width: 768px) {\n font-size: 14px;\n }\n`;\n\nexport default StyledMateContainer;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input, message } from 'antd';\n\nimport { sizeHandler, mainColor } from '../../../theme';\nimport { colorParserByStatus } from '../../../Lib/utils';\nimport { ASSIST, UNEMER, HAPPYCARE } from '../../../Lib/variables';\n\nimport moment from 'moment';\n\nexport const InputFilter = ({ keyword, keywordHandler }) => (\n \n {\n keywordHandler(ev.target.value);\n }}\n placeholder='예약번호, 이용자 성함 등을 검색해보세요.'\n />\n \n);\n\nconst FilterWrapper = styled.div`\n margin-bottom: 12px;\n`;\n\nexport const CalleList = ({ list, onRow }) => {\n if (!list || list.length === 0) {\n return (\n \n \n 서비스 수행 내역이 없습니다.\n \n \n );\n }\n\n return (\n \n {list.map((item, index) => {\n const serviceType =\n !item.productInfo || !item.productInfo.usePro || !item.productInfo.useBasic ? '' : item.service === 'unemergency' ? 'Pro' : 'Basic';\n const serviceName = (item.productInfo && item.productInfo.name && item.service && item.productInfo.name + serviceType) || '-';\n\n return (\n {\n onRow(item);\n }}\n />\n );\n })}\n \n );\n};\n\nconst ReserveItem = ({ service, name, reserveDate, starting, destination, serviceType, status, onDetail, reserveCode, onRow }) => (\n \n \n \n 서비스 명\n {service}\n \n \n\n \n \n 예약 상태\n {status}\n \n \n 예약 코드\n {reserveCode}\n \n \n 이용자 성함\n {name}\n \n \n 병원 진료 예약 시간\n {reserveDate}\n \n {serviceType === 'unemergency' && (\n \n 자택 주소\n {starting}\n \n )}\n \n 병원 주소\n {destination}\n \n \n\n \n \n 상세정보 및 관리\n \n \n \n);\n\nconst EmptyList = styled.p`\n font-size: 20px;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 16px;\n position: relative;\n`;\n\nconst FullContainer = styled.div`\n width: 100%;\n min-height: 300px;\n`;\n\nconst Inner = styled.div`\n max-width: 1024px;\n margin: 0 auto;\n padding-top: 40px;\n\n @media (max-width: 1080px) {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n @media (max-width: 768px) {\n padding-top: 40px;\n }\n`;\nconst TitleSection = styled.div``;\n\nconst ContentSection = styled.div`\n flex: 1;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n\n overflow-y: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n`;\n\nconst ListConatiner = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-wrap: wrap;\n\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n > div:nth-child(3n) {\n margin-right: 16px;\n }\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n\n @media (max-width: 480px) {\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n width: 340px;\n height: 410px;\n overflow: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n\n padding: 20px;\n margin-bottom: 16px;\n margin-right: 16px;\n\n border-radius: 4px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n\n @media (max-width: 768px) {\n margin-bottom: 16px;\n }\n\n @media (max-width: 480px) {\n width: 100%;\n max-width: initial;\n margin-right: 0px;\n }\n`;\n\nconst ItemTitle = styled.p`\n color: #a7a7a7;\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(11)};\n }\n`;\n\nconst ItemContents = styled.p`\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n margin: 0px;\n padding: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n margin-bottom: 4px;\n }\n`;\n\nconst ItemColumn = styled.div`\n width: 100%;\n margin-bottom: 6px;\n\n @media (max-width: 768px) {\n display: ${props => (props.hiddenMobile ? 'none' : 'block')};\n width: 100%;\n }\n`;\n\nconst DetailButton = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 44px;\n\n border-radius: 4px;\n border: 1px solid ${mainColor};\n cursor: pointer;\n transition: all 0.3s;\n text-align: center;\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: ${mainColor};\n text-align: center;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n }\n }\n\n &:hover {\n background-color: ${mainColor};\n span {\n color: white;\n }\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: 34px;\n font-size: ${sizeHandler(12)};\n }\n`;\n","import React from 'react';\nimport { Table, Input, Button, message, Modal, Select } from 'antd';\nimport axios from '../../../../Lib/axios';\n\n// components\nimport { MateCallStatusModal } from '../../../../Components/modal';\nimport { NewHandleReportModal } from '../../../../Components/newModal';\nimport { InputFilter, CalleList } from '../../../../Components/User/Mate/auth';\n\n// styled\nimport { GuideRowWrapper2, UserPhoto } from './mate.styled';\nimport {\n GuideRowWrapper,\n GuideDescriptionSection,\n StudyButton,\n GuideDescriptionSectionTitle,\n GuideDescriptionSectionContent,\n AlertMessage,\n GuideContainer,\n} from './mate.styled';\n// utils\nimport moment from 'moment';\nimport { ASSIST, MATE, UNEMER } from '../../../../Lib/variables';\nimport { WithmateLabel, WithmateInput, WithmateSelect, DivisionLine } from '../../../../Components/Common/input';\nimport { NoReportModal } from '../../../../Components/newModal';\n\nclass Mate extends React.PureComponent {\n state = {\n active: 'list', // list, info, guide\n reservedFilter: 'none', // none, reserved, matched, complete\n modal: false,\n\n onRowModal: false,\n rowDetail: null,\n handleReportModal: false,\n report: '',\n keyword: '',\n callList: [],\n };\n\n componentDidMount = () => {\n this.syncStep();\n this.fetchList();\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n if (prevState.active !== this.state.active) {\n this.props.history.push(`/user/mate/mypage/${this.state.active}`);\n }\n };\n\n syncStep = () => {\n const { params } = this.props.match;\n const { active } = this.state;\n\n if (params.tab && active !== params.tab) {\n this.setState({ active: params.tab });\n } else if (!params.tab) {\n this.props.history.push(`/user/mate/mypage/list`);\n }\n };\n\n fetchList = () => {\n const { userType, id } = this.props.auth;\n if (id && userType === MATE) {\n axios.get('/v2/service/mate/call/list', { params: { mateId: id } }).then(resolve => {\n const { data: callList } = resolve;\n if (callList && Array.isArray(callList)) {\n this.setState({ callList }, () => {\n const noReports = callList.filter(d => d.call && !d.call.reportId && d.call.status === '서비스 종료').length;\n if (noReports > 0) {\n this.setState({\n noReportModal: true,\n });\n }\n });\n }\n });\n }\n };\n\n updateBasicInfo = () => {\n const { id, userType } = this.props.auth;\n const { userInfo } = this.props.app;\n const { newPhoto, name, contact } = userInfo;\n\n if (!name || !contact) return message.info('필수정보인 이름과 연락처를 입력해주세요.');\n if (name.length > 15) return message.info('이름이 너무 깁니다. 이름은 15자 이내로 설정해주세요.');\n\n const info = { name, contact };\n if (newPhoto) info.photo = newPhoto;\n\n this.props.modify({ id, userType, info }).then(resolve => {\n if (resolve && resolve.name) {\n message.success('정보를 업데이트 하였습니다.');\n\n localStorage.setItem('name', resolve.name);\n localStorage.setItem('photo', resolve.photo);\n\n this.props.editAuth({ type: 'photo', value: resolve.photo });\n this.props.editAuth({ type: 'name', value: resolve.name });\n this.props.editAuth({ type: 'contact', value: resolve.contact });\n this.props.onEdit({ type: 'photo', value: resolve.photo });\n this.props.onEdit({ type: 'newPhoto', value: '' });\n }\n });\n };\n\n modifyPassword = () => {\n const { passwordForm, id, userType } = this.props.auth;\n const { password, newPassword, reNewPassword } = passwordForm;\n\n if (password === newPassword) return message.info('새 비밀번호는 기존 비밀번호와 달라야합니다.');\n if (reNewPassword !== newPassword) return message.info('새 비밀번호를 확인해주세요.');\n\n this.props.modifyPassword({ id, userType, password, newPassword }).then(resolve => {\n if (resolve && resolve === 'wrong password') {\n return message.error('비밀번호가 일치하지 않습니다.');\n }\n\n if (resolve && resolve === 'not exist') {\n message.error('유효하지 않은 계정입니다. 다시 로그인해주세요.');\n return this.props.history.push('/user/logout');\n }\n\n if (resolve && resolve === 'success') {\n message.success('비밀번호를 변경하였습니다.');\n this.props.editPassword({ type: 'clear', value: '' });\n }\n });\n };\n\n withdrawl = () => {\n const { id, userType } = this.props.auth;\n const { password } = this.state.temp;\n\n if (!password) return message.info('비밀번호를 입력해주세요.');\n\n this.props.withdrawlUser({ id, userType, password }).then(resolve => {\n if (resolve && resolve === 'wrong password') {\n return message.info('잘못된 비밀번호입니다.');\n }\n\n if (resolve && resolve === 'success') {\n message.info('회원탈퇴를 완료하였습니다. 이용해주셔서 감사합니다.');\n this.setState({ modal: false, temp: null }, () => {\n setTimeout(() => {\n this.props.history.push('/user/logout');\n }, 500);\n });\n }\n });\n };\n\n tabHandler = type => {\n this.setState({ active: type });\n };\n\n onNextProcess = async () => {\n const { rowDetail } = this.state;\n\n const {\n _id,\n callId,\n service,\n call: { status, reportId },\n reserveDate,\n } = rowDetail;\n\n if (moment(reserveDate).startOf('day').valueOf() > moment().startOf('day').valueOf()) {\n message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n return null;\n }\n\n if (!_id || !callId || !service) {\n return message.error('해당 예약정보는 유효하지 않습니다. 새로고침 후 다시 시도해주세요.');\n }\n\n if (status && status === '예약접수') {\n return message.warning('아직 고객님이 예약을 확정짓지 않아 진행이 불가능합니다.');\n }\n\n if (service === UNEMER) {\n if (status === '예약완료') return this.unemergencyService().doReceipt();\n else if (status === '접선') return this.unemergencyService().doStart();\n else if (status === '병원 출발') return this.unemergencyService().doArrive();\n else if (status === '병원 도착') return this.unemergencyService().doCare();\n else if (status === '진료 시작') return this.unemergencyService().doCareDone();\n else if (status === '진료 종료') return this.unemergencyService().doBackStart();\n else if (status === '자택 출발') return this.unemergencyService().doComplete();\n else if (status === '서비스 종료') {\n if (reportId) return message.warning('이미 종료된 서비스입니다.');\n else this.openReportForm();\n }\n }\n\n if (service === ASSIST) {\n if (status === '예약완료') return this.assistService().doReceipt();\n else if (status === '접선') return this.assistService().doCare();\n else if (status === '진료 시작') return this.assistService().doCareDone();\n else if (status === '진료 종료') return this.assistService().doComplete();\n else if (status === '서비스 종료') {\n if (reportId) return message.warning('이미 종료된 서비스입니다.');\n else this.openReportForm();\n }\n }\n };\n\n unemergencyService = () => {\n const { id } = localStorage.getItem('id');\n const { rowDetail } = this.state;\n const { _id, callId } = rowDetail;\n\n const doReceipt = async () => {\n axios.put('/v2/service/receipt/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"접선\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('접선 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doStart = async () => {\n axios.put('/v2/service/start/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"병원 출발\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('병원 출발 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doArrive = async () => {\n axios.put('/v2/service/arrive/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"병원 도착\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('병원 도착 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doCare = async () => {\n axios.put('/v2/service/care/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"진료 시작\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('진료 시작 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doCareDone = async () => {\n axios.put('/v2/service/caredone/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"진료 종료\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('진료 종료 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doBackStart = async () => {\n axios\n .put('/v2/service/goback/mate/call', { reserveId: _id, callId })\n .then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"자택 출발\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('자택 출발 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n })\n .catch(err => {\n console.log(err);\n });\n };\n\n const doComplete = async () => {\n axios.put('/v2/service/complete/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"서비스 종료\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('서비스 종료 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n return {\n doReceipt,\n doStart,\n doArrive,\n doCare,\n doCareDone,\n doBackStart,\n doComplete,\n };\n };\n\n assistService = () => {\n const { id } = localStorage.getItem('id');\n const { rowDetail } = this.state;\n const { _id, callId } = rowDetail;\n\n const doReceipt = async () => {\n axios.put('/v2/service/receipt/normal/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"접선\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('접선 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doCare = async () => {\n axios.put('/v2/service/care/normal/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"진료 시작\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('진료 시작 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doCareDone = async () => {\n axios.put('/v2/service/caredone/normal/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"진료 종료\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('진료 종료 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n const doComplete = async () => {\n axios.put('/v2/service/complete/normal/mate/call', { reserveId: _id, callId }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'check parameters') return message.warning('죄송합니다. 요청에 실패하였습니다.');\n if (data === 'not yet') return message.warning('진료 예약일 전에는 예약을 진행할 수 없습니다.');\n if (data === 'invalid call') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n if (data === 'already done') return message.warning('이미 \"서비스 종료\" 처리 하였습니다.');\n if (data === 'success') {\n message.success('서비스 종료 처리 완료');\n this.setState({ onRowModal: false });\n this.fetchList();\n }\n });\n };\n\n return { doReceipt, doCare, doCareDone, doComplete };\n };\n\n onAddReport = () => {\n const { report } = this.state;\n const { description, care, doctorComment } = report;\n\n if (!description) message.warning('서비스 진행 중 특이사항을 작성해주세요.');\n if (!care) message.warning('진료 및 치료 내용을 작성해주세요.');\n if (!doctorComment) message.warning('의료 기관 및 의사 평가을 작성해주세요.');\n\n axios\n .post('/v2/review/add/report', { ...report, mateId: localStorage.getItem('id') })\n .then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n if (data === 'check parameters') return message.warning('입력하지 않은 내용이 있는지 확인해주세요.');\n if (data === 'already done') return message.warning('이미 리포트 등록을 완료하였습니다. 새로고침하여 확인해주세요.');\n if (data === 'invalid call') return message.warning('유효하지 않은 수행이력입니다. 새로고침 후 다시 시도해주세요.');\n if (data === 'unmatched mate') return message.warning('잘못된 시도입니다. 다른 메이트에게 배정된 예약입니다.');\n\n message.success('사후리포트 등록 완료');\n this.setState({ report: null, handleReportModal: false });\n this.fetchList();\n })\n .catch(error => {\n return message.error('요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n });\n };\n\n inputHandler = ({ type, value }) => {\n this.setState(prevState => ({\n report: {\n ...prevState['report'],\n [type]: value,\n },\n }));\n };\n\n openReportForm = () => {\n const { rowDetail } = this.state;\n\n this.setState({\n onRowModal: false,\n rowDetail: null,\n handleReportModal: true,\n report: {\n description: '',\n care: '',\n medicine: '',\n nextSchedule: '',\n mateComment: '',\n doctorComment: '',\n callId: rowDetail.callId,\n },\n });\n };\n\n render() {\n const { auth } = this.props;\n const { active, reservedFilter, callList, keyword } = this.state;\n\n const { password, newPassword, reNewPassword } = auth.passwordForm;\n const { list, userInfo } = this.props.app;\n\n const filteredList = keyword\n ? callList.filter(reserve => {\n return (\n (reserve && reserve.reserveCode && reserve.reserveCode.toLowerCase().includes(keyword.toLowerCase())) ||\n (reserve && reserve.patient && reserve.patient.toLowerCase().includes(keyword.toLowerCase()))\n );\n })\n : callList;\n\n return (\n
\n
\n
\n
\n
\n
{auth.photo ? user-profile : no image}
\n

\n {auth.name}님,\n
\n 안녕하세요\n

\n
\n
\n
\n

\n 수행 통계{' '}\n {/* \n (메이트 교육 자료 바로가기)\n */}\n

\n
\n
\n
\n
\n small-icon\n 병원 동행 Pro\n
\n
\n

\n {callList && callList.length > 0\n ? callList.filter(m => m.service === UNEMER && m.call.status === '서비스 종료').length\n : '0'}\n 회 수행\n

\n
\n
\n\n
\n
\n small-icon\n 병원 동행 Basic\n
\n
\n

\n {callList && callList.length > 0\n ? callList.filter(m => m.service !== UNEMER && m.call.status === '서비스 종료').length\n : '0'}\n 회 수행\n

\n
\n
\n
\n
\n
\n\n
\n
\n {\n this.tabHandler('list');\n }}\n className={`name ${active === 'list' ? 'active' : ''}`}\n >\n 예약 및 접수내역\n \n \n
\n\n
\n {\n this.tabHandler('info');\n }}\n className={`name ${active === 'info' ? 'active' : ''}`}\n >\n 개인정보 관리\n \n \n
\n\n
\n {\n this.tabHandler('guide');\n }}\n className={`name ${active === 'guide' ? 'active' : ''}`}\n >\n 메이트 온라인 학습\n \n \n
\n
\n
\n
\n\n
\n
\n {active === 'list' && (\n <>\n
\n {\n this.setState({ reservedFilter: 'none' });\n }}\n />\n {\n this.setState({ reservedFilter: 'reserved' });\n }}\n />\n\n {\n this.setState({ reservedFilter: 'matched' });\n }}\n />\n {\n this.setState({ reservedFilter: 'complete' });\n }}\n />\n
\n\n {\n this.setState({ keyword: value });\n }}\n />\n\n p.call && p.call.status === '예약접수')\n : reservedFilter === 'matched'\n ? filteredList.filter(\n p =>\n p.call &&\n (p.call.status === '예약완료' ||\n p.call.status === '접선' ||\n p.call.status === '병원 출발' ||\n p.call.status === '병원 도착' ||\n p.call.status === '진료 시작' ||\n p.call.status === '진료 종료' ||\n p.call.status === '자택 출발'),\n )\n : reservedFilter === 'complete'\n ? filteredList.filter(p => p.call && p.call.status === '서비스 종료')\n : []\n }\n onRow={info => {\n this.setState({ rowDetail: info, onRowModal: true });\n }}\n />\n \n )}\n\n {active === 'info' && (\n <>\n
\n
\n
\n

프로필 수정

\n
\n
\n 프로필 사진\n
\n {\n this.props.onEdit({ type: 'newPhoto', value: ev.target.files[0] });\n }}\n />\n {\n e.preventDefault();\n document.getElementById('mate-profile').click();\n }}\n >\n user-profile\n \n
\n
\n\n
\n 이름\n {\n this.props.onEdit({ type: 'name', value: ev.target.value });\n }}\n />\n
\n\n
\n 연락처\n {\n this.props.onEdit({ type: 'contact', value: ev.target.value });\n }}\n />\n
\n\n
\n \n 성별 (변경은 1:1 문의로 인증 후 가능)\n \n \n
\n\n
\n \n
\n
\n
\n
\n

비밀번호 변경

\n
\n\n
\n 현재 비밀번호\n
\n {\n this.props.editPassword({ type: 'password', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n 새 비밀번호\n
\n {\n this.props.editPassword({ type: 'newPassword', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n 새 비밀번호 확인\n
\n {\n this.props.editPassword({ type: 'reNewPassword', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n \n
\n
\n
\n
\n

기타

\n
\n\n
\n
\n {\n this.props.history.push('/policy/privacy');\n }}\n >\n 개인정보 처리방침 {'>'}\n

\n {\n this.props.history.push('/policy/terms');\n }}\n >\n 서비스 이용약관 {'>'}\n

\n
\n
\n\n
\n {\n this.props.history.push('/user/logout');\n }}\n >\n 로그아웃\n \n
\n\n
\n {\n this.setState({ modal: true, temp: { password: '' } });\n }}\n style={{ color: '#a7a7a7', height: '30px' }}\n >\n 회원탈퇴\n \n
\n
\n
\n
\n \n )}\n\n {active === 'guide' && (\n <>\n {userInfo.doProducts.includes('ITEM_mIagil546753836') ? (\n \n \n \n ) : null}\n \n \n \n \n {\n window.open('https://www.notion.so/FAQ-cfe01db37c67472086b414a044ed6370', '_blank');\n }}\n >\n 메이트 FAQ 바로가기\n \n \n\n \n *해당 페이지에서 제공되는 모든 교육 자료를 학습하고 숙지한 뒤 서비스 수행이 가능합니다. 서비스 매뉴얼 및 플랫폼 이용 방법\n 미숙지로 인해 발생하는 피해에 대한\n
\n 모든 책임은 메이트 본인에게 있습니다*\n
\n \n )}\n
\n
\n\n {this.state.modal && (\n {\n this.setState({ modal: false, temp: null });\n }}\n >\n {\n const value = ev.target.value;\n this.setState(prevState => ({ temp: { password: value } }));\n }}\n />\n \n
\n {\n this.setState({ modal: false, temp: null });\n }}\n >\n 취소\n \n \n
\n \n )}\n\n {this.state.noReportModal && (\n {\n this.setState({ noReportModal: false, reservedFilter: 'complete' });\n }}\n />\n )}\n\n {this.state.onRowModal ? (\n {\n this.setState({ onRowModal: false, rowDetail: null });\n }}\n info={this.state.rowDetail}\n onNext={this.onNextProcess}\n />\n ) : null}\n\n {this.state.handleReportModal ? (\n {\n this.setState({ handleReportModal: false, report: null });\n }}\n onSave={this.onAddReport}\n inputHandler={this.inputHandler}\n />\n ) : null}\n
\n );\n }\n}\nexport default Mate;\n\nconst GuideBlock = ({ title, content, link }) => (\n \n {\n window.open(link, '_blank');\n }}\n >\n {title} 링크\n \n \n {content}\n \n \n);\n\nconst GuideBlock2 = ({ title, content, link, history }) => (\n \n {\n window.open(link, '_blank');\n }}\n >\n {title} 링크\n \n \n {content}\n \n \n);\n\nconst Filter = ({ filter, value, onClick, name }) => {\n return (\n \n {name}\n \n );\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\nimport StyledMateContainer from './mate.styled';\nimport Mate from './mate';\nimport { MATE } from '../../../../Lib/variables';\n\nimport {\n acceptCall,\n cancelCall,\n getUserInfo,\n editUserForm,\n modifyUserInfo,\n completeCall,\n // getMateReserveList,\n // getContractList,\n} from '../../../../Reducer/Modules/app';\nimport { editAuth, editPasswordForm, modifyPassword, withdrawlUser } from '../../../../Reducer/Modules/auth';\n\nclass MatePage extends React.PureComponent {\n componentDidMount = () => {\n const mateId = localStorage.getItem('id');\n const userType = localStorage.getItem('userType');\n\n if (mateId) {\n if (userType !== MATE) {\n window.location.href = '/';\n } else {\n this.props.getUserInfo({ id: mateId, userType });\n }\n } else {\n this.props.history.push('/user/login');\n }\n };\n\n render() {\n if (this.props.auth.userType !== MATE) {\n return
;\n }\n\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\nconst mapDispatchToProps = dispatch => ({\n getUserInfo: ({ id, userType }) => dispatch(getUserInfo({ id, userType })),\n onEdit: ({ type, value }) => dispatch(editUserForm({ type, value })),\n modify: ({ id, userType, info }) => dispatch(modifyUserInfo({ id, userType, info })),\n modifyPassword: ({ id, userType, password, newPassword }) => dispatch(modifyPassword({ id, userType, password, newPassword })),\n editAuth: ({ type, value }) => dispatch(editAuth({ type, value })),\n editPassword: ({ type, value }) => dispatch(editPasswordForm({ type, value })),\n\n withdrawlUser: ({ id, userType, password }) => dispatch(withdrawlUser({ id, userType, password })),\n cancelCall: ({ callId }) => dispatch(cancelCall({ callId })),\n completeCall: ({ callId }) => dispatch(completeCall({ callId })),\n acceptCall: ({ callId, mateId }) => dispatch(acceptCall({ callId, mateId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MatePage);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\n\nconst StyledNormalContainer = styled.div`\n margin-top: 55px;\n\n .auth-container {\n // display: flex;\n // flex-direction: column;\n min-height: 100vh;\n background-color: rgba(0, 0, 0, 0.02);\n }\n\n .navigation-container {\n flex-shrink: 0;\n border-bottom: 1px solid #e6e6e6;\n background-color: white;\n\n .inner-container {\n padding: 0px;\n }\n\n .user-info-container {\n display: flex;\n align-items: center;\n padding: 82px 30px;\n\n .default-info {\n flex: 1;\n display: flex;\n align-items: center;\n\n div {\n width: 110px;\n height: 110px;\n border-radius: 55px;\n margin-right: 20px;\n background-color: #e6e6e6;\n position: relative;\n overflow: hidden;\n\n img {\n height: 110px;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n\n span {\n display: inline-block;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n line-height: 110px;\n text-align: center;\n color: #ada5a5;\n }\n }\n\n p {\n flex: 1;\n font-size: ${sizeHandler(38)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n\n .reserve-info {\n flex: 1;\n\n .title {\n margin-bottom: 12px;\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: rgba(145, 145, 145, 0.8);\n }\n }\n\n .value-wrapper {\n display: flex;\n align-items; center;\n\n .value-block {\n flex: 1;\n\n .title {\n img {\n height: 14px;\n margin-right: 4px;\n }\n \n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n \n .value {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n color: #3bc1ff;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n }\n }\n }\n }\n\n .navigator {\n display: flex;\n align-items: center;\n padding: 0px 30px;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n .name {\n font-size: ${sizeHandler(14)};\n text-align: center;\n cursor: pointer;\n\n &.active { \n font-weight: bold;\n color: #3bc1ff;\n }\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n .user-info-container {\n flex-direction: column;\n align-items: flex-start;\n\n .reserve-info {\n margin-top: 40px;\n }\n\n .value-wrapper {\n flex-direction: column;\n\n .value-block:last-child {\n margin-top: 20px;\n }\n }\n }\n }\n }\n\n .usage-info-container {\n flex: 1;\n // background-color: rgba(0, 0, 0, 0.02);\n\n .inner-container {\n height: 100%;\n padding: 56px 30px;\n\n @media (max-width: 768px) {\n padding: 40px 16px;\n }\n }\n\n .filter-wrapper {\n margin-bottom: 20px;\n\n .filter {\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: rgba(0, 0, 0, 0.4);\n margin-right: 32px;\n cursor: pointer;\n }\n\n .filter.active {\n color: ${mainColor};\n }\n }\n }\n\n .user-info-wrapper {\n .wrapper {\n padding: 36px;\n background-color: white;\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n float: left;\n width: calc(50% - 10px);\n \n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n .wrapper.etc-info {\n float: right;\n }\n \n .title-wrapper {\n font-size: ${sizeHandler(20)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 28px;\n }\n\n .service {\n margin-bottom: 20px;\n\n p.info {\n font-size: ${sizeHandler(12)};\n font-weight: normal;\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n }\n\n button {\n width: 100%;\n height: 48px;\n border-radius: 2px;\n color: white;\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n \n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n\n .flex-wrapper {\n display: flex;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n cursor: pointer;\n }\n }\n }\n\n .default-info {\n margin-right: 20px;\n }\n\n .card-info {\n margin-right: 20px;\n margin-top: 20px;\n }\n\n .privacy-info {\n margin-top: -352px;\n @media (max-width: 768px) {\n margin-top: 20px;\n }\n }\n\n .etc-info {\n margin-top: -290px;\n @media (max-width: 768px) {\n margin-top: 20px;\n }\n }\n }\n\n .user-profile-wrapper {\n .wrapper {\n padding: 36px;\n background-color: white;\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n float: left;\n width: calc(100% - 10px);\n \n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n .wrapper.etc-info {\n float: right;\n }\n \n .title-wrapper {\n font-size: ${sizeHandler(20)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 28px;\n }\n\n .service {\n margin-bottom: 20px;\n\n p.info {\n font-size: ${sizeHandler(12)};\n font-weight: normal;\n letter-spacing: -0.15px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n }\n\n button {\n width: 110px;\n height: 48px;\n border-radius: 2px;\n color: white;\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n \n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n\n .flex-wrapper {\n display: flex;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n cursor: pointer;\n }\n }\n }\n\n .default-info {\n margin-right: 20px;\n }\n\n .privacy-info {\n\n @media (max-width: 768px) {\n margin-top: 20px;\n }\n }\n\n .etc-info {\n margin-top: 20px;\n }\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n }\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n .ant-input-number-input {\n height: 100%;\n }\n\n input {\n height: 100%;\n }\n } \n`;\n\nexport const PointBoxRow = styled.div`\n display: flex;\n align-items: flex-start;\n margin-bottom: 20px;\n\n > div:last-child {\n margin-right: 0px;\n }\n\n @media (max-width: 480px) {\n margin-bottom: 0px;\n flex-direction: column;\n }\n`;\n\nexport const PointBox = styled.div`\n width: calc(50% - 10px);\n margin-right: 20px;\n\n padding: 32px;\n background-color: #ffffff;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 1px #f2f2f2;\n\n @media (max-width: 480px) {\n margin-right: 0px;\n margin-bottom: 10px;\n\n max-height: 320px;\n padding: 16px;\n\n width: 100%;\n }\n`;\n\nexport const PointBox2 = styled.div`\n width: 100%;\n margin-right: 20px;\n\n padding: 32px;\n background-color: #ffffff;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 1px #f2f2f2;\n\n @media (max-width: 480px) {\n margin-right: 0px;\n margin-bottom: 10px;\n\n max-height: 320px;\n padding: 16px;\n\n width: 100%;\n }\n`;\n\nexport const PointBox3 = styled.div`\n width: 100%;\n margin-right: 20px;\n\n padding: 32px;\n background-color: #ffffff;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: solid 1px #f2f2f2;\n\n @media (max-width: 480px) {\n margin-right: 0px;\n margin-bottom: 10px;\n\n max-height: 370px;\n padding: 16px;\n\n width: 100%;\n }\n`;\n\nexport const PointContent = styled.div`\n max-height: 400px;\n padding-right: 10px;\n overflow-y: scroll;\n\n @media (max-width: 480px) {\n max-height: 320px;\n }\n`;\n\nexport const PointBoxTitle = styled.h4`\n margin-top: 0px;\n margin-bottom: 10px;\n\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 480px) {\n font-size: 18px;\n }\n`;\n\nexport const PointTotal = styled.h5`\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: left;\n color: #3bc1ff;\n\n @media (max-width: 480px) {\n font-size: 26px;\n }\n`;\n\nexport const PointHistoryRow = styled.div`\n padding-top: 16px;\n padding-bottom: 16px;\n border-bottom: 1px solid #e6e6e6;\n`;\n\nexport const PointHistoryNameRow = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n margin-bottom: 4px;\n\n > .title {\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n\n > .value {\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: right;\n color: ${props => (props.add ? '#3bc1ff' : '#ff5500')};\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n`;\n\nexport const PointHistoryValueRow = styled(PointHistoryNameRow)`\n margin-bottom: 0px;\n\n > .title {\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.1px;\n text-align: left;\n color: #afb0b2;\n\n @media (max-width: 480px) {\n font-size: 10px;\n }\n }\n\n > .value {\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.15px;\n text-align: left;\n color: #afb0b2;\n\n @media (max-width: 480px) {\n font-size: 10px;\n }\n }\n`;\n\nexport const NoHistory = styled.div`\n padding: 12px;\n text-align: center;\n\n font-size: 20px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n`;\n\nexport default StyledNormalContainer;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input, message, notification } from 'antd';\nimport axios from '../../../Lib/axios';\n\nimport { sizeHandler, mainColor } from '../../../theme';\nimport { colorParserByStatus } from '../../../Lib/utils';\nimport { ASSIST, UNEMER, HAPPYCARE } from '../../../Lib/variables';\n\nimport moment from 'moment';\nexport const InputFilter = ({ keyword, keywordHandler }) => (\n \n {\n keywordHandler(ev.target.value);\n }}\n placeholder='예약번호, 담당자 성함 등을 검색해보세요.'\n />\n \n);\n\nconst FilterWrapper = styled.div`\n margin-bottom: 12px;\n`;\n\nexport const ReserveList = ({ list, onDetailModal, onMateModal, onReport, onCancel }) => {\n if (!list || list.length === 0) {\n return (\n \n \n 이용내역이 없습니다.\n \n \n );\n }\n\n return (\n \n {list.map((item, index) => {\n const serviceType =\n !item.productInfo || !item.productInfo.usePro || !item.productInfo.useBasic ? '' : item.service === 'unemergency' ? 'Pro' : 'Basic';\n const serviceName = (item.productInfo && item.productInfo.name && item.service && item.productInfo.name + serviceType) || '-';\n\n return (\n {\n onReport(item);\n }}\n onDetail={() => {\n onDetailModal(item._id);\n }}\n onMate={() => {\n if (item.call.status === '접수취소') {\n return message.info('접수취소된 서비스입니다.');\n }\n\n if (!item.call.mate || !item.call.mate) {\n return message.info('아직 담당자가 배정되지 않았습니다.');\n }\n\n onMateModal({\n ...item.call.mate,\n service: item.service,\n status: item.call.status,\n callId: item.call._id,\n reserveId: item._id,\n mateId: item.call.mateId,\n });\n }}\n onCancel={() => {\n const confirmCancel = window.confirm('예약을 취소하시겠습니까?');\n if (confirmCancel) {\n axios\n .put('/v2/service/cancel/reserve/by/user', {\n reserveId: item._id,\n callId: item.callId,\n })\n .then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('요청 실패');\n else if (data === 'wrong request') return message.warning('잘못된 요청입니다.');\n else if (data === 'already cancel') return message.warning('접수 취소된 요청입니다.');\n else if (data === 'already done') return message.warning('서비스 종료된 요청입니다.');\n else if (data === 'success') {\n notification.success({\n message: '예약 취소',\n description: '예약 취소가 완료 되었습니다.',\n });\n // setTimeout(() => {\n // window.location.reload();\n // }, 3000);\n return null;\n }\n });\n }\n }}\n />\n );\n })}\n \n );\n};\n\nconst ReserveItem = ({ reserveCode, service, serviceType, reserveDate, destination, starting, status, onReport, onDetail, onMate, onCancel }) => (\n \n \n \n 서비스 명\n {service}\n \n \n\n \n \n 예약 번호\n {reserveCode}\n \n \n 진행 상황\n {status}\n \n \n 예약 날짜\n {reserveDate}\n \n {serviceType === 'unemergency' && (\n \n 자택 주소\n {starting}\n \n )}\n \n 병원 위치\n {destination}\n \n \n \n {\n if (status === '서비스 종료') {\n onReport();\n } else {\n onMate();\n }\n }}\n >\n {status === '서비스 종료' ? '서비스 리포트' : '담당자 확인'}\n \n \n \n {status === '접수취소' ? null : (\n {\n if (status === '서비스 종료') {\n return null;\n } else {\n onCancel();\n }\n }}\n >\n 예약 취소\n \n )}\n \n \n {\n onDetail();\n }}\n >\n 예약 확인\n \n \n \n);\nconst TitleSection = styled.div``;\n\nconst EmptyList = styled.p`\n font-size: 20px;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 16px;\n position: relative;\n text-align: center;\n`;\n\nconst FullContainer = styled.div`\n width: 100%;\n min-height: 300px;\n`;\n\nconst Inner = styled.div`\n max-width: 1024px;\n margin: 0 auto;\n padding-top: 40px;\n\n @media (max-width: 1080px) {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n @media (max-width: 768px) {\n padding-top: 40px;\n }\n`;\nconst ContentSection = styled.div`\n flex: 1;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n\n overflow-y: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n`;\n\nconst ListConatiner = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-wrap: wrap;\n\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n > div:nth-child(3n) {\n margin-right: 16px;\n }\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n\n @media (max-width: 480px) {\n > div:nth-child(3n) {\n margin-right: 0px;\n }\n\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n width: 340px;\n height: 430px;\n overflow: scroll;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera*/\n }\n\n padding: 20px;\n margin-bottom: 16px;\n margin-right: 16px;\n\n border-radius: 4px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n\n @media (max-width: 768px) {\n margin-bottom: 16px;\n }\n\n @media (max-width: 480px) {\n width: 100%;\n max-width: initial;\n margin-right: 0px;\n }\n`;\n\nconst ItemTitle = styled.p`\n color: #a7a7a7;\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(11)};\n }\n`;\nconst ItemContents = styled.p`\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n margin: 0px;\n padding: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n margin-bottom: 4px;\n }\n`;\n\nconst ItemColumn = styled.div`\n width: 100%;\n margin-bottom: 6px;\n\n @media (max-width: 768px) {\n display: ${props => (props.hiddenMobile ? 'none' : 'block')};\n width: 100%;\n }\n`;\n\nconst DetailButton = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n height: 44px;\n\n border-radius: 4px;\n border: 1px solid ${mainColor};\n cursor: pointer;\n transition: all 0.3s;\n text-align: center;\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: ${mainColor};\n text-align: center;\n\n @media (max-width: 430px) {\n font-size: ${sizeHandler(12)};\n }\n }\n\n &:hover {\n background-color: ${mainColor};\n span {\n color: white;\n }\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: 34px;\n font-size: ${sizeHandler(12)};\n }\n`;\n\nconst ReserveButton = styled(DetailButton)`\n border: 1px solid #e9e9e9;\n color: #565656;\n\n > span {\n color: #565656;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { sizeHandler, mainColor } from '../../../theme';\n\nexport const UserStatistics = ({ auth, pro, basic }) => (\n \n
\n

\n {auth.name},\n
\n 안녕하세요\n

\n
\n\n
\n
\n

이용 통계

\n
\n
\n
\n
\n small-icon\n 병원 동행 Pro\n
\n
\n

{pro}회 이용

\n
\n
\n\n
\n
\n small-icon\n 병원 동행 Basic\n
\n
\n

{basic}회 이용

\n
\n
\n
\n
\n
\n);\n\nconst UserContainer = styled.div`\n display: flex;\n align-items: center;\n padding: 82px 30px;\n\n .default-info {\n flex: 1;\n display: flex;\n align-items: center;\n\n div {\n width: 110px;\n height: 110px;\n border-radius: 55px;\n margin-right: 20px;\n background-color: #e6e6e6;\n position: relative;\n overflow: hidden;\n\n img {\n height: 110px;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n }\n\n span {\n display: inline-block;\n position: absolute;\n margin: auto;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n line-height: 110px;\n text-align: center;\n color: #ada5a5;\n }\n }\n\n p {\n flex: 1;\n font-size: ${sizeHandler(38)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n\n .reserve-info {\n flex: 1;\n\n .title {\n margin-bottom: 12px;\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: rgba(145, 145, 145, 0.8);\n }\n }\n\n .value-wrapper {\n display: flex;\n align-items; center;\n\n .value-block {\n flex: 1;\n\n .title {\n img {\n height: 14px;\n margin-right: 4px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n\n .value {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n color: #3bc1ff;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: flex-start;\n\n .reserve-info {\n margin-top: 40px;\n }\n\n .value-wrapper {\n flex-direction: column;\n\n .value-block:last-child {\n margin-top: 20px;\n }\n }\n }\n \n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { sizeHandler, mainColor } from '../../../theme';\n\nexport const UserNavigation = ({ active, tabHandler, onPatientModal }) => (\n \n
\n {\n tabHandler('list');\n }}\n className={`name ${active === 'list' ? 'active' : ''}`}\n >\n 예약내역\n \n \n
\n\n
\n {\n tabHandler('info');\n }}\n className={`name ${active === 'info' ? 'active' : ''}`}\n >\n 개인정보 관리\n \n \n
\n\n
\n {\n tabHandler('point');\n }}\n className={`name ${active === 'point' ? 'active' : ''}`}\n >\n 내 포인트\n \n \n
\n\n
\n {\n // onPatientModal();\n tabHandler('profile');\n }}\n className={`name ${active === 'profile' ? 'active' : ''}`}\n >\n 환자 프로필 관리\n \n \n
\n
\n);\n\nconst NaviWrapper = styled.div`\n display: flex;\n align-items: center;\n padding: 0px 30px;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n .name {\n font-size: ${sizeHandler(14)};\n text-align: center;\n cursor: pointer;\n\n &.active {\n font-weight: bold;\n color: #3bc1ff;\n }\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n }\n`;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\n\nconst ProfileStyledContainer = styled.div`\n\n @media (max-width: 480px) {\n min-height: initial;\n height: 100%;\n padding-bottom: 0px;\n padding-top: 5px;\n }\n\n .inner-container {\n padding-bottom: 0px;\n padding-top: 0px;\n\n @media (max-width: 480px) {\n padding: 0px;\n }\n\n .profile-form {\n\n .title-wrapper {\n display: flex;\n justify-content: flex-start;\n margin-bottom: 16px;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n line-height: 48px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: ${mainColor};\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n line-height: 20px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n }\n\n input {\n height: 44px;\n border: solid 1px #e6e6e6;\n padding: 10px;\n\n &.ant-input {\n font-size: 16px;\n line-height: 28px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.7);\n\n &::placeholder {\n font-size: 14px;\n }\n }\n }\n\n .type-button-wrapper {\n width: 100%;\n height: 48px;\n\n background-color: white;\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n\n > .type-button {\n width: 50%;\n height: 100%;\n line-height: 48px;\n\n text-align: center;\n cursor: pointer;\n\n font-size: 16px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n }\n\n > .type-button.active {\n background: rgba(0, 0, 0, 0.7);\n border-radius: 4px;\n color: #f9f9f9;\n }\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n margin-bottom: 8px;\n .text {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n line-height: 21px;\n }\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.3px;\n text-align: center;\n color: ${mainColor};\n\n margin-left: 8px;\n }\n }\n }\n\n .form-user-type {\n height: 36px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 36px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n text-align: center;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n }\n }\n }\n }\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n`;\n\nexport default ProfileStyledContainer;","import styled from 'styled-components';\n\nconst StyledContainer = styled.div``;\n\nexport default StyledContainer;\n\nexport const Container = styled.div`\n padding-top: 55px;\n`;\n\nexport const GuideNavContainer = styled.div`\n width: 100%;\n background-color: #ffffff;\n\n border-bottom: 4px solid #f2f2f2;\n`;\n\nexport const InnerContainer = styled.div`\n width: 100%;\n\n max-width: 1120px;\n margin: 0 auto;\n\n // @media (max-width: 1120px) {\n // padding-left: 32px;\n // padding-right: 32px;\n // }\n\n @media (max-width: 768px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nexport const GuideNavWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding-top: 16px;\n padding-bottom: 16px;\n\n @media (max-width: 768px) {\n overflow-x: scroll;\n }\n`;\n\nexport const NavTab = styled.div`\n > a {\n cursor: pointer;\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: left;\n\n white-space: nowrap;\n\n color: ${props => (props.active ? '#3BC1FF' : 'rgba(0,0,0,0.6)')};\n\n display: inline-block;\n }\n\n @media (max-width: 768px) {\n margin-right: 40px;\n\n > a {\n font-size: 16px;\n }\n }\n`;\n\nexport const GuideConceptContainer = styled.div`\n margin-top: 102px;\n`;\n\nexport const GuideConceptTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 50px;\n`;\n\nexport const GuideConceptImageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n\n margin-bottom: 40px;\n`;\n\nexport const GuideConceptImage = styled.img`\n height: 200px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const GuideConceptImageMobile = styled.img`\n display: none;\n\n height: 300px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const GuideConceptTextWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n margin-bottom: 122px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideConceptTextBlock = styled.div`\n &:first-child {\n margin-right: 20px;\n\n @media (max-width: 768px) {\n margin-right: 0px;\n\n margin-bottom: 16px;\n }\n }\n\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.67;\n letter-spacing: -0.2px;\n text-align: left;\n word-break: keep-all;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: left;\n }\n\n > span {\n font-weight: bold;\n }\n`;\n\nexport const MobileBr = styled.br`\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n\n @media (max-width: 320px) {\n display: none;\n }\n`;\n\nexport const DesktopBr = styled.br`\n display: block;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const MeritContainer = styled.div`\n background-color: #ffffff;\n\n padding-top: 100px;\n padding-bottom: 80px;\n`;\n\nexport const MeritHeaderWrapper = styled.div`\n width: 100%;\n padding-bottom: 10px;\n border-bottom: 2px solid #f2f2f2;\n\n div.wrap {\n display: flex;\n align-items: flex-end;\n justify-content: flex-start;\n }\n\n img {\n width: 72px;\n height: 72px;\n object-fit: contain;\n\n margin-right: 10px;\n }\n\n h3 {\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 0px;\n }\n`;\n\nexport const MeritCardList = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n padding-top: 64px;\n`;\n\nexport const MeritCardWrapper = styled.div`\n height: 260px;\n width: 33.333%;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n margin-bottom: 24px;\n }\n`;\n\nexport const MeritCardNumber = styled.p`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: normal;\n text-align: left;\n color: #afb0b2;\n margin-bottom: 16px;\n`;\n\nexport const MeritCardTitleRow = styled.div`\n display: flex;\n align-items: center;\n\n > img {\n width: 20px;\n height: 20px;\n object-fit: contain;\n margin-right: 10px;\n }\n\n > span {\n font-size: 20px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n`;\n\nexport const MeritCardDesc = styled.div`\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n font-size: 15px;\n }\n`;\n\nexport const GuideDetailContainer = styled.div`\n background-color: #f9f9f9;\n\n padding-top: 56px;\n padding-bottom: 100px;\n`;\n\nexport const GuideDetailServiceCardWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideDetailServiceCard = styled.div`\n width: 360px;\n padding: 34px 32px;\n\n background: #ffffff;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n @media (max-width: 768px) {\n margin-bottom: 24px;\n width: 100%;\n\n padding: 34px 16px;\n }\n`;\n\nexport const GuideCardImage = styled.img`\n width: 124px;\n height: 124px;\n border-radius: 50%;\n\n margin-bottom: 40px;\n`;\n\nexport const GuideCardSpecTitle = styled.p`\n width: 100%;\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 24px;\n`;\n\nexport const GuideCardSpecRow = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-start;\n\n margin-bottom: 24px;\n\n > span {\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n // line-height: 1.43;\n letter-spacing: normal;\n text-align: left;\n color: #3bc1ff;\n margin-right: 10px;\n }\n\n > p {\n width: 100%;\n flex: 1;\n font-size: 17px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n // line-height: 1.65;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n`;\n\nexport const GuideCardName = styled.p`\n width: 100%;\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 2px;\n`;\n\nexport const GuideCardType = styled.h3`\n width: 100%;\n font-size: 26px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: -0.5px;\n text-align: left;\n color: #3bc1ff;\n margin-bottom: 24px;\n`;\n\nexport const GuideCardDescription = styled.p`\n width: 100%;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n margin-bottom: 60px;\n`;\n\nexport const GuideDetailSubFlexWrapper = styled.div`\n display: flex;\n justify-content: content;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideDetailButtonWrapper = styled(GuideDetailSubFlexWrapper)`\n border-radius: 4px;\n overflow: hidden;\n\n > span.button {\n cursor: pointer;\n display: inline-block;\n\n flex: 1;\n height: 44px;\n line-height: 44px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n text-align: center;\n color: #ffffff;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n > span.gray {\n background-color: #606060;\n\n @media (max-width: 768px) {\n margin-bottom: 8px;\n }\n }\n\n > span.blue {\n background-color: #3bc1ff;\n }\n`;\n\nexport const GuideDetailSubFlexbox = styled.div`\n flex: 1;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n > p {\n margin-bottom: 20px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 18px;\n\n text-align: left;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const GuideUsingContainer = styled.div`\n padding-top: 62px;\n padding-bottom: 78px;\n background-color: #f9f9f9;\n`;\n\nexport const GuideUsingSubFlexWrapper = styled(GuideDetailSubFlexWrapper)`\n align-items: center;\n justify-content: center;\n\n @media (max-width: 768px) {\n align-items: flex-start;\n padding-left: 40px;\n }\n`;\n\nexport const GuideUsingFlexbox = styled(GuideDetailSubFlexbox)`\n align-items: center;\n flex: initial;\n min-width: 320px;\n\n > p.index {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 10px;\n line-height: 14px;\n\n letter-spacing: -0.333333px;\n color: rgba(0, 0, 0, 0.2);\n\n margin-bottom: 16px;\n }\n\n > p {\n width: auto;\n text-align: center;\n }\n\n > p.title {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 16px;\n line-height: 22px;\n\n text-align: center;\n letter-spacing: -0.6px;\n }\n\n > div {\n display: flex;\n justify-content: center;\n\n margin-bottom: 16px;\n\n img {\n height: 90px;\n object-fit: contain;\n }\n }\n\n margin-bottom: 44px;\n`;\n\nexport const GuideUsageFlexbox = styled.div`\n flex: 1;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n margin-bottom: 68px;\n\n @media (max-width: 768px) {\n margin-bottom: 32px;\n // width: 230px;\n align-items: ;\n }\n\n div {\n // width: 120px;\n\n img {\n width: 64px;\n height: 64px;\n margin-right: 34px;\n object-fit: contain;\n }\n\n // @media (max-width: 768px) {\n // width: 70px;\n\n // img {\n // height: 32px;\n // }\n // }\n }\n\n span {\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n // @media (max-width: 768px) {\n // font-size: 13px;\n // line-height: 19px;\n // }\n }\n`;\n\nexport const WithmateContainer = styled.div`\n padding-top: 56px;\n // padding-bottom: 120px;\n`;\n\nexport const FlexDivWrapper = styled.div`\n display: flex;\n width: 100%;\n\n ${props => props.top && `margin-bottom: 72px;`}\n`;\n\nexport const HiddenType = styled.div`\n @media (max-width: 768px) {\n ${props => props.mHidden && `display: none;`}\n }\n`;\n\nexport const BigSideBox = styled(HiddenType)`\n width: 58%;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const SmallSideBox = styled(HiddenType)`\n width: 42%;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const WithmateBg = styled.div`\n width: 100%;\n height: 100%;\n\n background-image: url(${props => props.bg});\n background-size: 80% auto;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const WithmateTitle = styled.div`\n > img {\n width: 72.5px;\n height: 48px;\n object-fit: contain;\n margin-right: 8px;\n }\n\n > span {\n font-size: 28px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.11;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n\n display: flex;\n align-items: flex-end;\n margin-bottom: 24px;\n`;\n","import React from \"react\";\nimport Modal from \"react-modal\";\nimport styled from 'styled-components';\nimport { Button, Checkbox, notification, Select, message, Radio } from 'antd';\n\nimport { DivisionLine, WithmateSelect, WithmateInput, WithamteInputWithButton, WithmateLabel, WithmateTextarea } from \"../../../../Components/Common/input\";\nimport { HalfWidthButton } from '../../../../Components/Common/button';\nimport ProfileStyledContainer from \"./profile.styled\";\nimport { MobileBr } from \"../../../Guide/guide.styled\";\nimport { addPatient } from \"../../../../Lib/Api/auth\";\n\nconst customStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(15, 15, 15, 0.79)\",\n },\n content: {\n position: \"absolute\",\n top: \"30px\",\n height: \"90%\",\n border: \"1px solid #ccc\",\n background: \"#ffffff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\",\n },\n};\n\nclass NewProfileComponent extends React.PureComponent {\n state = {\n modalInfo: '',\n modalTitle: '',\n };\n\n onEdit = ({ type, value }) => {\n this.props.editAddPatientForm({ type, value });\n };\n\n onStarting = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { sido, sigungu, bname, roadAddress, buildingName } = data;\n this.onEdit({ type: 'shortStarting', value: `${sido} ${sigungu} ${bname}` });\n this.onEdit({ type: 'starting', value: `${roadAddress} (${ buildingName })` });\n },\n }).open();\n };\n\n onProfile = () => {\n const {\n name,\n relate,\n sex,\n age,\n contact,\n starting,\n environment,\n caution\n } = this.props.auth.addPatientForm;\n\n if (!name) {\n return message.warning('성함을 입력해주세요.');\n }\n\n if (!relate) {\n return message.warning('관계를 선택해주세요.');\n }\n\n if (!sex) {\n return message.warning('성별을 선택해주세요.');\n }\n\n if (!age || age.length > 3) {\n return message.warning('나이를 입력해주세요.');\n }\n\n if (!contact) {\n return message.warning('연락처를 입력해주세요.');\n }\n\n if (!starting) {\n return message.warning('주소(자택, 출발지)를 입력해주세요.');\n }\n\n if (!environment) {\n return message.warning('거주환경을 입력해주세요.');\n }\n\n if (!caution) {\n return message.warning('메이트와 동행할 때 주의해야할 점을 선택해주세요.');\n }\n\n this.props\n .addPatient({\n id: this.props.auth.id, name, relate, sex, age, contact, starting, environment, caution\n })\n .then(resolve => {\n // console.log(resolve)\n if (resolve.message === 'success') {\n this.props.onClose();\n this.onEdit({ type: 'clear', value: '' });\n notification.open({\n message: '환자 프로필 등록이 완료되었습니다.',\n description: '등록된 환자 프로필을 서비스 예약시 편리하게 이용하실 수 있습니다.',\n type: 'success'\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n }\n\n formCompleteStatus = () => {\n let valid = true;\n if (!this.props.auth || !this.props.auth.addPatientForm) return false;\n\n const { name, relate, sex, age, contact, starting, environment, caution } = this.props.auth.addPatientForm;\n if (!name) valid = false;\n if (!relate) valid = false;\n if (!sex) valid = false;\n if (!age) valid = false;\n if (!contact) valid = false;\n if (!starting) valid = false;\n if (!environment) valid = false;\n if (!caution) valid = false;\n\n return valid;\n };\n\n render() {\n const { addPatientForm } = this.props.auth;\n const status = this.formCompleteStatus();\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 환자 프로필 등록\n \n *위드메이트 서비스를 사용하실 프로필을 등록할 수 있습니다.\n \n \n\n
\n\n 환자 이름\n {\n this.onEdit({ type: 'name', value: ev.target.value.trim() });\n }}\n />\n\n \n\n 본인-{addPatientForm.name}님 간 관계\n {\n this.onEdit({ type: 'relate', value });\n }}\n >\n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n\n \n\n {addPatientForm.name}님 성별\n
\n {\n this.onEdit({ type: 'sex', value: '남자' });\n }}\n >\n 남자\n
\n {\n this.onEdit({ type: 'sex', value: '여자' });\n }}\n >\n 여자\n
\n
\n\n \n\n {addPatientForm.name}님 나이\n {\n this.onEdit({ type: 'age', value: ev.target.value.trim() });\n }}\n />\n\n \n\n {addPatientForm.name}님 연락처\n {\n this.onEdit({ type: 'contact', value: ev.target.value.trim() });\n }}\n />\n\n \n\n {addPatientForm.name}님의 주소(자택 혹은 출발지)를 입력해주세요.\n { this.onStarting() }}\n />\n \n\n {addPatientForm.name}님은 외출하실 때 '꼭' 계단을 이용하셔야 하나요?\n {\n this.onEdit({ type: 'environment', value: '네' });\n }}\n >\n 네\n \n {\n this.onEdit({ type: 'environment', value: '아니요, 엘레베이터가 있어요' })\n }}\n >\n 아니요, 엘레베이터가 있어요\n \n {\n this.onEdit({ type: 'environment', value: '1층이라 괜찮아요' })\n }}\n >\n 1층이라 괜찮아요\n \n \n\n 메이트가 {addPatientForm.name}님과 동행할 때 주의해야 할 점이 있을까요?\n {\n this.onEdit({ type: 'caution', value: ev.target.value });\n }}\n />\n {\n this.onEdit({ type: 'caution', value: '없어요' })\n }}\n >\n 없어요\n \n\n \n\n \n \n 닫기\n \n {\n this.onProfile()\n }}\n style={!status ? { backgroundColor: '#E6E6E6', border: 0, cursor: 'not-allowed' } : {}}\n >\n 프로필 등록\n \n \n\n \n
\n
\n \n \n \n );\n }\n};\n\nexport default NewProfileComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;\n\nconst Agree = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n margin-bottom: 8px;\n\n span {\n font-size: 14px;\n line-height: 21px;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n span.point {\n color: #3bc1ff;\n }\n\n a.point {\n color: #3bc1ff;\n cursor: pointer;\n text-decoration: none;\n }\n\n .ant-checkbox-wrapper {\n margin-bottom: 0px !important;\n }\n`;\n\nconst Alert = styled.p`\n margin-bottom: 0px;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 20px;\n letter-spacing: -0.15px;\n color: #ff5500;\n`;","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\n\nconst CardStyledContainer = styled.div`\n\n @media (max-width: 480px) {\n min-height: initial;\n height: 100%;\n padding-bottom: 0px;\n padding-top: 5px;\n }\n\n .inner-container {\n padding-bottom: 0px;\n padding-top: 0px;\n\n @media (max-width: 480px) {\n padding: 0px;\n }\n\n .profile-form {\n\n .title-wrapper {\n display: flex;\n justify-content: flex-start;\n margin-bottom: 16px;\n\n p {\n flex: 1;\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n line-height: 48px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: ${mainColor};\n }\n }\n\n .form {\n label {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.15px;\n line-height: 20px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n }\n\n input {\n height: 44px;\n border: solid 1px #e6e6e6;\n padding: 10px;\n\n &.ant-input {\n font-size: 16px;\n line-height: 28px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.7);\n\n &::placeholder {\n font-size: 14px;\n }\n }\n }\n\n .type-button-wrapper {\n width: 100%;\n height: 48px;\n\n background-color: white;\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n\n > .type-button {\n width: 50%;\n height: 100%;\n line-height: 48px;\n\n text-align: center;\n cursor: pointer;\n\n font-size: 16px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n }\n\n > .type-button.active {\n background: rgba(0, 0, 0, 0.7);\n border-radius: 4px;\n color: #f9f9f9;\n }\n }\n\n button {\n width: 100%;\n height: 46px;\n margin-top: 4px;\n margin-bottom: 16px;\n\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n }\n\n .link-wrapper {\n display: flex;\n justify-content: center;\n margin-bottom: 8px;\n .text {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n line-height: 21px;\n }\n\n .link {\n cursor: pointer;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.3px;\n text-align: center;\n color: ${mainColor};\n\n margin-left: 8px;\n }\n }\n }\n\n .form-user-type {\n height: 36px;\n margin-bottom: 20px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n display: flex;\n align-items: center;\n overflow: hidden;\n\n .type {\n flex: 1;\n height: 100%;\n line-height: 36px;\n background-color: #ffffff;\n cursor: pointer;\n\n &:first-child {\n border-right: 1px solid #e6e6e6;\n }\n\n p {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n text-align: center;\n color: #606060;\n }\n\n &.active {\n background-color: #606060;\n\n p {\n color: #ffffff;\n }\n }\n }\n }\n }\n }\n\n .ant-upload-drag-container {\n .title {\n margin-top: 12px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .reco {\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n text-align: center;\n color: #a7a7a7;\n }\n }\n`;\n\nexport default CardStyledContainer;","import React from 'react';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { notification, Select, message } from 'antd';\n\nimport { DivisionLine, WithmateSelect, WithmateInput, WithmateLabel } from '../../../../Components/Common/input';\nimport { HalfWidthButton } from '../../../../Components/Common/button';\nimport CardStyledContainer from './card.styled';\n\nconst customStyles = {\n overlay: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(15, 15, 15, 0.79)',\n },\n content: {\n position: 'absolute',\n top: '30px',\n width: '350px',\n height: '37%',\n border: '1px solid #ccc',\n background: '#ffffff',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n borderRadius: '4px',\n outline: 'none',\n padding: '20px',\n },\n};\n\nclass NewProfileComponent extends React.PureComponent {\n state = {\n modalInfo: '',\n modalTitle: '',\n };\n\n onEdit = ({ type, value }) => {\n this.props.editAddCardForm({ type, value });\n };\n\n onCard = () => {\n const { cardName, cardNum, year, month } = this.props.auth.addCardForm;\n\n if (!cardName) {\n return message.warning('카드명을 입력하세요');\n }\n\n if (!cardNum) {\n return message.warning('카드번호를 입력하세요');\n }\n\n if (!year) {\n return message.warning('유효 연도를 선택하세요');\n }\n\n if (!month) {\n return message.warning('유효 월을 선택하세요');\n }\n\n this.props\n .addCard({\n id: this.props.auth.id,\n userName: this.props.auth.name,\n cardName,\n cardNum,\n year,\n month,\n })\n .then(resolve => {\n // console.log(resolve)\n if (resolve.message === 'success') {\n this.props.onClose();\n this.onEdit({ type: 'clear', value: '' });\n notification.open({\n message: '결제카드 등록이 완료되었습니다.',\n description: '등록된 결제카드정보로 서비스 이용결제시 편리하게 이용하실 수 있습니다.',\n type: 'success',\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n formCompleteStatus = () => {\n let valid = true;\n if (!this.props.auth || !this.props.auth.addCardForm) return false;\n\n const { cardName, cardNum, year, month } = this.props.auth.addCardForm;\n if (!cardName) valid = false;\n if (!cardNum) valid = false;\n if (!year) valid = false;\n if (!month) valid = false;\n\n return valid;\n };\n\n render() {\n // console.log(this.props.auth);\n const { addCardForm } = this.props.auth;\n const status = this.formCompleteStatus();\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 결제카드정보 등록\n \n\n
\n\n 결제 카드사\n {\n this.onEdit({ type: 'cardName', value });\n }}\n >\n KB국민카드\n 삼성카드\n 현대카드\n 우리카드\n BC카드\n 신한카드\n 롯데카드\n NH농협카드\n \n\n \n\n 카드번호\n {\n this.onEdit({\n type: 'cardNum',\n value: ev.target.value\n .replace(/[^0-9]/g, '')\n .replace(/^(\\d{0,4})(\\d{0,4})(\\d{0,4})(\\d{0,4})$/g, '$1-$2-$3-$4')\n .replace(/(\\-{1,2})$/g, ''),\n });\n }}\n />\n \n\n 유효기간(MM/YY)\n \n
\n {\n this.onEdit({ type: 'month', value });\n }}\n >\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n \n
\n
\n {\n this.onEdit({ type: 'year', value: ev.target.value });\n }}\n />\n
\n
\n \n\n \n \n 닫기\n \n {\n this.onCard();\n }}\n style={!status ? { backgroundColor: '#E6E6E6', border: 0, cursor: 'not-allowed' } : {}}\n >\n 카드정보 등록\n \n \n
\n
\n
\n
\n \n );\n }\n}\n\nexport default NewProfileComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst YMWrapper = styled.div`\n display: flex;\n align-items: center;\n\n ${props =>\n props.withHalf\n ? `\n > div, p {\n width: calc(50% - 4px) !important;\n margin-right: 8px;\n }\n `\n : ''}\n\n > div:last-child {\n margin-right: 0px;\n }\n`;\n","import React from 'react';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { Select, message } from 'antd';\n\nimport { DivisionLine, WithmateSelect, WithmateInput, WithmateLabel } from '../../../../Components/Common/input';\nimport { HalfWidthButton } from '../../../../Components/Common/button';\nimport CardStyledContainer from './card.styled';\nimport { modifyCard } from '../../../../Lib/Api/auth';\n\nconst customStyles = {\n overlay: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(15, 15, 15, 0.79)',\n },\n content: {\n position: 'absolute',\n top: '30px',\n width: '350px',\n height: '37%',\n border: '1px solid #ccc',\n background: '#ffffff',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n borderRadius: '4px',\n outline: 'none',\n padding: '20px',\n },\n};\n\nclass ModifyProfileComponent extends React.PureComponent {\n state = {\n modalInfo: '',\n modalTitle: '',\n cardId: '',\n cardInfo: null,\n };\n\n componentWillUnmount = () => {\n this.setState({ cardInfo: null });\n };\n\n componentDidUpdate = (prevState, prevProps) => {\n if (!this.state.cardInfo && JSON.stringify(prevProps) !== JSON.stringify(this.props)) {\n this.setState({ cardInfo: this.props });\n }\n if (JSON.stringify(prevProps) !== JSON.stringify(this.props) && !this.props._id) {\n this.setState({ cardInfo: null });\n }\n };\n\n onEdit = ({ type, value }) => {\n this.setState(prevState => ({\n cardInfo: {\n ...prevState.cardInfo,\n [type]: value,\n },\n }));\n };\n\n onCard = () => {\n const { cardInfo } = this.state;\n const { cardName, cardNum, year, month } = cardInfo;\n\n if (!cardName) {\n return message.warning('카드명을 입력하세요');\n }\n\n if (!cardNum) {\n return message.warning('카드번호를 입력하세요');\n }\n\n if (!year) {\n return message.warning('유효 연도를 선택하세요');\n }\n\n if (!month) {\n return message.warning('유효 월을 선택하세요');\n }\n\n const info = { cardName, cardNum, year, month };\n\n modifyCard({ cardId: cardInfo._id, info })\n .then(resolve => {\n if (resolve && resolve.data === 'success') {\n message.success('등록된 카드정보를 변경하였습니다.');\n this.props.onClose();\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n render() {\n if (!this.state.cardInfo) {\n return
;\n }\n\n const { cardInfo } = this.state;\n\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 결제카드정보 수정\n \n\n
\n\n 결제 카드사\n {\n this.onEdit({ type: 'cardName', value });\n }}\n >\n KB국민카드\n 삼성카드\n 현대카드\n 우리카드\n BC카드\n 신한카드\n 롯데카드\n NH농협카드\n \n\n \n\n 카드번호\n {\n this.onEdit({\n type: 'cardNum',\n value: ev.target.value\n .replace(/[^0-9]/g, '')\n .replace(/^(\\d{0,4})(\\d{0,4})(\\d{0,4})(\\d{0,4})$/g, '$1-$2-$3-$4')\n .replace(/(\\-{1,2})$/g, ''),\n });\n }}\n />\n \n\n 유효기간(MM/YY)\n \n
\n {\n this.onEdit({ type: 'month', value });\n }}\n >\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n \n
\n
\n {\n this.onEdit({ type: 'year', value: ev.target.value });\n }}\n />\n
\n
\n \n\n \n \n 닫기\n \n {\n this.onCard();\n }}\n >\n 카드정보 수정\n \n \n
\n
\n
\n
\n \n );\n }\n}\n\nexport default ModifyProfileComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst YMWrapper = styled.div`\n display: flex;\n align-items: center;\n\n ${props =>\n props.withHalf\n ? `\n > div, p {\n width: calc(50% - 4px) !important;\n margin-right: 8px;\n }\n `\n : ''}\n\n > div:last-child {\n margin-right: 0px;\n }\n`;\n","import React from \"react\";\nimport Modal from \"react-modal\";\nimport styled from 'styled-components';\nimport { Button, Checkbox, notification, Select, message, Radio } from 'antd';\n\nimport { DivisionLine, WithmateSelect, WithmateInput, WithamteInputWithButton, WithmateLabel } from \"../../../../Components/Common/input\";\nimport { HalfWidthButton } from '../../../../Components/Common/button';\nimport ProfileStyledContainer from \"./profile.styled\";\nimport { modifyPatient } from \"../../../../Lib/Api/auth\";\nimport { MobileBr } from \"../../../Guide/guide.styled\";\n\nconst customStyles = {\n\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(15, 15, 15, 0.79)\",\n },\n content: {\n position: \"absolute\",\n top: \"30px\",\n height: \"90%\",\n border: \"1px solid #ccc\",\n background: \"#ffffff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\",\n },\n}\n\nclass ModifyProfileComponent extends React.PureComponent {\n state = {\n modalInfo: '',\n modalTitle: '',\n patientId: '',\n patientInfo: null\n };\n\n componentWillUnmount = () => {\n this.setState({ patientInfo: null });\n };\n\n componentDidUpdate = (prevState, prevProps) => {\n if (!this.state.patientInfo && JSON.stringify(prevProps) !== JSON.stringify(this.props)) {\n this.setState({ patientInfo: this.props })\n }\n if (JSON.stringify(prevProps) !== JSON.stringify(this.props) && !this.props._id) {\n this.setState({ patientInfo: null })\n }\n }\n\n onEdit = ({ type, value }) => {\n this.setState(prevState => ({\n patientInfo: {\n ...prevState.patientInfo,\n [type]: value,\n }\n }));\n };\n\n onStarting = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { sido, sigungu, bname, roadAddress, buildingName } = data;\n this.onEdit({ type: 'shortStarting', value: `${sido} ${sigungu} ${bname}` });\n this.onEdit({ type: 'starting', value: `${roadAddress} (${ buildingName })` });\n },\n }).open();\n };\n\n onProfile = () => {\n const { patientInfo } = this.state;\n const {\n name,\n relate,\n sex,\n age,\n contact,\n starting,\n environment,\n caution\n } = patientInfo;\n\n if (!name) {\n return message.warning('성함을 입력해주세요.');\n }\n\n if (!relate) {\n return message.warning('관계를 선택해주세요.');\n }\n\n if (!sex) {\n return message.warning('성별을 선택해주세요.');\n }\n\n if (!age || age.length > 3) {\n return message.warning('나이를 입력해주세요.');\n }\n\n if (!contact) {\n return message.warning('연락처를 입력해주세요.');\n }\n\n if (!starting) {\n return message.warning('주소(자택, 출발지)를 입력해주세요.');\n }\n\n if (!environment) {\n return message.warning('거주환경을 입력해주세요.');\n }\n\n if (!caution) {\n return message.warning('기타 불편한 사항(시력)을 입력해주세요.');\n }\n\n if (name.length > 15) return message.info('이름이 너무 깁니다. 이름은 15자 이내로 설정해주세요.');\n\n const info = {\n name, relate, sex, age, contact, starting, environment, caution\n }\n\n modifyPatient({ patientId: patientInfo._id, info })\n .then(resolve => {\n // console.log(resolve)\n if (resolve && resolve.data === 'success') {\n message.success('환자 프로필 정보를 변경하였습니다.')\n this.props.onClose();\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n }\n\n render() {\n if (!this.state.patientInfo) {\n return
;\n }\n\n const { patientInfo } = this.state;\n\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 환자 프로필 수정\n \n * 환자 프로필 정보를 수정할 수 있습니다.\n \n \n\n
\n\n 환자 이름\n {\n this.onEdit({ type: 'name', value: ev.target.value.trim() });\n }}\n />\n\n \n\n 본인-환자 간 관계\n {\n this.onEdit({ type: 'relate', value });\n }}\n >\n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n\n \n\n {patientInfo.name}님 성별\n
\n {\n this.onEdit({ type: 'sex', value: '남자' });\n }}\n >\n 남자\n
\n {\n this.onEdit({ type: 'sex', value: '여자' });\n }}\n >\n 여자\n
\n
\n\n \n\n {patientInfo.name}님 나이\n {\n this.onEdit({ type: 'age', value: ev.target.value.trim() });\n }}\n />\n\n \n\n {patientInfo.name}님 연락처\n {\n this.onEdit({ type: 'contact', value: ev.target.value.trim() });\n }}\n />\n\n \n\n {patientInfo.name}님의 주소(자택 혹은 출발지)를 입력해주세요.\n { this.onStarting() }}\n />\n \n\n 메이트가 {patientInfo.name}님은 외출하실 때 '꼭' 계단을 이용하셔야 하나요?\n {\n this.onEdit({ type: 'environment', value: '네' });\n }}\n >\n 네\n \n {\n this.onEdit({ type: 'environment', value: '아니요, 엘레베이터가 있어요' })\n }}\n >\n 아니요, 엘레베이터가 있어요\n \n {\n this.onEdit({ type: 'environment', value: '1층이라 괜찮아요' })\n }}\n >\n 1층이라 괜찮아요\n \n \n \n 메이트가 {patientInfo.name}님과 동행할 때 주의해야 할 점이 있을까요?\n {\n this.onEdit({ type: 'caution', value: ev.target.value });\n }}\n />\n {\n this.onEdit({ type: 'caution', value: '없어요' })\n }}\n >\n 없어요\n \n\n \n\n \n \n 닫기\n \n {\n e.preventDefault();\n e.stopPropagation();\n this.onProfile()\n }}\n >\n 프로필 수정\n \n \n\n \n
\n \n \n
\n \n );\n }\n};\n\nexport default ModifyProfileComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;","import React from 'react';\nimport { DeleteOutlined, EditOutlined } from \"@ant-design/icons\"\n\n\nexport const patientColumn = ({ onModify, onDelete }) => {\n return [\n {\n title: '번호',\n dataIndex: 'index',\n align: 'center',\n width: '58px',\n },\n {\n title: '이름',\n dataIndex: 'name',\n align: 'center'\n },\n {\n title: '나이',\n dataIndex: 'age',\n align: 'center'\n },\n {\n title: '수정',\n dataIndex: 'valid',\n align: 'center',\n width: '58px',\n render: (valid, info) =>\n {\n e.preventDefault();\n e.stopPropagation();\n\n onModify(info);\n }}\n />\n },\n {\n title: '삭제',\n dataIndex: 'createdAt',\n align: 'center',\n width: '58px',\n render: (createdAt, { _id }) =>\n {\n console.log('_id: ', _id)\n e.preventDefault();\n e.stopPropagation();\n\n onDelete({ _id });\n }}\n />\n },\n ]\n}\n\nexport const cardColumn = ({ onModify, onDelete }) => {\n return [\n {\n title: '번호',\n dataIndex: 'index',\n align: 'center',\n width: '58px',\n },\n {\n title: '카드명',\n dataIndex: 'cardName',\n align: 'center'\n },\n {\n title: '카드번호',\n dataIndex: 'cardNum',\n align: 'center',\n render: cardNum => **** - **** - **** - {cardNum.slice(15, 19)}\n },\n {\n title: '수정',\n dataIndex: 'valid',\n align: 'center',\n width: '58px',\n render: (valid, info) =>\n {\n e.preventDefault();\n e.stopPropagation();\n\n onModify(info);\n }}\n />\n },\n {\n title: '삭제',\n dataIndex: 'createdAt',\n align: 'center',\n width: '58px',\n render: (createdAt, { _id }) =>\n {\n console.log('_id: ', _id)\n e.preventDefault();\n e.stopPropagation();\n\n onDelete({ _id });\n }}\n />\n },\n ]\n};","import React from 'react';\nimport styled from 'styled-components';\nimport { Table, Input, notification, Upload, Button, message, Modal, Select, DatePicker, Collapse, InputNumber, Radio } from 'antd';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport StarRatingComponent from 'react-star-rating-component';\nimport swal from 'sweetalert2';\nimport { DeleteOutlined, EditOutlined } from '@ant-design/icons';\nimport Pallete from '../../../../theme';\n\n// components\nimport { InputFilter, ReserveList } from '../../../../Components/User/Normal/auth';\nimport { UserStatistics } from '../../../../Components/User/Normal/statistics';\nimport { UserNavigation } from '../../../../Components/User/Normal/navi';\nimport { NoramlReserveEditModal, ReportMoal, NoReportModal } from '../../../../Components/newModal';\nimport {\n PointBoxRow,\n PointBox,\n PointBox2,\n PointBox3,\n NoHistory,\n PointBoxTitle,\n PointTotal,\n PointHistoryRow,\n PointHistoryNameRow,\n PointContent,\n PointHistoryValueRow,\n} from './normal.styled';\n\n// utils\nimport axios from '../../../../Lib/axios';\nimport { UNEMER, ASSIST, LOCAL } from '../../../../Lib/variables';\nimport { datetimeFormatter, timeFormatter, currencyFormatter, getWithcarPrice } from '../../../../Lib/utils';\nimport Profile from '../Profile/profile';\nimport Card from '../Card/card';\nimport ModifyCard from '../Card/cardInfoCheck';\nimport ModifyProfile from '../Profile/profileInfoCheck';\nimport { DivisionLine, WithmateInput, WithmateLabel } from '../../../../Components/Common/input';\nimport { patientColumn, cardColumn } from '../../../../Components/Columns/normal';\nimport { HalfWidthButton } from '../../../../Components/Common/button';\n\nconst { Kakao } = window;\n\nmoment.lang('ko', {\n weekdays: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],\n weekdaysShort: ['일', '월', '화', '수', '목', '금', '토'],\n});\n\nclass NormalUser extends React.PureComponent {\n state = {\n active: 'list', // list, info, point\n reservedFilter: 'none', // none, reserved, matched, complete\n paidFilter: 'none', // none, paid, refund\n modal: false,\n kakaoModal: false,\n selected: null,\n cancelModal: false,\n modifyModal: false,\n detailModalPage: 1,\n reserveDetailModal: false,\n mateModal: false,\n mateInfo: {},\n serviceInfo: null,\n serviceStatus: null,\n serviceModal: false,\n keyword: '',\n addHalfTime: false,\n totalPro: 0,\n totalBasic: 0,\n pointUsingHistory: [],\n pointAddHistory: [],\n couponAddHistory: [],\n\n patientModal: false,\n patientModifyModal: false,\n patientInfo: {},\n patientId: '',\n\n cardModal: false,\n cardModifyModal: false,\n cardInfo: {},\n cardId: '',\n\n appointedCode: '',\n };\n\n patientModalOff = () => {\n const userId = localStorage.getItem('id');\n this.props.fetchPatient({ id: userId });\n this.setState({\n patientModal: false,\n patientInfo: {},\n });\n };\n\n patientModifyModalOff = () => {\n const userId = localStorage.getItem('id');\n this.props.fetchPatient({ id: userId });\n this.setState({\n patientModifyModal: false,\n patientInfo: {},\n });\n };\n\n cardModalOff = () => {\n const userId = localStorage.getItem('id');\n this.props.fetchCard({ id: userId });\n this.setState({\n cardModal: false,\n cardInfo: {},\n });\n };\n\n cardModifyModalOff = () => {\n const userId = localStorage.getItem('id');\n this.props.fetchCard({ id: userId });\n this.setState({\n cardModifyModal: false,\n cardInfo: {},\n });\n };\n\n componentDidMount = () => {\n this.syncStep();\n this.fetchUserInfo();\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n if (prevState.active !== this.state.active) {\n this.props.history.push(`/user/mypage/${this.state.active}`);\n }\n };\n\n syncStep = () => {\n const { params } = this.props.match;\n const { active } = this.state;\n\n if (params.tab && active !== params.tab) {\n this.setState({ active: params.tab });\n } else if (!params.tab) {\n this.props.history.push(`/user/mypage/list`);\n }\n };\n\n fetchUserInfo = () => {\n const { userType, id } = this.props.auth;\n // 예약이력\n axios.get('/v2/service/user/reserve/list', { params: { userId: id } }).then(resolve => {\n const { data } = resolve;\n if (data && Array.isArray(data)) {\n this.setState({\n reserves: data,\n totalPro: data.filter(d => d && d.service === UNEMER).length,\n totalBasic: data.filter(d => d && d.service === ASSIST).length,\n });\n }\n });\n // 사용자 포인트\n axios.get('/v2/user/point/history', { params: { userId: id } }).then(resolve => {\n const { data } = resolve;\n if (data && Array.isArray(data)) {\n this.setState({\n pointUsingHistory: data.filter(d => d && d.actionType === 'use'),\n pointAddHistory: data.filter(d => d && d.actionType === 'add'),\n });\n }\n });\n // 사용자 쿠폰\n axios.get('/v2/user/coupon/history', { params: { userId: id } }).then(resolve => {\n const { data } = resolve;\n if (data && Array.isArray(data)) {\n this.setState({\n couponAddHistory: data.filter(d => d && d.actionType === 'add'),\n });\n }\n });\n };\n\n updateBasicInfo = () => {\n const { id, userType } = this.props.auth;\n const { userInfo } = this.props.app;\n const { name, contact } = userInfo;\n\n if (!name || !contact) return message.info('필수정보인 이름과 연락처를 입력해주세요.');\n if (name.length > 15) return message.info('이름이 너무 깁니다. 이름은 15자 이내로 설정해주세요.');\n\n const info = { name, contact };\n\n this.props.modify({ id, userType, info }).then(resolve => {\n if (resolve && resolve.name) {\n message.success('정보를 업데이트 하였습니다.');\n localStorage.setItem('name', resolve.name);\n this.props.editAuth({ type: 'name', value: resolve.name });\n this.props.editAuth({ type: 'contact', value: resolve.contact });\n }\n });\n };\n\n modifyPassword = () => {\n const { passwordForm, id, userType } = this.props.auth;\n const { password, newPassword, reNewPassword } = passwordForm;\n\n if (password === newPassword) return message.info('새 비밀번호는 기존 비밀번호와 달라야합니다.');\n if (reNewPassword !== newPassword) return message.info('새 비밀번호를 확인해주세요.');\n\n this.props\n .modifyPassword({ id, userType, password, newPassword })\n .then(resolve => {\n if (resolve && resolve === 'wrong password') {\n return message.error('비밀번호가 일치하지 않습니다.');\n }\n\n if (resolve && resolve === 'not exist') {\n message.error('유효하지 않은 계정입니다. 다시 로그인해주세요.');\n return this.props.history.push('/user/logout');\n }\n\n if (resolve && resolve === 'success') {\n message.success('비밀번호를 변경하였습니다.');\n this.props.editPassword({ type: 'clear', value: '' });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n withdrawl = () => {\n const { id, userType, password } = this.props.auth;\n\n if (!password) return message.info('비밀번호를 입력해주세요.');\n\n this.props\n .withdrawlUser({ id, userType, password })\n .then(resolve => {\n if (resolve && resolve === 'wrong password') {\n return message.info('잘못된 비밀번호입니다.');\n }\n\n if (resolve && resolve === 'success') {\n message.info('회원탈퇴를 완료하였습니다. 이용해주셔서 감사합니다.');\n this.setState({ modal: false });\n setTimeout(() => {\n this.props.history.push('/user/logout');\n }, 500);\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n tabHandler = type => {\n this.setState({ active: type });\n };\n\n onMateModal = async info => {\n const { data } = await axios.get('/v2/user/mate/info/detail', {\n params: {\n mateId: info.mateId,\n },\n });\n\n this.setState({\n mateInfo: data,\n callStatus: info.status,\n callId: info.callId,\n reserveId: info.reserveId,\n mateModal: true,\n modifyModal: false,\n reserveDetailModal: false,\n cancelModal: false,\n });\n };\n\n // 요거 진행해야함\n onRematch = async () => {\n const { reserveId, callId } = this.state;\n\n const { data } = await axios.put('/v2/service/deny/mate/call', {\n callId,\n reserveId,\n });\n\n if (data === 'check parameters') {\n return message.warning('요청하신 정보가 올바르지 않습니다. 새로고침 후 다시 시도해주세요.');\n }\n\n if (data === 'no mate') {\n return console.warn('현재 예약 신청항 메이트가 없습니다.');\n }\n\n if (data === 'invalid call') {\n return message.warning('접수내역에 문제가 발생하였습니다. 새로고침 후 다시 시도해주세요.');\n }\n\n if (data === 'already matched') {\n return message.warning('이미 메이트 매칭이 완료되었습니다.');\n }\n\n if (data === 'do not') {\n return message.warning('해당 예약은 메이트 거절 불가한 상태입니다.');\n }\n\n if (data === 'success') {\n message.success('요청완료하였습니다.');\n setTimeout(() => {\n window.location.reload();\n }, 1000);\n }\n };\n\n confirmReserve = () => {\n const { callId, reserveId } = this.state;\n const { id } = this.props.auth;\n\n axios\n .put('/v2/service/allow/mate/call', {\n callId,\n reserveId,\n })\n .then(resolve => {\n const { data } = resolve;\n if (data === 'check parameters') {\n return message.warning('요청하신 정보가 올바르지 않습니다. 새로고침 후 다시 시도해주세요.');\n }\n if (data === 'invalid call') {\n return message.warning('유효하지않은 접수내역입니다. 새로고침 후 다시 시도해주세요.');\n }\n if (data === 'no mate') {\n return console.warn('아직 접수 요청중인 메이트가 없습니다. 문제가 계속되면 고객센터로 문의해주세요.');\n }\n if (data === 'wrong status') {\n return message.warning('해당 예약이 메이트 확정가능한 상태가 아닙니다.');\n }\n if (data === 'issue call') {\n return message.warning('예약에 문제가 발생했습니다. 고객센터로 문의해주세요.');\n }\n if (data === 'success') {\n message.success('메이트 확정 완료');\n setTimeout(() => {\n window.location.reload();\n }, 250);\n }\n });\n };\n\n onDetailModal = reserveId => {\n const { userType, id } = this.props.auth;\n\n axios.get('/v2/service/user/reserve/info', { params: { userId: id, reserveId } }).then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n if (data === 'invalid reserve') return message.warning('유효하지않은 예약입니다.');\n\n this.setState({\n reserveDetailModal: true,\n temp: {\n ...data,\n disabled: true,\n addTime: data.usageTime * 60 + '분',\n date: moment(data.reserveDate),\n time: moment(data.reserveDate).format('HH').toString(),\n minute: moment(data.reserveDate).format('mm').toString(),\n meetDate: data.meetDate ? moment(data.meetDate) : '',\n meetTime: data.meetDate ? moment(data.meetDate).format('HH').toString() : '',\n meetMinute: data.meetDate ? moment(data.meetDate).format('mm').toString() : '',\n },\n });\n });\n };\n\n inputHandler = ({ type, value }) => {\n this.setState({ [type]: value });\n };\n\n inputDeepHandler = ({ type, deepType, value }) => {\n this.setState(prevState => ({\n [type]: {\n ...prevState[type],\n [deepType]: value,\n },\n }));\n };\n\n onViewReport = item => {\n const { call } = item;\n if (!call.reportId) {\n message.warning('죄송합니다. 아직 담당 메이트가 리포트를 등록하지 않았습니다.');\n return null;\n }\n axios.get('/v2/review/report/viewer', { params: { reportId: call.reportId, callId: call._id } }).then(resolve => {\n const { data } = resolve;\n\n this.setState({\n report: data.report,\n timeline: data.timeline,\n selectedServiceName:\n item.productInfo.name + (item.productInfo.name.includes('내시경') ? '' : item.service === 'unemergency' ? ' Pro' : ' Basic'),\n onReportMoal: true,\n });\n });\n };\n\n onPatientModal = () => {\n this.setState({ patientModal: true });\n };\n\n onPatientModifyModal = () => {\n this.setState({ patientModifyModal: true });\n };\n\n onCardModal = () => {\n this.setState({ cardModal: true });\n };\n\n onCardModifyModal = () => {\n this.setState({ cardModifyModal: true });\n };\n\n onRow = row => {\n return {\n onClick: async () => {\n // const info = await this.onFetchPatientInfo(row);\n // console.log(row)\n swal.fire({\n title: '환자 프로필 정보',\n icon: 'info',\n width: '550px',\n html: `\n
\n
\n

ㆍ이름 :     ${row.name}

\n

ㆍ관계 :     ${row.relate}

\n

ㆍ성별 :     ${row.sex}

\n

ㆍ나이 :     ${row.age} 세

\n

ㆍ연락처 :     ${row.contact}

\n

ㆍ주소 :     ${row.starting}

\n

ㆍ계단 이용 :     ${row.environment}

\n

ㆍ메이트 주의사항 :     ${row.caution}

\n
\n `,\n });\n },\n };\n };\n\n onFetchPatientInfo = async row => {\n console.log(row);\n return axios.get('/v1/auth/patient/list/info', { params: { userId: row.userId, patientId: row._id } });\n };\n\n onPatientModify = info => {\n this.setState({ patientModifyModal: true, patientInfo: info });\n // console.log(info)\n };\n\n onPatientDelete = ({ _id }) => {\n const { id } = this.props.auth;\n console.log('_id: ', _id);\n\n const confirmed = window.confirm('해당 환자 프로필을 삭제하시겠습니까?');\n if (!confirmed) return null;\n\n this.props\n .deletePatient({ patientId: _id })\n .then(resolve => {\n if (resolve && resolve === 'success') {\n const userId = localStorage.getItem('id');\n this.props.fetchPatient({ id: userId });\n notification.open({\n message: '환자 프로필을 삭제하였습니다.',\n description: '환자 프로필을 삭제하였습니다.',\n type: 'success',\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n onCardModify = info => {\n this.setState({ cardModifyModal: true, cardInfo: info });\n // console.log(info)\n };\n\n onCardDelete = ({ _id }) => {\n const { id } = this.props.auth;\n console.log('_id: ', _id);\n\n const confirmed = window.confirm('해당 카드정보를 삭제하시겠습니까?');\n if (!confirmed) return null;\n\n this.props\n .deleteCard({ cardId: _id })\n .then(resolve => {\n if (resolve && resolve === 'success') {\n const userId = localStorage.getItem('id');\n this.props.fetchCard({ id: userId });\n notification.open({\n message: '카드정보를 삭제하였습니다.',\n description: '카드정보를 삭제하였습니다.',\n type: 'success',\n });\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n // kakao api unlink\n kakaoUnlink = () => {\n const { id, userType } = this.props.auth;\n\n window.Kakao.API.request({\n url: '/v1/user/unlink',\n success: function (response) {\n console.log(response, 'kakao api unlink!');\n // window.location.href = '/user/logout'\n },\n fail: function (error) {\n console.log(error, 'kakao api unlink error');\n },\n });\n\n this.props\n .withdrawlKakao({ id, userType })\n .then(resolve => {\n if (resolve && resolve === 'success') {\n notification.open({\n message: '회원탈퇴를 완료하였습니다.',\n description: '그동안 위드메이트의 서비스를 이용해주셔서 감사합니다.',\n type: 'success',\n });\n this.setState({ kakaoModal: false });\n setTimeout(() => {\n this.props.history.push('/user/logout');\n }, 500);\n }\n })\n .catch(error => {\n message.error('서버장애가 발생하였습니다. 관리자에게 문의해주세요.');\n });\n };\n\n onAddCoupon = async () => {\n const { appointedCode } = this.state;\n if (!appointedCode) {\n // notification.open({\n // message: '쿠폰 코드가 입력되지 않았습니다',\n // description: '쿠폰 코드를 입력해주세요',\n // type: 'warning',\n // });\n }\n\n if (appointedCode) {\n const { data } = await axios.post('/v2/user/add/coupon', {\n userId: this.props.auth.id,\n userName: this.props.auth.name,\n appointedCode,\n info: {\n couponName: '',\n couponValue: '',\n },\n });\n\n if (!data || data === 'check parameters') {\n notification.open({\n message: '쿠폰 코드 등록에 실패하였습니다',\n description: '다시 한번 쿠폰 코드를 입력해주세요',\n type: 'warning',\n });\n }\n\n if (data === 'wrong access') {\n notification.open({\n message: '쿠폰 코드가 일치하지 않습니다',\n description: '입력하신 쿠폰 코드를 다시한번 확인하세요',\n type: 'warning',\n });\n }\n\n if (data === 'duplicate') {\n notification.open({\n message: '이미 등록된 쿠폰 코드입니다',\n description: '다른 쿠폰 코드를 입력해주세요',\n type: 'warning',\n });\n }\n\n if (data === 'success') {\n notification.open({\n message: '쿠폰 코드가 등록되었습니다',\n description: '포인트가 정상적으로 지급되었습니다',\n type: 'success',\n });\n setTimeout(() => {\n window.location.reload();\n }, 250);\n }\n }\n };\n\n handleChange = e => {\n this.setState({ [e.target.title]: e.target.value });\n };\n\n render() {\n // console.log(this.props.auth)\n const { auth } = this.props;\n const { password, newPassword, reNewPassword } = auth.passwordForm;\n const { userInfo } = this.props.app;\n // console.log(userInfo)\n const { pointUsingHistory, pointAddHistory, couponAddHistory, active, reservedFilter, reserves, mateInfo, keyword, totalPro, totalBasic } = this.state;\n\n // console.log(auth);\n const list = keyword\n ? reserves.filter(reserve => {\n const { call } = reserve;\n\n return (\n (reserve && reserve.reserveCode && reserve.reserveCode.toLowerCase().includes(keyword.toLowerCase())) ||\n (call && call.mate && call.mate.toLowerCase().includes(keyword.toLowerCase()))\n );\n })\n : reserves;\n\n return (\n
\n
\n
\n \n \n
\n
\n\n
\n
\n {active === 'list' ? (\n <>\n
\n {\n this.setState({ reservedFilter: 'none' });\n }}\n />\n {\n this.setState({ reservedFilter: 'reserved' });\n }}\n />\n\n {\n this.setState({ reservedFilter: 'matched' });\n }}\n />\n {\n this.setState({ reservedFilter: 'complete' });\n }}\n />\n
\n\n {\n this.setState({ keyword: value });\n }}\n />\n p.call.status === '접수대기' || p.call.status === '예약접수')\n : reservedFilter === 'matched'\n ? list.filter(\n p =>\n p.call.status === '예약완료' ||\n p.call.status === '접선' ||\n p.call.status === '병원 출발' ||\n p.call.status === '병원 도착' ||\n p.call.status === '진료 시작' ||\n p.call.status === '진료 종료' ||\n p.call.status === '자택 출발',\n )\n : reservedFilter === 'complete'\n ? list.filter(p => p.call.status === '서비스 종료')\n : []\n }\n onReport={this.onViewReport}\n onDetailModal={_id => {\n this.onDetailModal(_id);\n }}\n onMateModal={info => {\n this.onMateModal(info);\n }}\n />\n \n ) : null}\n\n {active === 'info' ? (\n
\n
\n
\n
\n

프로필 수정

\n

\n 위드메이트의 이름과 연락처를 수정 하실 수 있습니다.\n

\n
\n\n
\n

이름

\n
\n {\n this.props.onEdit({ type: 'name', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n

연락처

\n
\n {\n this.props.onEdit({ type: 'contact', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n \n
\n
\n\n
\n
\n

결제 카드 정보

\n

\n 등록된 카드정보를 통해 서비스 결제를 하실 수 있습니다.\n

\n
\n\n \n \n\n \n\n
\n \n
\n
\n\n {/* 수정해야할 부분 - KAKAO 로그인인 경우 안보이게*/}\n {this.props.auth.type === LOCAL ? (\n
\n
\n

비밀번호 변경

\n
\n\n
\n

현재 비밀번호

\n
\n {\n this.props.editPassword({ type: 'password', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n

새 비밀번호

\n
\n {\n this.props.editPassword({ type: 'newPassword', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n

새 비밀번호 확인

\n
\n {\n this.props.editPassword({ type: 'reNewPassword', value: ev.target.value });\n }}\n />\n
\n
\n\n
\n \n 비밀번호 변경\n \n
\n
\n ) : (\n
\n
\n

기타

\n
\n\n
\n
\n {\n this.props.history.push('/policy/privacy');\n }}\n >\n 개인정보 처리방침 {'>'}\n

\n {\n this.props.history.push('/policy/terms');\n }}\n >\n 서비스 이용약관 {'>'}\n

\n
\n
\n\n
\n {\n this.props.history.push('/user/logout');\n }}\n >\n 로그아웃\n \n
\n\n
\n {this.props.auth.type === LOCAL ? (\n {\n this.setState({ modal: true });\n }}\n style={{ color: '#a7a7a7', height: '30px' }}\n >\n 회원탈퇴\n \n ) : (\n {\n this.setState({ kakaoModal: true });\n }}\n style={{ color: '#a7a7a7', height: '30px' }}\n >\n 카카오 회원탈퇴\n \n )}\n
\n
\n )}\n
\n
\n {this.props.auth.type === LOCAL ? (\n
\n
\n
\n

기타

\n
\n\n
\n
\n {\n this.props.history.push('/policy/privacy');\n }}\n >\n 개인정보 처리방침 {'>'}\n

\n {\n this.props.history.push('/policy/terms');\n }}\n >\n 서비스 이용약관 {'>'}\n

\n
\n
\n\n
\n {\n this.props.history.push('/user/logout');\n }}\n >\n 로그아웃\n \n
\n\n
\n {this.props.auth.type === LOCAL ? (\n {\n this.setState({ modal: true });\n }}\n style={{ color: '#a7a7a7', height: '30px' }}\n >\n 회원탈퇴\n \n ) : (\n {\n this.setState({ kakaoModal: true });\n }}\n style={{ color: '#a7a7a7', height: '30px' }}\n >\n 카카오 회원탈퇴\n \n )}\n
\n
\n
\n
\n ) : null}\n
\n ) : null}\n\n {active === 'point' && (\n <>\n \n \n 현재 잔여 포인트\n {userInfo.point ? currencyFormatter(userInfo.point) : 0} 원\n \n \n \n \n 포인트 적립 내역\n {pointAddHistory && pointAddHistory.length > 0 ? (\n \n {pointAddHistory.map((item, index) => (\n \n \n {item.name}\n + {currencyFormatter(item.value)} 원\n \n \n {moment(item.addedAt).format('YY년 M월 D일 HH:mm')}\n 잔여 포인트 {currencyFormatter(item.leftValue)} 원\n \n \n ))}\n \n ) : (\n 내역 없음\n )}\n \n \n 포인트 사용 내역\n {pointUsingHistory && pointUsingHistory.length > 0 ? (\n \n {pointUsingHistory.map((item, index) => (\n \n \n {item.name}\n - {currencyFormatter(item.value)} 원\n \n \n {moment(item.usedAt).format('YY년 M월 D일 HH:mm')}\n 잔여 포인트 {currencyFormatter(item.leftValue)} 원\n \n \n ))}\n \n ) : (\n 내역 없음\n )}\n \n \n \n \n 쿠폰 등록\n \n {\n this.onAddCoupon();\n }}\n >\n 등록\n \n\n \n \n \n\n 쿠폰 사용 내역\n {couponAddHistory && couponAddHistory.length > 0 ? (\n \n {couponAddHistory.map((item, index) => (\n \n \n {item.couponName}\n + {currencyFormatter(item.couponValue)} P\n \n \n {moment(item.addedAt).format('YY년 M월 D일 HH:mm')}\n \n \n ))}\n \n ) : (\n 사용 내역 없음\n )}\n \n \n \n )}\n\n {active === 'profile' ? (\n
\n
\n
\n
\n

환자 프로필 목록

\n

\n 위드메이트 서비스를 사용하시는 프로필을 관리할 수 있습니다.\n

\n
\n \n\n \n \n
\n
\n\n
\n \n
\n
\n\n
\n
\n
\n ) : null}\n
\n
\n\n {this.state.reserveDetailModal && (\n {\n this.setState({ temp: null, reserveDetailModal: false });\n }}\n data={this.state.temp}\n inputDeepHandler={this.inputDeepHandler}\n />\n )}\n\n {this.state.onReportMoal && (\n {\n this.setState({\n report: null,\n timeline: null,\n onReportMoal: false,\n selectedServiceName: '',\n });\n }}\n data={{\n report: this.state.report,\n timeline: this.state.timeline,\n selectedServiceName: this.state.selectedServiceName,\n }}\n />\n )}\n\n {\n this.setState({ modal: false });\n }}\n >\n \n\n

\n * 회원탈퇴 전, 유의사항을 확인해 주시기 바랍니다. \n - 회원탈퇴 시 위드메이트 서비스 이용이 불가합니다.
\n - 회원탈퇴 후 회원 정보 및 이용 기록은 모두 삭제되며,
  복구 가능하지 않습니다.\n

\n\n \n\n \n {\n this.props.editAuth({ type: 'password', value: ev.target.value });\n }}\n />\n
\n\n
\n {\n this.setState({ modal: false });\n }}\n >\n 취소\n \n \n
\n \n\n {\n this.setState({ modal: false });\n }}\n >\n \n\n

\n * 회원탈퇴 전, 유의사항을 확인해 주시기 바랍니다. \n - 회원탈퇴 시 위드메이트 서비스 이용이 불가합니다.
\n - 회원탈퇴 후 회원 정보 및 이용 기록은 모두 삭제되며,
  복구 가능하지 않습니다.\n

\n \n \n \n
\n {\n this.setState({ kakaoModal: false });\n }}\n >\n 취소\n \n \n
\n \n\n {\n this.setState({ mateModal: false });\n }}\n >\n
\n mate\n
\n
\n
\n

이름

\n
\n

{mateInfo && mateInfo.mate ? mateInfo.mate.name : ''}

\n
\n
\n
\n

연락처

\n
\n

{mateInfo && mateInfo.mate ? mateInfo.mate.contact : ''}

\n
\n
\n
\n

Pro 서비스 이력

\n
\n

{(mateInfo && mateInfo.review && mateInfo.review.unemergency) || 0}건

\n
\n
\n
\n

Basic 서비스 이력

\n
\n

{(mateInfo && mateInfo.review && mateInfo.review.assist) || 0}건

\n
\n
\n {mateInfo && mateInfo.review ? (\n
\n

동행 서비스 이행 평점

\n {\n return (\n \n );\n }}\n onStarClick={() => {}}\n />\n
\n ) : null}\n {\n if (mateInfo && this.state.callStatus === '예약접수') {\n this.confirmReserve();\n } else {\n this.setState({ mateModal: false });\n }\n }}\n >\n {mateInfo && this.state.callStatus === '예약접수' ? '예약 및 메이트 확정하기' : '확인'}\n \n {mateInfo && this.state.callStatus === '예약접수' ? (\n \n ) : null}\n
\n \n
\n );\n }\n}\nexport default NormalUser;\n\nconst Filter = ({ filter, value, onClick, name }) => {\n return (\n \n {name}\n \n );\n};\n\nconst PanelHead = styled.p`\n font-size: 14px;\n font-weight: 600;\n line-height: 24px;\n height: 24px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n`;\n\nconst AddTimeSelector = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n min-height: 60px;\n\n > span {\n margin-right: 8px;\n margin-bottom: 6px;\n\n display: inline-block;\n\n padding-left: 12px;\n padding-right: 12px;\n height: 24px;\n line-height: 24px;\n\n font-size: 12px;\n text-align: center;\n\n background-color: #dedede;\n color: #ffffff;\n\n border-radius: 10px;\n white-space: nowrap;\n cursor: pointer;\n\n @media (min-width: 768px) {\n &:hover {\n transition: all 0.5s;\n background-color: #3bc1ff;\n }\n }\n\n &.active {\n background-color: #3bc1ff;\n }\n }\n`;\n\nconst CouponInput = styled(Input)`\n width: 100%;\n height: 46px;\n line-height: 44px;\n ${props => props.small && `max-width: 102px; height: 32px; line-height: 29px;`}\n\n margin-bottom: 0px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border-radius: 4px;\n border: 1px solid ${Pallete.dark50} !important;\n background-color: #ffffff;\n\n @media (max-width: 480px) {\n font-size: 12px;\n border: 1px solid ${Pallete.dark50} !important;\n }\n\n &.ant-input {\n width: 65%;\n height: 45px;\n line-height: 44px;\n\n margin-bottom: 0px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border-radius: 4px;\n border: 1px solid ${Pallete.dark50} !important;\n background-color: #ffffff;\n\n &::placeholder {\n color: ${Pallete.dark60};\n font-size: 14px;\n font-weight: normal;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n border: 1px solid ${Pallete.dark50} !important;\n\n &::placeholder {\n font-size: 12px;\n }\n }\n }\n\n &:focus {\n border: 1px solid ${Pallete.blue100} !important;\n transition: all 0.3s;\n box-shadow: none;\n outline: 0;\n }\n\n &:disabled {\n background-color: ${Pallete.dark10};\n }\n\n &.ant-input-affix-wrapper-disabled {\n background-color: #f5f5f5;\n }\n\n &.ant-input-affix-wrapper {\n height: 46px;\n line-height: 43px;\n padding: 0px 11px;\n\n ${props => props.small && `max-width: 102px; height: 32px; line-height: 29px;`}\n\n .ant-input {\n width: 100% !important;\n height: 100%;\n line-height: 43px;\n\n color: ${Pallete.dark100};\n font-size: 14px;\n font-weight: normal;\n\n border: 0px !important;\n &::placeholder {\n color: ${Pallete.dark60};\n font-size: 14px;\n font-weight: normal;\n }\n\n &:focus {\n border: 1px solid ${Pallete.blue100} !important;\n transition: all 0.3s;\n box-shadow: none;\n outline: 0;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n line-height: 43px;\n\n &:focus {\n border: 1px solid ${Pallete.dark50} !important;\n }\n\n &::placeholder {\n font-size: 12px;\n }\n }\n &:disabled {\n background-color: ${Pallete.dark10};\n }\n }\n\n .ant-input-suffix {\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n text-align: right;\n color: ${Pallete.dark100};\n\n @media (max-width: 480px) {\n font-size: 12px;\n }\n }\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledNormalContainer from './normal.styled';\nimport Normal from './normal';\nimport { USER } from '../../../../Lib/variables';\nimport {\n // getPayHistory,\n // getReserveUsage,\n // getReserveList,\n getUserInfo,\n editUserForm,\n modifyUserInfo,\n cancelReserve,\n modifyReserve,\n} from '../../../../Reducer/Modules/app';\nimport { editAuth, editPasswordForm, modifyPassword, withdrawlUser, withdrawlKakao,\n editAddPatientForm, addPatient, fetchPatient, deletePatient, modifyPatient, getPatientInfo, \n fetchCard, editAddCardForm, addCard, getCardInfo, modifyCard, deleteCard, checkCouponCode } from '../../../../Reducer/Modules/auth';\n\nclass NormalPage extends React.PureComponent {\n componentDidMount = () => {\n const userId = localStorage.getItem('id');\n const userType = localStorage.getItem('userType');\n const type = localStorage.getItem('type');\n\n if (userId) {\n if (userType !== USER) {\n window.location.href = '/';\n } else {\n this.props.getUserInfo({ id: userId, userType, type });\n this.props.fetchPatient({ id: userId });\n this.props.fetchCard({ id: userId });\n }\n } else {\n this.props.history.push('/user/login');\n }\n };\n\n render() {\n if (this.props.auth.userType !== USER) {\n return
;\n }\n\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchPatient: ({ id }) => dispatch(fetchPatient({ id })),\n fetchCard: ({ id }) => dispatch(fetchCard({ id })),\n\n getUserInfo: ({ id, userType, type }) => dispatch(getUserInfo({ id, userType, type })),\n onEdit: ({ type, value }) => dispatch(editUserForm({ type, value })),\n modify: ({ id, userType, info }) => dispatch(modifyUserInfo({ id, userType, info })),\n modifyPassword: ({ id, userType, password, newPassword }) => dispatch(modifyPassword({ id, userType, password, newPassword })),\n editAuth: ({ type, value }) => dispatch(editAuth({ type, value })),\n editPassword: ({ type, value }) => dispatch(editPasswordForm({ type, value })),\n \n withdrawlUser: ({ id, userType, password }) => dispatch(withdrawlUser({ id, userType, password })),\n withdrawlKakao: ({ id, userType }) => dispatch(withdrawlKakao({ id, userType })),\n\n cancelReserve: ({ callId }) => dispatch(cancelReserve({ callId })),\n modifyReserve: ({ reserveId, info }) => dispatch(modifyReserve({ reserveId, info })),\n \n editAddPatientForm: ({ type, value }) => dispatch(editAddPatientForm({ type, value })),\n addPatient: (info) => dispatch(addPatient(info)),\n deletePatient: ({ patientId }) => dispatch(deletePatient({ patientId })),\n modifyPatient: ({ id, patientId, info }) => dispatch(modifyPatient({ id, patientId, info })),\n getPatientInfo: ({ id, patientId }) => dispatch(getPatientInfo({ id, patientId })),\n\n editAddCardForm: ({ type, value }) => dispatch(editAddCardForm({ type, value })),\n addCard: (info) => dispatch(addCard(info)),\n getCardInfo: ({ id, cardId }) => dispatch(getCardInfo({ id, cardId })),\n modifyCard: ({ id, cardId, info }) => dispatch(modifyCard({ id, cardId, info })),\n deleteCard: ({ cardId }) => dispatch(deleteCard({ cardId })),\n});\n \nexport default connect(mapStateToProps, mapDispatchToProps)(NormalPage);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\n\nconst StyledPendingContainer = styled.div`\n margin-top: 55px;\n min-height: 100vh;\n background-color: rgba(0, 0, 0, 0.02);\n // background-size: cover;\n // background-repeat: no-repeat;\n // background-position: center;\n\n .inner-container {\n padding: 0px;\n padding-top: 144px;\n padding-bottom: 100px;\n\n .pending-form {\n background-color: white;\n border-radius: 8px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n width: 100%;\n max-width: 340px;\n margin: 0 auto;\n padding: 24px;\n\n .login-title {\n margin-bottom: 24px;\n\n p {\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .form {\n .img-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 124px;\n padding: 20px 0px;\n\n img {\n height: 100%;\n }\n }\n\n .info-title {\n p {\n margin: 0px;\n padding: 0px;\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n }\n\n margin-bottom: 4px;\n }\n\n .info-body {\n margin-bottom: 32px;\n\n p {\n margin: 0px;\n padding: 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n }\n }\n`;\nexport default StyledPendingContainer;\n","import React from 'react';\nimport {} from 'antd';\n\nexport default class Pending extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n
\n

회원가입

\n
\n
\n
\n check-circle\n
\n
\n

메이트 가입신청 완료

\n
\n
\n

\n 약 7일 이내에 메이트 가입신청 결과를
\n 가입하신 이메일로 보내드리겠습니다.\n

\n
\n
\n
\n
\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledPendingContainer from './pending.styled';\nimport Pending from './pending';\n\nclass PendingPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ auth }) => ({\n auth,\n});\n\nconst mapDispatchToProps = dsipatch => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PendingPage);\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\n// pages\nimport NotFound from '../NotFound';\nimport Login from './AuthPages/Login';\nimport Main from './AuthPages/MainRegister';\nimport Register from './AuthPages/Register';\nimport Logout from './AuthPages/Logout';\nimport Find from './AuthPages/Find';\nimport Mate from './AuthPages/Mate';\nimport Normal from './AuthPages/Normal';\nimport Pending from './AuthPages/Pending';\n\n// import Example from './AuthPages/Example';\n\n// component\nexport default class AuthPage extends React.PureComponent {\n render() {\n const { url } = this.props.match;\n // console.log(url);\n return (\n \n \n \n\n \n \n\n \n \n\n {/* 경로 입력 시 /user/example로 해야 화면출력*/}\n\n \n \n \n \n \n \n {/* */}\n \n \n );\n }\n}\n","import styled from 'styled-components';\n\nconst AuthStyledContainer = styled.div``;\n\nexport default AuthStyledContainer;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport Auth from './auth';\n\n// styles\nimport AuthStyledContainer from './auth.styled';\n\nclass AuthPages extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\n\nconst mapStateToDispatch = dispatch => ({});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(AuthPages);\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../theme';\n\nconst StyledCompanyContainer = styled.div`\n padding-top: 55px;\n\n .snd-section .inner-container .block:nth-child(2) {\n align-items: flex-end;\n }\n\n .block {\n display: flex;\n align-items: center;\n justify-content: center;\n\n .img-block {\n flex: 1;\n margin-bottom: 30px;\n position: relative;\n display: flex;\n align-items: flex-start;\n\n img {\n width: 65%;\n }\n\n &.right {\n // justify-content: flex-end;\n }\n }\n\n .text-block {\n flex: 1;\n margin-bottom: 30px;\n\n .title {\n p {\n padding: 0px;\n margin: 0px;\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n margin-bottom: 20px;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n }\n }\n\n .content {\n p {\n padding: 0px;\n margin: 0px;\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 20px;\n }\n }\n }\n }\n\n .fst-section {\n background-image: url('/assets/images/company-main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n .inner-container {\n padding-top: 166px;\n padding-bottom: 166px;\n }\n\n .text-block {\n p {\n margin: 0px;\n padding: 0px;\n text-align: center;\n color: white;\n\n &.title {\n color: #161616;\n font-size: ${sizeHandler(28)};\n font-weight: bold;\n margin-bottom: 8px;\n letter-spacing: -0.6px;\n }\n\n &.content {\n font-size: ${sizeHandler(32)};\n font-weight: bold;\n letter-spacing: -0.38px;\n }\n }\n }\n }\n\n .trd-section {\n background-image: url('/assets/images/hug.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n\n .inner-container {\n padding-top: 144px;\n padding-bottom: 88px;\n }\n\n .text-block {\n p {\n text-align: center;\n margin: 0px;\n padding: 0px;\n color: white;\n\n &.title {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n letter-spacing: -1px\n margin-bottom: 12px;\n }\n\n &.content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(22)};\n letter-spacing: -0.3px;\n }\n }\n }\n }\n\n .fth-section {\n margin-bottom: 40px;\n border-bottom: 1px solid #e6e6e6;\n \n .title-block {\n margin-bottom: 20px;\n\n p {\n text-align: center;\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n margin-bottom: 20px;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n }\n }\n\n .items-block {\n .item {\n float: left;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 33.3333%;\n height: 124px;\n\n @media(max-width: 768px) {\n width: 100%;\n padding: 0px 20px;\n }\n\n .img-wrapper {\n width: 30%;\n float: left;\n\n img {\n width: 70%;\n }\n }\n\n .text-wrapper {\n width: 70%;\n float: left;\n\n .name {\n font-size: ${sizeHandler(20)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n \n }\n\n .value {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n }\n }\n }\n\n .fifth-section {\n\n .inner-container {\n padding-top: 200px;\n padding-bottom: 65px;\n\n .text-block {\n .title {\n text-align: center;\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n margin-bottom: 20px;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n }\n\n .content {\n text-align: center;\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 20px;\n }\n\n .news {\n text-align: center;\n margin-bottom: 80px;\n }\n }\n\n // .logo-block {\n \n // .three {\n \n // .logo-wrapper {\n // float: left;\n // width: 20%;\n\n // display: flex;\n // align-items: center;\n // justify-content: center;\n \n // margin-bottom: 16px;\n\n // img {\n // height: 76px;\n // }\n // }\n // }\n // }\n }\n }\n\n @media (max-width: 768px) {\n .block {\n flex-direction: column;\n\n &.fst {\n order: 1;\n \n .img-block {\n align-items: center;\n justify-content: center;\n }\n }\n\n .snd {\n order: 2;\n }\n\n .trd {\n order: 4;\n }\n\n .fth {\n order: 3;\n margin-top: 20px;\n }\n \n .img-block {\n // display: none;\n // margin-bottom: 20px;\n // justify-content: center;\n\n // &.right {\n // justify-content: center;\n // }\n\n // img {\n // width: 25%;\n // }\n }\n }\n\n .fth-section { \n .items-block {\n flex-direction: column;\n\n .row {\n flex-direction: row;\n\n .item {\n flex: 1;\n justify-content: flex-start;\n\n .text-block {\n flex: 1;\n }\n }\n }\n }\n }\n\n }\n\n\n .sth-container {\n .img-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 156px;\n margin-bottom: 34px;\n\n img {\n height: 100%;\n }\n }\n\n .text-wrapper {\n .title {\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n letter-spacing: -1px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: normal;\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n`;\nexport default StyledCompanyContainer;\n","import React from 'react';\n\nimport { mainColor } from '../../../theme';\n\nclass FstBlock extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

Built for Healthcare, Designed for NEMT

\n

병원으로 향하는 새로운 길,

\n

위드메이트가 열어갑니다.

\n
\n
\n
\n );\n }\n}\nexport default FstBlock;\n","import React from 'react';\n\nclass SndBlock extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n
\n something img\n
\n
\n
\n

등장배경

\n
\n
\n

\n 날로 분주해지는 현대 사회 속에서, 우리는 매일 직장과 육아라는 전투를 치릅니다.
\n 살아남기 위한 발버둥을 치기에도 버거운 순간, 떨어져 있는 가족들에 대한 걱정과
\n 자기 자신을 돌보기 위한 시간을 내는 것이 힘겹기만 합니다.\n

\n

\n 과연 그 누가 물리적인 거리와 시간적인 제약, 그리고 직장과 육아가 주는 압박감을
\n 떨쳐내고 가족과 자신을 위해 선뜻 움직일 수 있을까요? 그렇다면 우리는 언제까지
\n 이런 막막한 상황을 견디기만 해야 할까요?\n

\n

이를 해결하기 위한 믿을 수 있는 서비스를 합리적인 가격으로 제공받을 수는 없는 걸까요?

\n
\n
\n
\n
\n
\n
\n

위드메이트의 시작

\n
\n
\n

\n 2015년 설립된 위드메이트는 고령화 및 1인 가구 시대에 접어든
\n 대한민국의 현 상황에 적합한 의료 동행 서비스는 무엇인지 연구했습니다.\n

\n

\n 이후 위드메이트는 탄탄한 신뢰와 안정된 서비스 시스템을 기반으로
\n 유수의 병원 동행 서비스를 수행하며 축적된 데이터와
\n 실전 경험을 바탕으로 차별화된 병원 동행 Pro/Basic 서비스를
\n 런칭하게 되었습니다.\n

\n
\n
\n
\n something img\n
\n
\n
\n
\n );\n }\n}\nexport default SndBlock;\n","import React from 'react';\n\nclass TrdBlock extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

암 치료 동행 전문 기업

\n

\n 위드메이트는 자타공인 국내 최고 수준의 암 치료 동행 서비스를 제공합니다. 위드메이트는 청담동과 하남에 위치한 암 전문 요양 병원과\n
\n 국립 암센터와의 협업 시스템 구축을 통해 항암 치료 동행과 관련된 다양한 경험과 데이터를 축적했습니다.\n
\n 이를 통해 위드메이트는 단순한 동행이 아닌, 전문적인 수준의 암 치료 동행 서비스를 제공합니다.\n

\n
\n
\n
\n );\n }\n}\nexport default TrdBlock;\n","import React from 'react';\n\nclass FthBlock extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

통계로 보는 위드메이트

\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nconst Item = ({ name, value, img }) => {\n return (\n
\n
\n value-icon\n
\n
\n

{name}

\n

{value}

\n
\n
\n
\n );\n};\nexport default FthBlock;\n","import React from 'react';\nimport styled from 'styled-components';\n\nclass FstBlock extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

믿을 수 있는 기업

\n

\n 위드메이트는 국가 기관과 지자체에게 검증 받은 서비스로, 현재 보건복지부고양시, 그리고
\n 국립 암센터가 주관하는 ‘고양 해피 케어’ 컨소시엄의 일원으로 소속되어 국립 암센터를 이용하는
\n 고양 시민에게 병원 동행 서비스를 제공하고 있습니다. 위드메이트와 함께할
\n 협력 단체 및 기업은 추후 확장될 예정이니 많은 관심 부탁드립니다.\n
\n

\n

\n \n 기사링크 >\n \n

\n
\n \n
\n
\n );\n }\n}\n\nexport const CoCompany = ({ style }) => {\n return (\n \n
\n
\n
\n logo\n
\n
\n logo\n
\n
\n logo\n
\n
\n logo\n
\n
\n logo\n
\n
\n logo\n
\n\n
\n logo\n
\n\n
\n logo\n
\n
\n logo\n
\n\n
\n logo\n
\n\n
\n logo\n
\n
\n logo\n
\n
\n
\n
\n \n );\n};\n\nconst StyledCoCompany = styled.div`\n .logo-block {\n .three {\n .logo-wrapper {\n float: left;\n width: calc(100% / 6);\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n margin-bottom: 16px;\n\n img {\n height: 76px;\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n .logo-block {\n .three {\n // flex-direction: column;\n display: block;\n\n .logo-wrapper {\n width: 50%;\n float: left;\n\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n }\n }\n`;\nexport default FstBlock;\n","import React from 'react';\n\nexport default class SthSection extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n smile\n
\n
\n

안전한 병원 동행의 시작

\n

\n 위드메이트는 병원 동행 서비스의 본질을 ‘안전’이라고 생각합니다. 이에 위드메이트는 전직원의
\n 정기적인 교육 및 검열, 전문 자격증 취득 및 보유 여부 상시 점검, 영업배상책임 보험 가입 등 안전한\n
\n 병원 동행 서비스의 제공을 위해 최선을 다하고 있습니다.\n

\n
\n
\n
\n );\n }\n}\n","import React from 'react';\n\n// section\nimport FstBlock from './Section/fst';\nimport SndBlock from './Section/snd';\nimport TrdBlock from './Section/trd';\nimport FthBlock from './Section/fth';\nimport FifBlock from './Section/fifth';\nimport SthBlock from './Section/sth';\n\nclass Company extends React.PureComponent {\n render() {\n return (\n
\n \n \n \n \n \n \n
\n );\n }\n}\nexport default Company;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledCompanyContainer from './company.styled';\nimport Company from './company';\n\nclass CompanyPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CompanyPage);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../theme';\n\nconst StyledFaqContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n }\n }\n\n .img-section {\n position: absolute;\n bottom: 0px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .faq-nav {\n display: flex;\n align-items: center;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n a {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: center;\n color: #3bc1ff;\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n\n @media (max-width: 768px) {\n margin-right: 16px;\n }\n }\n }\n }\n }\n\n .faq-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n }\n }\n\n .panel-header {\n display: flex;\n align-items: center;\n\n .row-index {\n width: 80px;\n color: ${mainColor};\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n }\n\n .title {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .title {\n font-size: ${sizeHandler(14)};\n }\n }\n }\n\n .panel-content {\n padding-left: 80px;\n\n > p {\n width: 60%;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .panel-contents-wrapper {\n margin-top: 20px;\n margin-bottom: 20px;\n\n .panel-contents {\n padding: 12px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n &:first-child {\n border-top: 1px solid #e6e6e6;\n }\n\n .panel-content-subtitle {\n float: left;\n width: 40%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: left;\n color: ${mainColor};\n }\n\n .panel-content-subcontents {\n float: left;\n width: 50%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .panel-content-subtitle {\n width: 100%;\n }\n\n .panel-content-subcontents {\n width: 100%;\n }\n }\n }\n }\n }\n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\nexport default StyledFaqContainer;\n","import React from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { Collapse, Icon } from 'antd';\nimport { mainColor } from '../../theme';\nconst { Panel } = Collapse;\n\nexport default class FAQ extends React.PureComponent {\n render() {\n const { hash } = this.props.location;\n return (\n
\n
\n
\n
\n
\n

위드메이트 FAQ

\n

고객님의 궁금증을 해소하세요!

\n
\n
\n faq-img\n
\n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}>\n 공통 FAQ\n \n \n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}>\n 병원 동행 Pro FAQ\n \n \n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}>\n 병원 동행 Basic FAQ\n \n \n
\n
\n
\n
\n
\n
\n
\n

공통 FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 현재 위드메이트는 적격 자격을 갖춘 인원들을 선별하고 세밀한 채용 단계를 거친 후, 영업 배상 책임 보험 가입과 함께\n 엄격한 자체 교육을 실시하며 서비스 인력을 모집하고 있습니다.\n
\n 이와 동시에 위드메이트가 진행하는 주기적인 교육과 점검을 통해 서비스를 제공하는 인력 모두가 건강한 긴장감을 놓치지\n 않도록 철저하게 관리하고 있습니다.\n

\n
\n \n\n }\n >\n \n

\n 위드메이트 서비스는 웹사이트를 통해 신청이 가능합니다. 웹사이트 내 서비스 신청 모듈을 통해 서비스 신청을 해주시면\n 됩니다. 회원 가입 진행을 완료하신 분이라면 전화 상담을 통한 예약 신청 또한 가능합니다.\n

\n
\n \n }\n >\n \n

\n 예약 접수가 완료되면, 위드메이트 소속의 전문 동행인들은 예약 발생 알림을 받고 검토를 진행하게 됩니다. 이후 동행인이\n 예약을 접수하면 고객님께 ‘예약 완료’ 알림이 가고, 고객님께서 해당 동행인의 접수를 수락하시면 최종 ‘매칭’이\n 이루어집니다. 이후 예약 일정에 맞춰 동행인과 함께 병원에 방문하시면 됩니다. 고객님께서 동행인의 접수를 거절하시면\n 처음 단계로 돌아가 다른 동행인의 접수를 대기하게 됩니다.\n
\n 만약 동행인 접수가 불가한 경우 고객님께 예약 불가 알림이 가고, 추후 서비스 재신청을 통해 서비스를 받을 수 있습니다.\n

\n
\n \n }\n >\n \n

\n 위드메이트의 서비스는 현재 수도권 내에서 이용 가능합니다. 빠른 시일 내 경기도를 포함한 타 지역 서비스 확장을 계획\n 중에 있습니다.\n

\n
\n \n }\n >\n \n

고객님께서 정상적으로 매칭된 병원 동행 서비스 계약을 취소 및 변경하는 경우에는 아래와 같이 수수료가 발생합니다.

\n
\n
\n

서비스 예약 날짜 기준 48시간 이내 변경 및 취소

\n

수수료 없이 변경 & 취소 가능

\n
\n
\n
\n

서비스 예약 전날 18:00 이전 변경 및 취소

\n

\n 취소 시 수수료 10,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

당일 예약 변경 및 취소

\n

\n 취소 시 수수료 15,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

서비스 시작 2시간 전 이내 변경 및 취소

\n

\n 취소 시 수수료 20,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

노쇼(No-Show)의 경우

\n

회원 자격 정지 및 민/형사상 책임 소지를 물을 수 있음

\n
\n
\n
\n \n \n }\n >\n \n

\n 회사측의 과실로 예약된 서비스를 이용하지 못한 경우 서비스 요금을 전액 배상해드리며, 상황에 따라 서비스 무료 이용권\n 등의 추가 배상을 진행합니다.\n

\n
\n \n }\n >\n \n

\n 예약 접수 후 동행인 매칭이 완료되면 ‘마이페이지’ 내에서 동행인의 정보를 확인하실 수 있으며, 해당 정보를 통해\n 동행인과 서비스 관련 소통을 진행하시면 됩니다.\n

\n
\n \n\n }\n >\n \n

\n 위드메이트 서비스는 후불제이기 때문에 예약한 서비스 시간을 넘어 추가 서비스가 이루어지는 경우, 해당 시간만큼의 추가\n 비용이 발생합니다. 서비스 종료 후 추가된 금액이 포함된 최종 요금을 결제하시면 됩니다. 추가 비용은 서비스 시간 15분\n 미만 초과 시 발생하지 않으며, 15분을 초과할 시 30분 단위의 요금이 발생합니다.\n
\n (Ex. 2시간 예약 서비스가 최종 2시간 14분으로 종료 > 추가 요금 발생 X)\n
\n (Ex. 2시간 예약 서비스가 최종 2시간 16분으로 종료 > 추가 요금 발생 O)\n

\n
\n \n\n }\n >\n \n

\n 위드메이트의 모든 서비스는 주 5일 (월~금), 1일 10시간 (오전 9시 ~ 오후 7시) 동안 이용 가능합니다. 주말 및 공휴일에는\n 서비스 제공을 하지 않습니다. 하지만 특수 예약에 대해서는 해당 시간 외에도 서비스를 제공할 수 있습니다.\n

\n
\n \n \n
\n

병원 동행 Pro FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 병원 동행 Pro는 응급 상황에 처하지는 않았으나 정기적, 혹은 비정기적으로 의료 기관에 방문해 의료 조치를 받아야 하는\n 경우에 신청 가능합니다.\n

\n
\n \n }\n >\n \n

\n 병원 동행 Pro 서비스 요금은 시간 당 25,000원입니다. 또, 고객 소유의 차량을 메이트가 운행하여 동행할 경우 20,000원이\n 추가됩니다 (택시 등 대중 교통을 이용할 경우 추가 요금은 없으나 해당 교통비 개별 부담). 모든 서비스 비용은 VAT 포함\n 가격입니다.\n
\n (Ex. 2시간 예약 + 고객 소유 차량 운행 선택 시 > 기본 요금 50,000원 + 차량 운행비 20,000원 = 70,000원)\n

\n
\n \n\n }\n >\n \n

남성과 여성 인력이 모두 대기 중입니다.

\n
\n \n }\n >\n \n

\n 예약일과 시간에 맞춰 위드메이트 소속의 동행인이 병원 출발지(고객님 자택 등)로 도착합니다. 이후 서비스 신청에 따라\n 고객 소유의 차량을 통해 이동할 경우 동행인이 차량을 운행하고 병원까지 이동하며(택시 등의 대중 교통 이용 시 해당 비용\n 자가 부담), 병원 내에서 이루어지는 모든 활동에 동행합니다.\n

\n
\n \n\n }\n >\n \n

\n 동행인은 철저하게 선별되고 영업배상책임보험에 가입되어 있으며, 위드메이트가 자체적으로 실시하는 엄격한 서비스 교육을\n 모두 이수하고 통과한 전문가입니다. 또, 위드메이트의 동행인은 국립 암센터에서 실시하는 주기적인 암 환자 관리 교육 및\n 세미나에 지속적으로 참여해 서비스 품질과 전문성이 보장된 인력들입니다.\n

\n
\n \n }\n >\n \n

\n 중증 또는 휠체어 등의 의료 기구 대동이 필요한 환자에 대한 비응급 의료 동행 서비스는 준비 중에 있습니다. 현\n 서비스로는 해당 인원과의 동행은 불가하며, 예약이 접수된 경우 개별적인 연락을 통해 예약 불가를 알려드립니다.\n

\n
\n \n \n }\n >\n \n

\n 방사선이나 암 치료와 같이 주기적으로 내원이 필요한 경우 개별 상담을 통해 예약이 가능합니다. 위드메이트 서비스를 장기\n 예약할 경우 특별 할인 혜택 또한 제공되고 있습니다. 서비스 센터로 문의 주실 경우 위드메이트의 전문 상담원이\n 안내해드립니다.\n

\n
\n \n \n
\n

병원 동행 Basic FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 병원 동행 Basic은 주로 수술의 범주에는 속하지 않지만 마취 혹은 단순 보호자가 필요한 수면 내시경 등을 포함한 모든\n 종류의 시술을 해야 할 경우에 신청합니다. 물론 Pro 서비스를 받아야 하지만 자택에서 병원, 다시 병원에서 자택까지의\n 동행 과정을 필요로 하지 않는 상황에서도 신청이 가능합니다.\n

\n
\n \n }\n >\n \n

\n 병원 동행 Basic 요금은 시간 당 15,000원입니다. (Ex. 2시간 예약 시 30,000원)\n
모든 서비스 비용은 VAT 포함 가격입니다.\n

\n
\n \n }\n >\n \n

병원 동행 Basic 서비스 동행인은 Pro 서비스와 동일한 인력으로 구성되어 있습니다.

\n
\n \n }\n >\n \n

남성과 여성 인력이 모두 대기 중입니다.

\n
\n \n }\n >\n \n

\n 고객님께서 지정하신 병원에서 동행자와 접선 후, 동행자는 예약자의 진료 접수부터 종료 시점까지 병원 내부에서\n 대기합니다. 진료 종료 후, 동행자는 예약자의 의사를 확인한 후 업무를 마치고 복귀합니다.\n

\n
\n \n \n
\n
\n
\n
\n );\n }\n}\n\nconst PanelHeader = ({ rowIndex, title }) => {\n return (\n
\n

{rowIndex}

\n

{title}

\n
\n );\n};\n\nconst PanelContent = ({ children }) => {\n return
{children}
;\n};\n","import React from 'react';\nimport StyledFaqContainer from './faq.styled';\nimport FAQ from './faq';\n\nclass FAQContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\nexport default FAQContainer;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../../theme';\nconst StyledBuyContainer = styled.div`\n margin-top: 55px;\n\n .buy-container {\n min-height: 100vh;\n position: relative;\n width: 100%;\n background-color: #ebf9ff;\n background-image: url('/assets/images/main-bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 768px) {\n background-image: none;\n }\n\n .order-menu-wrapper {\n width: 50%;\n position: relative;\n max-width: 440px;\n min-width: 370px;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n // overflow: hidden;\n\n .mobile-close-button {\n display: none;\n }\n\n .ant-input-number {\n width: 100%;\n height: 48px;\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n input {\n height: 100%;\n }\n }\n\n .ant-input-number-handler-wrap {\n opacity: 1;\n width: 48px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n\n i {\n position: relative;\n margin-top: 0px;\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n font-size: 16px;\n }\n }\n .anticon.anticon-up.ant-input-number-handler-up-inner {\n color: ${mainColor};\n }\n .anticon.anticon-down.ant-input-number-handler-down-inner {\n color: ${mainColor};\n }\n }\n }\n\n @media (max-width: 768px) {\n margin: 0px auto;\n width: 100%;\n }\n\n .order-title {\n margin-bottom: 20px;\n\n p {\n margin: 0px;\n padding: 0px;\n font-size: ${sizeHandler(28)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .fee-wrapper {\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n\n p {\n margin: 0px;\n padding: 0px;\n\n &.info {\n flex: 1;\n font-size: 14px;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n &.fee {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n .total-wrapper {\n display: flex;\n align-items: center;\n padding: 20px 0px;\n margin-top: 16px;\n margin-bottom: 32px;\n border-top: 1px solid #e6e6e6;\n border-bottom: 1px solid #e6e6e6;\n\n p {\n margin: 0px;\n padding: 0px;\n\n &.info {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n &.fee {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n text-align: right;\n color: #3bc1ff;\n }\n }\n }\n\n .service {\n margin-bottom: 20px;\n\n .service-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ddd;\n border-radius: 6px;\n\n .tab {\n flex: 1;\n height: 48px;\n border-right: 1px solid #ddd;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:last-child {\n border: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.2px;\n font-weight: bold;\n color: ${mainColor};\n }\n }\n\n .tab.active {\n background-color: ${mainColor};\n\n span {\n color: white;\n }\n }\n }\n\n .info-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n text-align: left;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n }\n\n .info-input-tab {\n display: flex;\n align-items: center;\n // justify-content: center;\n\n > div {\n flex: 1;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n\n .input {\n display: flex;\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n height: 36px;\n line-height: 36px;\n text-indent: 12px;\n align-items: center;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n background-color: #f5f5f5;\n cursor: not-allowed;\n\n // .ant-input {\n // color: rgba(0, 0, 0, 0.8);\n // }\n\n &.phone {\n flex: 0.5;\n\n @media (max-width: 768px) {\n flex: 1;\n }\n }\n\n &.input-with-icon {\n p {\n height: 100%;\n flex: 1;\n }\n\n div {\n height: 100%;\n width: 36px;\n border-left: 1px solid #e6e6e6;\n display: flex;\n justify-content: center;\n align-items: center;\n\n span {\n text-align: center;\n text-indent: 0px;\n opacity: 0.3;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n }\n }\n }\n\n .service-fee-wrapper {\n margin-bottom: 32px;\n\n .service {\n display: flex;\n align-items: center;\n padding-top: 12px;\n margin-bottom: 0px;\n\n .name {\n flex: 1;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n }\n\n .select {\n display: inline-block;\n height: 36px;\n width: 100%;\n\n .ant-select-selection--single {\n height: 100%;\n }\n\n .ant-select-selection__rendered {\n line-height: 36px;\n }\n }\n\n .info {\n font-size: ${sizeHandler(12)};\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n letter-spacing: -0.15px;\n }\n\n .ant-select-selection__rendered {\n margin-right: 34px;\n border-right: 1px solid #e6e6e6;\n }\n\n .ant-select-arrow {\n color: ${mainColor};\n }\n\n .image-with-text {\n display: flex;\n align-items: center;\n img {\n height: 18px;\n border: 0px;\n }\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n margin-left: 12px;\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: #3bc1ff;\n }\n }\n }\n\n .side-summary-tab {\n position: absolute;\n top: 0px;\n right: -380px;\n width: 360px;\n height: 100%;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n border-radius: 0px;\n box-shadow: none;\n padding: 0px;\n position: relative;\n top: 55px;\n left: 0px;\n background-color: transparent;\n }\n\n .refund-info-wrapper {\n flex: 1;\n display: flex;\n align-items: flex-end;\n\n .info-wrapper {\n width: 100%;\n\n .title {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: #a7a7a7;\n margin-bottom: 8px;\n }\n\n .info {\n font-size: ${sizeHandler(10)};\n line-height: ${sizeHandler(16)};\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n margin-top: 36px;\n padding-bottom: 20px;\n\n .info {\n margin-bottom: 60px;\n }\n }\n }\n }\n }\n }\n }\n`;\nexport default StyledBuyContainer;\n","import React from 'react';\nimport { Input, Button, InputNumber, message } from 'antd';\nimport { mainColor } from '../../../../theme';\nimport { UNEMER, ASSIST, MATE, DEV } from '../../../../Lib/variables';\nimport { currencyFormatter } from '../../../../Lib/utils';\nimport moment from 'moment';\n\nexport default class BuyTicket extends React.PureComponent {\n onEdit = ({ type, value }) => {\n this.props.edit({ type, value });\n };\n\n componentWillUnmount = () => {\n this.onEdit({ type: 'clear', value: '' });\n };\n\n payment = () => {\n const { id, name, userType } = this.props.auth;\n const { service, count } = this.props.app.buyForm;\n\n if (userType === MATE) return message.info('해당 서비스는 일반 사용자만 이용가능합니다.');\n if (!id) return this.props.history.push('/logout');\n\n this.props\n .getServiceInfo({ code: service })\n .then(resolve => {\n if (resolve && Array.isArray(resolve) && resolve.length > 0) {\n const { _id, defaultPrice } = resolve[0];\n const discount = count >= 10 ? count * defaultPrice * 0.1 : count >= 4 ? count * defaultPrice * 0.05 : 0;\n\n const totalPrice = defaultPrice * count - discount;\n\n const IMP = window.IMP; // 생략해도 괜찮습니다.\n IMP.init('imp47625929'); // \"imp00000000\" 대신 발급받은 \"가맹점 식별코드\"를 사용합니다.\n\n // IMP.request_pay(param, callback) 호출\n IMP.request_pay(\n {\n // param\n pg: 'inicis',\n pay_method: 'card',\n merchant_uid: _id + '-' + moment().valueOf(),\n name: service === UNEMER ? '병원 동행 Pro 이용권' : '병원 동행 Basic 이용권',\n amount: totalPrice,\n buyer_email: '',\n buyer_name: name,\n buyer_tel: '',\n m_redirect_url: `https://server.withmate.kr/v1/service/buy/ticket/${count}/${id}/${service}/mobile`,\n },\n function(rsp) {\n // callback\n if (rsp.success === true) {\n const productInfo = {\n productCode: service,\n totalPrice: rsp.paid_amount,\n productId: _id,\n name: rsp.name,\n merchantUid: rsp.merchant_uid,\n count,\n impUid: rsp.imp_uid,\n payMethod: rsp.pay_method,\n unit: rsp.currency,\n paidStatus: rsp.paid === 'paid' ? true : false,\n cardName: rsp.card_name,\n bankName: rsp.bank_name,\n cardQuota: rsp.card_quota, // 할부 월수\n buyerEmail: rsp.buyer_email,\n };\n\n this.props\n .buyTicket({ userId: id, info: productInfo })\n .then(resolve => {\n if (resolve && resolve !== 'success') {\n return message.error('결제가 정상적으로 수행되지 않았습니다. 새로고침 후 다시 시도해주세요.');\n }\n\n if (resolve && resolve === 'success') {\n message.success('상품 구매를 완료하였습니다. 서비스를 예약해보세요.');\n return this.props.history.push('/');\n }\n })\n .catch(error => {\n message.error('상품 결제이력 등록 중 오류가 발생하였습니다. 관리자에게 문의하여 주시기 바랍니다.');\n });\n } else {\n return message.error('결제 시도 중 오류가 발생하였습니다. 다시 시도해주세요.');\n }\n },\n );\n } else {\n return message.info('현재 판매 마감된 상품입니다. 다른 상품을 고매해주세요.');\n }\n })\n .catch(error => {\n return message.error('결제 시도 중 오류가 발생하였습니다. 다시 시도해주세요.');\n });\n };\n\n render() {\n const { service, count } = this.props.app.buyForm;\n const discount =\n count >= 10 ? count * (service === UNEMER ? 120000 : 18000) * 0.1 : count >= 4 ? count * (service === UNEMER ? 120000 : 18000) * 0.05 : 0;\n return (\n
\n
\n
\n
\n

서비스 이용을 위해

\n

이용권을 구매해주세요

\n
\n
\n

\n \n 서비스 선택\n

\n
\n {\n this.onEdit({ type: 'service', value: UNEMER });\n this.onEdit({ type: 'count', value: 1 });\n }}\n >\n 비응급 동행\n
\n {\n this.onEdit({ type: 'service', value: ASSIST });\n this.onEdit({ type: 'count', value: 1 });\n }}\n >\n 위드 어시스트\n
\n
\n
\n\n
\n

이용권 구매 수량

\n
\n {\n if (typeof val !== 'number') return null;\n\n this.onEdit({ type: 'count', value: val });\n }}\n formatter={() => {\n return `${service === UNEMER ? '병원 동행 Pro x ' : '병원 동행 Basic x '}${count}`;\n }}\n />\n
\n
\n\n
\n

{service === UNEMER ? '병원 동행 Pro' : '병원 동행 Basic'} 이용권 비용

\n

{service === UNEMER ? '120,000 KRW' : '18,000 KRW'}

\n
\n\n
\n

구매 수량

\n

x {count}

\n
\n\n {count >= 4 ? (\n
\n

할인액

\n

\n {currencyFormatter(discount)}\n KRW ({count >= 10 ? 10 : count >= 4 ? 5 : 0}%)\n

\n
\n ) : null}\n\n
\n

Total

\n

{currencyFormatter(count * (service === UNEMER ? 120000 : 18000) - discount)} KRW

\n
\n\n
\n \n
\n
\n
\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledBuyContaeinr from './buy.styled';\nimport Buy from './buy';\n\nimport { MATE } from '../../../../Lib/variables';\nimport { editBuyForm, getServiceInfo, buyTicket } from '../../../../Reducer/Modules/app';\n\nclass BuyTicketPage extends React.PureComponent {\n componentDidMount = () => {\n const { id, userType } = this.props.auth;\n if (!id || userType === MATE) this.props.history.goBack();\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapDispatchToProps = dispatch => ({\n edit: ({ value, type }) => dispatch(editBuyForm({ type, value })),\n getServiceInfo: ({ code }) => dispatch(getServiceInfo({ code })),\n buyTicket: ({ userId, info }) => dispatch(buyTicket({ userId, info })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BuyTicketPage);\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\nimport Buy from './ProductPages/Buy';\n\nexport default class ProductRenderPages extends React.PureComponent {\n render() {\n const { url } = this.props.match;\n return (\n \n \n \n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport Products from './product';\n\nclass ProductPages extends React.PureComponent {\n render() {\n return ;\n }\n}\n\nconst mapStateToProps = ({}) => ({});\n\nconst mapStateToDispatch = dispatch => ({});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(ProductPages);\n","import styled from 'styled-components';\n\nexport const ValueBox = styled.div`\n margin-bottom: 16px;\n\n .switch {\n margin-right: 10px;\n }\n\n .slide-img-div {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n border: 2px dashed #ccc;\n border-radius: 5px;\n margin-bottom: 10px;\n\n .slide-img-desc {\n bottom-margin: 20px;\n }\n\n .slide-img-preview {\n position: relative;\n \n .upload-img {\n max-width: 200px;\n max-height: auto;\n margin-top: 10px;\n pointer-evnets: none;\n }\n \n .icon-div {\n position: absolute;\n padding-bottom: 30px;\n right: 0;\n \n .delete-btn {\n border: none;\n font-size: 18px;\n }\n }\n }\n }\n }\n`;\n\nconst ReservePageContainer = styled.div`\n width: 100%;\n min-height: 100vh;\n\n padding-top: 54px;\n // padding-bottom: 54px;\n`;\n\nconst ResrevePageInnerContainer = styled.div`\n width: 1120px;\n margin: 0 auto;\n\n ${props => props.bg && `background-image: url(${props.bg}); background-size: contain; background-position: 50% 80%; background-repeat: no-repeat;`}\n\n padding-top: ${props => (props.smallPadding ? '0px' : '48px')};\n padding-bottom: ${props => (props.smallPadding ? '0px' : '188px')};\n\n @media (max-width: 768px) {\n width: 100%;\n padding-top: 24px;\n padding-bottom: 30px;\n ${props => props.bg && `background-image: transparent; background-color: ${props.mobileBg ? props.mobieBg : '#ffffff'};`}\n }\n`;\n\nconst ResrevePageHalfInnerContainer = styled.div`\n margin: 0 auto;\n width: 1120px;\n margin-right: auto;\n margin-left: auto;\n padding: 15px;\n\n ${props => props.bg && `background-image: url(${props.bg}); background-size: cover; background-position: 50% 80%; background-repeat: no-repeat;`}\n\n padding-top: ${props => (props.smallPadding ? '0px' : '10px')};\n padding-bottom: ${props => (props.smallPadding ? '0px' : '30px')};\n\n @media (max-width: 768px) {\n width: 100%;\n padding-top: 24px;\n padding-bottom: 48px;\n ${props => props.bg && `background-image: transparent; background-color: ${props.mobileBg ? props.mobieBg : '#ffffff'};`}\n }\n`;\n\nconst ReserveTopCover = styled.div`\n background: ${props =>\n props.isMain ? `url('/assets/images/w_reserve_web.png') no-repeat top center` : `url('/assets/images/w_reserve_m.png') no-repeat top center`};\n background-size: cover;\n\n @media (max-width: 768px) {\n ${props => !props.isMain && `display: none;`}\n }\n`;\nexport { ReserveTopCover, ReservePageContainer, ResrevePageInnerContainer, ResrevePageHalfInnerContainer };\n\nconst TopBannerSubDescription = styled.div`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ffffff;\n margin-top: 8px;\n`;\n\nconst TopBannerSection = styled.div`\n width: 100%;\n\n padding-top: ${props => (props.isMain ? '110px' : '86px')};\n padding-bottom: ${props => (props.isMain ? '0px' : '67px')};\n\n text-align: center;\n\n @media (max-width: 768px) {\n text-align: center;\n ${props => props.bg === '#f9f9f9' && `display: none;`}\n padding-top: 56px;\n }\n`;\n\nconst TopBannerText = styled.h3`\n margin-top: 0px;\n margin-bottom: 2px;\n\n font-size: 32px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: center;\n color: #ffffff;\n\n > span {\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: left;\n color: #ffffff;\n }\n\n @media (max-width: 768px) {\n font-size: 24px;\n\n > span {\n font-size: 24px;\n }\n }\n`;\n\nconst TopBannerDescription = styled.div`\n padding: 8px 24px;\n width: fit-content;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: center;\n background-color: #3bc1ff;\n color: #ffffff;\n\n border-radius: 50vh;\n margin: 0 auto;\n margin-bottom: 16px;\n`;\n\nexport { TopBannerSection, TopBannerText, TopBannerDescription };\n\nconst StepSectionContainer = styled.div`\n padding-top: 32px;\n padding-bottom: 32px;\n\n background-color: #ffffff;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst StepButtonWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst StepButton = styled.button`\n width: 200px;\n height: 64px;\n line-height: 64px;\n border: 0px;\n outline: none;\n\n border-radius: 50vh;\n cursor: not-allowed;\n\n text-align: center;\n font-size: 18px;\n letter-spacing: -0.1px;\n\n ${props =>\n props.active\n ? `\n background-color: #3bc1ff;\n color: #ffffff;\n `\n : `\n background-color: #e6e6e6;\n color:#afb0b2;`}\n\n @media (max-width: 768px) {\n width: 192px;\n height: 52px;\n line-height: 52px;\n font-size: 14px;\n letter-spacing: normal;\n }\n`;\n\nconst UnderLineText = styled.span`\n cursor: pointer;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: #3bc1ff;\n\n text-decoration: underline;\n`;\n\nconst StepArrow = styled.img`\n width: 16px;\n height: 16px;\n object-fit: contain;\n\n margin-left: 8px;\n margin-right: 8px;\n\n @media (max-width: 768px) {\n transform: rotate(90deg);\n widteh: 24px;\n height: 24px;\n margin-left: 0px;\n margin-right: 0px;\n margin-top: 8px;\n margin-bottom: 8px;\n }\n`;\n\nexport { UnderLineText, TopBannerSubDescription, StepSectionContainer, StepButtonWrapper, StepButton, StepArrow };\n\nconst NextStepGudieContainer = styled.div`\n width: 100%;\n\n padding-top: 56px;\n padding-bottom: 42px;\n\n ${props => props.useBg && `background-color: rgba(242,242,242,0.3);`}\n text-align: center;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n // margin-bottom: 48px;\n\n @media (max-width: 768px) {\n padding-top: 24px;\n padding-bottom: 24px;\n\n // margin-bottom: 24px;\n }\n`;\n\nconst NextStepEmoj = styled.img`\n width: 64px;\n height: 64px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n width: 32px;\n height: 32px;\n }\n`;\n\nconst NextStepTitle = styled.h4`\n margin-top: 24px;\n margin-bottom: 16px;\n\n font-size: 36px;\n line-height: 48px;\n color: ${props => props.color};\n letter-spacing: -0.7px;\n text-align: center;\n font-weight: bold;\n\n @media (max-width: 768px) {\n margin-top: 16px;\n\n font-size: 22px;\n line-height: 30px;\n letter-spacing: -0.5px;\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nconst DesktopBr = styled.br`\n display: block;\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst NextStepArrowDown = styled.img`\n width: 48px;\n height: 48px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n width: 24px;\n height: 24px;\n }\n`;\n\nexport { NextStepGudieContainer, NextStepEmoj, NextStepTitle, NextStepArrowDown };\n\nconst ServiceSectionContainer = styled.div`\n position: relative;\n`;\n\nconst ServiceSectionTitle = styled.h5`\n font-size: 28px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n font-weight: bold;\n margin-bottom: 16px;\n\n @media (max-width: 768px) {\n font-size: 22px;\n }\n`;\n\nconst ServiceSectionDescription = styled.p`\n margin-bottom: 52px;\n\n font-size: 16px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n letter-spacing: -0.2px;\n line-height: 28px;\n\n @media (max-width: 768px) {\n font-size: 15px;\n line-height: 23px;\n letter-spacing: -0.3px;\n\n margin-bottom: 48px;\n }\n`;\n\nexport { ServiceSectionContainer, ServiceSectionTitle, ServiceSectionDescription };\n\nconst ServiceCardList = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n padding-bottom: 80px;\n\n > div:nth-child(5n) {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n justify-content: flex-start;\n padding-left: 16px;\n padding-right: 16px;\n\n > div:nth-child(5n) {\n margin-right: 12px;\n }\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n`;\n\nconst ServiceCardWrapper = styled.div`\n width: 216px;\n height: 234px;\n\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: ${props => (props.on ? '4px solid #3bc1ff' : '1px solid #e6e6e6')};\n padding: ${props => (props.on ? '13px' : '16px')};\n background-color: #ffffff;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n\n margin-right: 10px;\n margin-bottom: 10px;\n\n > img {\n width: 144px;\n height: 144px;\n object-fit: contain;\n\n margin-bottom: 4px;\n }\n\n @media (max-width: 768px) {\n width: calc(50% - 6px);\n height: 195px;\n\n margin-right: 12px;\n margin-bottom: 10px;\n\n padding: 4px;\n\n padding-top: ${props => (props.on ? '12px' : '15px')};\n padding-bottom: ${props => (props.on ? '12px' : '15px')};\n\n > img {\n // width: 100%;\n // max-height: 120px\n width: 120px;\n height: 120px;\n\n margin-bottom: 2px;\n }\n }\n`;\n\nconst ServiceCardButton = styled.div`\n display: inline-block;\n\n width: 100%;\n max-width: 184px;\n height: 48px;\n line-height: 48px;\n\n cursor: pointer;\n\n font-size: 18px;\n letter-spacing: -0.1px;\n color: #3bc1ff;\n background-color: #ffffff;\n border-radius: 50vh;\n text-align: center;\n border: 1px solid #afb0b2;\n\n &:hover {\n transition: all 0.25s;\n color: #ffffff;\n background-color: #3bc1ff;\n }\n\n &.selected {\n color: #ffffff;\n background-color: #3bc1ff;\n }\n\n @media (max-width: 768px) {\n font-size: 16px;\n max-width: 130px;\n\n height: 40px;\n line-height: 40px;\n\n &:hover {\n transition: none;\n color: #3bc1ff;\n background-color: #ffffff;\n }\n\n &.selected {\n color: #ffffff;\n background-color: #3bc1ff;\n }\n }\n`;\n\nexport { ServiceCardList, ServiceCardWrapper, ServiceCardButton };\n\nconst ZzzServiceWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n padding: 32px;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: 1px solid #e6e6e6;\n\n @media (max-width: 768px) {\n width: calc(100% - 32px);\n margin: 0 auto;\n }\n`;\n\nconst ZzzArt = styled.img`\n width: 200px;\n height: 160px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n width: 175px;\n height: 140px;\n\n margin-bottom: 16px;\n }\n`;\n\nconst ZzzDescription = styled.div`\n margin-bottom: 8px;\n\n font-weight: bold;\n font-size: 20px;\n letter-spacing: -0.1px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 16px;\n margin-bottom: 16px;\n text-align: center;\n }\n`;\n\nexport { ZzzServiceWrapper, ZzzArt, ZzzDescription };\n\nconst AlzheServiceWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n padding: 32px;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: 1px solid #e6e6e6;\n\n @media (max-width: 768px) {\n width: calc(100% - 32px);\n margin: 0 auto;\n }\n`;\n\nconst AlzheArt = styled.img`\n width: 200px;\n height: 160px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n width: 175px;\n height: 140px;\n\n margin-bottom: 16px;\n }\n`;\n\nconst AlzheDescription = styled.div`\n margin-bottom: 8px;\n\n font-weight: bold;\n font-size: 20px;\n letter-spacing: -0.1px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 16px;\n margin-bottom: 16px;\n text-align: center;\n }\n`;\n\nexport { AlzheServiceWrapper, AlzheArt, AlzheDescription };\n\nconst ServiceTypeSectionContainer = styled.div`\n width: 100%;\n position: relative;\n\n padding-top: 36px;\n ${props => props.gap && `padding-bottom: 54px;`}\n\n ${props => props.bg && `background-image: url(${props.bg}); background-size: contain; background-position: right; background-repeat: no-repeat;`}\n\n @media (max-width: 768px) {\n ${props => props.bg && `background-image: transparent; background-color: ${props.mobileBg ? props.mobieBg : '#ffffff'};`}\n }\n`;\n\nconst ServiceTypeWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n > div:last-child {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n\n > div:last-child {\n margin-bottom: 0px;\n margin-right: auto;\n }\n }\n`;\n\nexport { ServiceTypeSectionContainer, ServiceTypeWrapper };\n\nconst ServiceTypeCardWrapper = styled.div`\n width: 368px;\n height: 410px;\n padding: 16px;\n border-radius: 4px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n border: 4px solid ${props => (props.selected ? '#3bc1ff' : '#e6e6e6')};\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n margin-right: 8px;\n\n @media (max-width: 768px) {\n margin-right: auto;\n margin: 0 auto;\n margin-bottom: 10px;\n\n width: calc(100% - 32px);\n height: auto;\n border: 1px solid ${props => (props.selected ? '#3bc1ff' : '#e6e6e6')};\n }\n`;\n\nconst ServiceTypeCardImg = styled.img`\n width: 140px;\n height: 140px;\n object-fit: cover;\n`;\n\nconst ServiceTypeName = styled.span`\n margin-top: 11px;\n margin-bottom: 8px;\n\n font-size: 24px;\n font-weight: bold;\n text-align: center;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 22px;\n line-height: 1.42;\n letter-spacing: -0.5px;\n\n margin-top: 0px;\n margin-bottom: 0px;\n }\n`;\n\nconst ServiceTypeDescription = styled.div`\n word-break: keep-all;\n font-size: 15px;\n text-align: center;\n letter-spacing: -0.3px;\n margin-bottom: 36px;\n\n max-width: 204px;\n`;\n\nconst NextStepButton = styled.div`\n width: 280px;\n height: 72px;\n line-height: 72px;\n text-align: center;\n\n margin: 0 auto;\n margin-top: 100px;\n\n border-radius: 50vh;\n cursor: pointer;\n\n background-color: ${props => (props.on ? '#3bc1ff' : '#e6e6e6')};\n color: ${props => (props.on ? '#ffffff' : '#afb0b2')};\n font-size: 22px;\n letter-spacing: -0.5px;\n\n @media (max-width: 768px) {\n height: 55px;\n line-height: 55px;\n font-size: 16px;\n letter-spacing: -0.1px;\n\n margin-top: 56px;\n }\n`;\n\nconst LastStepButton = styled(NextStepButton)`\n @media (max-width: 768px) {\n margin-top: 32px;\n margin-bottom: 32px;\n }\n`;\nexport { MobileBr, DesktopBr, NextStepButton, LastStepButton, ServiceTypeCardWrapper, ServiceTypeCardImg, ServiceTypeName, ServiceTypeDescription };\n\nconst FormContainer = styled.div`\n width: 100%;\n background-color: #f9f9f9;\n\n padding-top: 68px;\n padding-bottom: 80px;\n\n background-image: url('/assets/images/artwork_both_bg.png');\n background-size: contain;\n background-position: 50% 70%;\n background-repeat: no-repeat;\n\n @media (max-width: 768px) {\n background: transparent;\n\n padding-top: 0px;\n padding-bottom: 0px;\n }\n`;\n\nconst FormWrapper = styled.div`\n width: 646px;\n margin: 0 auto;\n background-color: #ffffff;\n border: 1px solid #e6e6e6;\n border-radius: 8px;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n padding: 48px 32px;\n margin-bottom: 64px;\n\n @media (max-width: 768px) {\n width: 100%;\n border-radius: 0px;\n box-shadow: unset;\n border: 0px;\n\n padding: 32px 16px;\n margin-bottom: 0px;\n }\n\n .type-button-wrapper {\n width: 100%;\n height: 48px;\n\n background-color: white;\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n\n > .type-button {\n width: 50%;\n height: 100%;\n line-height: 48px;\n\n text-align: center;\n cursor: pointer;\n\n font-size: 16px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n }\n\n > .type-button.active {\n background: rgba(0, 0, 0, 0.7);\n border-radius: 4px;\n color: #f9f9f9;\n }\n }\n`;\n\nconst FormMainTitle = styled.h3`\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-top: 0px;\n margin-bottom: 16px;\n\n @media (max-width: 768px) {\n font-size: 22px;\n line-height: 1.42;\n letter-spacing: -0.5px;\n margin-bottom: 8px;\n }\n`;\n\nconst FormMainAlert = styled.p`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n\n margin-top: 0px;\n margin-bottom: 32px;\n\n word-break: keep-all;\n\n @media (max-width: 768px) {\n font-size: 14px;\n line-height: 1.58;\n letter-spacing: -0.3px;\n }\n`;\n\nexport { FormContainer, FormWrapper, FormMainTitle, FormMainAlert };\n\nconst ServiceName = styled.h5`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n color: #3bc1ff;\n\n margin-bottom: 40px;\n`;\n\nconst Sexes = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n line-height: 44px;\n\n > span {\n display: inline-block;\n cursor: pointer;\n\n flex: 1;\n height: 100%;\n border-radius: 4px;\n border: 1px solid #e9e9e9;\n\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n font-size: 14px;\n letter-spacing: -0.2px;\n\n margin-right: 8px;\n }\n\n > span.active {\n background-color: #3bc1ff;\n color: white;\n }\n\n > span:last-child {\n margin-right: 0px;\n }\n`;\n\nconst LabelDescription = styled.span`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: #afb0b2;\n margin-left: 4px;\n`;\n\nconst FlexFormWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n max-width: 1120px;\n margin: 0 auto;\n\n > div:first-child {\n margin-right: 20px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n\n > div:first-child {\n margin-right: 0px;\n margin-bottom: 0px;\n }\n }\n`;\n\nconst ResultFormWrapper = styled(FormWrapper)`\n width: auto;\n flex: 1;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst LabelAndValueRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ${props => props.borderColor && `border-bottom: 1px solid ${props.borderColor};`}\n\n padding-top: 8px;\n padding-bottom: 8px;\n`;\n\nconst LabelValue = styled.span`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 16px;\n ine-height: 1.42;\n }\n`;\n\nconst PriceValue = styled.span`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: right;\n color: #3bc1ff;\n\n @media (max-width: 768px) {\n font-size: 16px;\n ine-height: 1.42;\n }\n`;\n\nconst PriceDetailLabel = styled.span`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n padding-left: 12px;\n position: relative;\n\n > span {\n position: absolute;\n top: 0px;\n left: 0px;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: #cecfd0;\n }\n`;\n\nconst PriceDetailValue = styled.span`\n font-size: 16px;\n font-weight: ${props => (props.value ? 'bold' : 'normal')};\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.2px;\n text-align: right;\n color: ${props => (props.value ? '#3bc1ff' : '#afb0b2')};\n`;\n\nconst DashAndText = styled.div`\n display: flex;\n align-items: flex-start;\n\n img {\n width: 16px;\n height: 16px;\n margin-top: 4px;\n margin-right: 8px;\n }\n\n > a {\n color: #3bc1ff;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.58;\n letter-spacing: -0.3px;\n text-align: left;\n }\n\n > span {\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n word-break: keep-all;\n }\n\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n word-break: keep-all;\n\n ${props => props.alert && `color: #ff5500;`}\n\n @media (max-width: 768px) {\n font-size: 14px;\n\n > span {\n font-size: 14px;\n }\n }\n`;\nexport {\n DashAndText,\n LabelValue,\n PriceDetailLabel,\n PriceDetailValue,\n ServiceName,\n LabelAndValueRow,\n PriceValue,\n Sexes,\n LabelDescription,\n FlexFormWrapper,\n ResultFormWrapper,\n};\n\nconst CongraturateLogo = styled.div`\n width: 100%;\n height: auto;\n\n text-align: center;\n\n margin-top: 12px;\n margin-bottom: 12px;\n\n > img {\n width: 200px;\n height: 200px;\n }\n`;\n\nconst DoneResultWrapper = styled.div`\n padding-top: 40px;\n padding-bottom: 40px;\n border-bottom: 1px solid #e9e9e9;\n`;\n\nconst MobileStepImage = styled.div`\n display: none;\n @media (max-width: 768px) {\n display: block;\n margin-top: 32px;\n text-align: center;\n width: 100%;\n\n > img {\n margin: 0 auto;\n width: 174px;\n height: 174px;\n }\n }\n`;\n\nexport { CongraturateLogo, MobileStepImage, DoneResultWrapper };\n","import React from 'react';\nimport styled from 'styled-components';\nimport { mainColor } from '../../../theme';\n\nexport const Container = styled.div`\n width: 100vw;\n height: auto;\n padding-top: 55px;\n`;\n\nexport const TopWrapper = styled.div`\n width: 100%;\n height: auto;\n\n // background-image: url('/assets/images/main-background.png');\n // background-position: center;\n // background-repeat: no-repeat;\n // background-size: cover;\n background-color: #80abff;\n`;\n\nexport const BottomWrapper = styled.div`\n width: 100%;\n background-color: white;\n`;\n\nexport const InnerContainer = styled.div`\n max-width: 1080px;\n margin: 0 auto;\n\n padding: 80px 0px;\n position: relative;\n\n img.bg {\n width: auto;\n height: 100%;\n\n position: absolute;\n top: 0px;\n right: 0px;\n }\n\n @media (max-width: 1080px) {\n padding: 80px 16px;\n img.bg {\n display: none;\n }\n\n br {\n display: block;\n }\n }\n\n @media (max-width: 768px) {\n padding: 80px 16px;\n\n br {\n display: block;\n }\n }\n`;\n\nexport const Logo = styled.img`\n display: inline-block;\n width: 200px;\n object-fit: contain;\n`;\n\nexport const Title = styled.p`\n margin-bottom: 24px;\n\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n`;\n\nexport const MediumText = styled.p`\n margin-bottom: 8px;\n\n font-size: 36px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.7px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-size: 36px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.7px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #000000;\n }\n`;\n\nexport const Noti = styled.div`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.15px;\n text-align: left;\n color: rgba(0, 0, 0, 0.6);\n word-break: keep-all;\n`;\n\nexport const ApplyButton = styled.span`\n padding: 14px 28px;\n background-color: #3bc1ff;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.4;\n letter-spacing: -0.1px;\n text-align: center;\n color: #ffffff;\n\n border-radius: 4px;\n min-width: 230px;\n overflow: hidden;\n\n display: inline-block;\n margin-top: 42px;\n cursor: pointer;\n\n &:hover {\n transition: all 0.5s;\n background-color: ${mainColor};\n color: white;\n }\n`;\n\nexport const LargeText = styled.p`\n margin-bottom: 0px;\n\n font-weight: bold;\n color: #ffffff;\n font-size: 32px;\n\n padding: 2.5px;\n border-bottom: 4px solid #ffffff;\n display: inline-block;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n\n > div {\n flex: 1;\n margin-bottom: 32px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const FlexTitle = styled.p`\n display: inline-block;\n\n font-size: 16px;\n font-weight: bold;\n color: #161616;\n\n padding: 12px;\n border-bottom: 0.5px solid #161616;\n\n margin-bottom: 20px;\n`;\n\nexport const Contact = styled.p`\n margin-bottom: 8px;\n\n font-weight: bold;\n color: #161616;\n font-size: 20px;\n`;\n\nexport const ContactTime = styled.p`\n font-weight: bold;\n color: #161616;\n font-size: 12px;\n`;\n\nexport const Link = styled.a`\n display: inline-block;\n margin-bottom: 8px;\n\n color: #565656;\n font-size: 12px;\n font-weight: bold;\n text-decoration: underline;\n`;\n","import React from 'react';\nimport { message } from 'antd';\nimport axios from '../../Lib/axios';\n\nimport { DivisionLine, WithmateInput, WithmateLabel } from '../../Components/Common/input';\nimport { FlexFormWrapper, FormMainTitle, FormWrapper, LabelAndValueRow, PriceDetailLabel, PriceDetailValue, ResultFormWrapper, ServiceName, Sexes } from '../Reserve/reserve.styled';\nimport { FlexWrapper } from '../Apply/Ready/ready.styled';\nimport { HalfWidthButton } from '../../Components/Common/button';\n\nclass LongTermCareComponent extends React.PureComponent {\n state = {\n name: '',\n age: '',\n contact: '',\n sex: '',\n region: '',\n gradePresence: '',\n gradeLevel: ''\n };\n\n onLongTermCare = async () => {\n const userId = localStorage.getItem('id');\n const { name, age, contact, sex, region, gradePresence, gradeLevel } = this.state;\n\n if (!name) {\n return this.setState({\n modal: true,\n modalTitle: '이름을 입력해주세요.',\n modalInfo: '장기요양등급 상담하시는분의 이름을 입력해주세요.',\n });\n }\n\n if (!age) {\n return this.setState({\n modal: true,\n modalTitle: '나이를 입력해주세요.',\n modalInfo: '장기요양등급 상담하시는분의 나이를 입력해주세요.',\n });\n }\n\n if (!contact) {\n return this.setState({\n modal: true,\n modalTitle: '연락처를 입력하세요.',\n modalInfo: '장기요양등급 상담하시는분의 연락처를 입력해주세요.',\n });\n }\n\n if (!sex) {\n return this.setState({\n modal: true,\n modalTitle: '성별을 선택하세요.',\n modalInfo: '장기요양등급 상담하시는분의 성별을 선택해주세요.',\n });\n }\n\n if (!region) {\n return this.setState({\n modal: true,\n modalTitle: '거주지 지역을 입력하세요.',\n modalInfo: '장기요양등급 상담하시는 분의 거주지 지역을 입력해주세요.',\n });\n }\n\n if (!gradePresence) {\n return this.setState({\n modal: true,\n modalTitle: '요양등급 유무를 선택하세요.',\n modalInfo: '요양등급 유무를 선택해주세요.',\n });\n }\n\n\n const { data } = await axios.post('/v1/longTermCare/add', { userId, name, age, contact, sex, region, gradePresence, gradeLevel });\n\n if (!data) return message.error('죄송합니다. 일시적인 서버 장애가 발생하였습니다.');\n if (data === 'check parameters') return message.warning('필수 정보들을 입력해주세요.');\n if (data === 'success') {\n message.success('장기요양등급 신청서 작성이 완료되었습니다. 빠른 시일내에 상담 연락드리겠습니다.');\n setTimeout(() => {\n this.props.history.push('/');\n }, 600);\n }\n };\n\n handleChange = e => {\n this.setState({ [e.target.title]: e.target.value });\n };\n\n render() {\n return (\n
\n \n \n 장기요양 등급 상담 신청서\n 장기요양 등급 신청서를 작성하시면 상담신청이 가능합니다.\n\n \n
\n 이름\n \n
\n   \n
\n 나이\n \n
\n
\n\n \n
\n 연락처\n \n
\n   \n
\n 성별\n \n {\n this.handleChange({ target: { title: 'sex', value: '남성' } });\n }}\n >\n 남성\n \n {\n this.handleChange({ target: { title: 'sex', value: '여성' } });\n }}\n >\n 여성\n \n \n
\n
\n\n \n
\n 지역\n \n
\n
\n\n \n
\n 요양등급 유무\n \n {\n this.handleChange({ target: { title: 'gradePresence', value: '있다' } });\n }}\n >\n 있다\n \n {\n this.handleChange({ target: { title: 'gradePresence', value: '없다' } });\n }}\n >\n 없다\n \n \n
\n   \n {this.state.gradePresence === '있다' ? <>\n
\n 등급을 입력하세요\n \n
\n : null}\n
\n
\n\n \n 신청 내역\n\n \n \n\n \n \n\n \n * 이름\n {this.state.name}\n \n \n * 나이\n {this.state.age + ' 세'}\n \n \n * 연락처\n {this.state.contact}\n \n \n * 성별\n {this.state.sex}\n \n \n * 지역\n {this.state.region}\n \n \n * 장애등급 유무\n {this.state.gradePresence}\n \n {this.state.gradePresence == '있다' ? <>\n \n * 장애등급\n {this.state.gradeLevel}\n \n : null}\n\n \n \n 신청하기\n \n \n
\n
\n );\n }\n}\nexport default LongTermCareComponent;","import React from 'react';\nimport { AutoComplete, Button } from 'antd';\nimport styled from 'styled-components';\nimport { DivisionLine } from '../../Components/Common/input';\nimport Background from './login_bg.png';\nimport Checkpoint from './checkpoint.png';\n\nclass SuccessComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n
\n \n \n

회원가입이 완료 되었습니다.

\n
\n\n \n\n
\n
\n

※ 위드메이트의 서비스를 더욱 편리하게 사용할 수 있도록
\n 환자 프로필을 등록하실 수 있습니다.

\n
\n
\n \n \n
\n\n
\n \n    \n \n
\n \n
\n
\n
\n );\n }\n}\nexport default SuccessComponent;","// import React, { useState } from 'react';\n// import { Document, Page, pdfjs } from 'react-pdf';\n// import samplePDF from '../PDFfile/withmate_service_manual.pdf';\n// import './servicePDF.css';\n\n// pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\n// export default function ServicePDF() {\n// const [numPages, setNumPages] = useState(null);\n\n// function onDocumentLoadSuccess({ numPages }) {\n// setNumPages(numPages);\n// }\n\n// return (\n//
\n// \n// {Array.from(new Array(numPages), (el, index) => (\n// \n// ))}\n// \n//
\n// );\n// }\n\nimport React, { Component } from \"react\";\n\nexport default class ServicePDF extends Component {\n constructor() {\n super();\n this.state = {\n iFrameHeight: \"0px\"\n };\n }\n\n render() {\n return (\n
\n \n
\n );\n }\n}\n","import { message } from 'antd';\nimport React from 'react';\nimport ServiceManual from './servicePDF';\n\nclass ManualComponent extends React.PureComponent {\n componentDidMount = () => {\n if (!localStorage.getItem('id')) {\n message.warning('서비스 매뉴얼을 보시려면 로그인 후 이용해주세요.');\n return this.props.history.push('/user/login');\n }\n this.props.history.push('/service/manual');\n }\n\n render() {\n return (\n
\n \n
\n );\n }\n}\nexport default ManualComponent;","// import React, { useState } from 'react';\n// import { Document, Page, pdfjs } from 'react-pdf';\n// import samplePDF from '../PDFfile/withmate_platform_manual.pdf';\n// import './platformPDF.css';\n\n// pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\n// export default function PlatformPDF() {\n// const [numPages, setNumPages] = useState(null);\n\n// function onDocumentLoadSuccess({ numPages }) {\n// setNumPages(numPages);\n// }\n\n// return (\n//
\n// \n// {Array.from(new Array(numPages), (el, index) => (\n// \n// ))}\n// \n//
\n// );\n// }\n\nimport React, { Component } from \"react\";\n\nexport default class PlatformPDF extends Component {\n constructor() {\n super();\n this.state = {\n iFrameHeight: \"0px\"\n };\n }\n\n render() {\n return (\n
\n \n
\n );\n }\n}\n","import { message } from 'antd';\nimport React from 'react';\nimport PlatformManual from './platformPDF';\n\nclass ManualComponent extends React.PureComponent {\n componentDidMount = () => {\n if (!localStorage.getItem('id')) {\n message.warning('플랫폼 매뉴얼을 보시려면 로그인 후 이용해주세요.');\n return this.props.history.push('/user/login');\n }\n this.props.history.push('/platform/manual');\n }\n\n render() {\n return (\n
\n \n
\n );\n }\n}\nexport default ManualComponent;","import { Button } from 'antd';\nimport Title from 'antd/lib/typography/Title';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { WithmateLabel } from '../../../../Components/Common/input';\n\nexport const EduVideo1 = () => {\n return (\n \n \n
\n 메이트 온라인 교육영상
\n

* 해당 영상 화면을 클릭하시면 재생/일시정지가 가능합니다.


\n

온라인 교육영상을 모두 시청하신 후 아래 주소의 구글폼에 접속하셔서
\n 교육영상 문제를 풀고 제출하시면 확인 후 메이트 지원 합격안내를 해드립니다.\n

\n \n
\n 병원동행 매니저 교육 1: 병원 동행 서비스의 정의\n \n \n \n
\n
\n );\n};\n\nconst VideoSectionContainer = styled.div`\n padding-top: 105px;\n padding-bottom: 30px;\n\n width: 100%;\n\n @media (max-width: 768px) {\n text-align: center;\n padding-top: 100px;\n // padding-top: 10px;\n // padding-bottom: 0px;\n padding-bottom: 10px;\n }\n`;\n\nconst VideoSectionInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst VideoSectionTitle = styled.h4`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.6);\n\n margin-top: 0px;\n margin-bottom: 105px;\n\n @media (max-width: 768px) {\n font-size: 14px;\n margin-bottom: 68px;\n }\n`;\n\nconst VideoArea = styled.div`\n width: 100%;\n height: calc(1120px / 16 * 9);\n background-color: #000000;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 1120px) {\n height: calc(100vw / 16 * 9);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: calc(100vw / 16 * 9);\n background-color: #000000;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;","import React from 'react';\nimport styled from 'styled-components';\nimport { WithmateLabel } from '../../../../Components/Common/input';\n\nexport const EduVideo2 = () => {\n return (\n \n \n 병원동행 매니저 교육 2: 메이트 - 안전한 동행\n \n \n \n \n \n );\n};\n\nconst VideoSectionContainer = styled.div`\n padding-top: 105px;\n padding-bottom: 30px;\n\n width: 100%;\n\n @media (max-width: 768px) {\n // padding-top: 62px;\n padding-top: 10px;\n // padding-bottom: 0px;\n padding-bottom: 10px;\n }\n`;\n\nconst VideoSectionInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst VideoSectionTitle = styled.h4`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.6);\n\n margin-top: 0px;\n margin-bottom: 105px;\n\n @media (max-width: 768px) {\n font-size: 14px;\n margin-bottom: 68px;\n }\n`;\n\nconst VideoArea = styled.div`\n width: 100%;\n height: calc(1120px / 16 * 9);\n background-color: #000000;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 1120px) {\n height: calc(100vw / 16 * 9);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: calc(100vw / 16 * 9);\n background-color: #000000;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { WithmateLabel } from '../../../../Components/Common/input';\n\nexport const EduVideo3 = () => {\n return (\n \n \n 병원동행 매니저 교육 3: 위드메이트 플랫폼 사용 매뉴얼\n \n \n \n \n \n );\n};\n\nconst VideoSectionContainer = styled.div`\n padding-top: 105px;\n padding-bottom: 30px;\n\n width: 100%;\n\n @media (max-width: 768px) {\n // padding-top: 62px;\n padding-top: 10px;\n // padding-bottom: 0px;\n padding-bottom: 10px;\n }\n`;\n\nconst VideoSectionInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst VideoSectionTitle = styled.h4`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.6);\n\n margin-top: 0px;\n margin-bottom: 105px;\n\n @media (max-width: 768px) {\n font-size: 14px;\n margin-bottom: 68px;\n }\n`;\n\nconst VideoArea = styled.div`\n width: 100%;\n height: calc(1120px / 16 * 9);\n background-color: #000000;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 1120px) {\n height: calc(100vw / 16 * 9);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: calc(100vw / 16 * 9);\n background-color: #000000;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { WithmateLabel } from '../../../../Components/Common/input';\n\nexport const EduVideo4 = () => {\n return (\n \n \n 병원동행 매니저 교육 4: 메이트 학습 매뉴얼\n \n \n \n \n \n );\n};\n\nconst VideoSectionContainer = styled.div`\n padding-top: 105px;\n padding-bottom: 30px;\n\n width: 100%;\n\n @media (max-width: 768px) {\n // padding-top: 62px;\n padding-top: 10px;\n // padding-bottom: 0px;\n padding-bottom: 10px;\n }\n`;\n\nconst VideoSectionInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst VideoSectionTitle = styled.h4`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.6);\n\n margin-top: 0px;\n margin-bottom: 105px;\n\n @media (max-width: 768px) {\n font-size: 14px;\n margin-bottom: 68px;\n }\n`;\n\nconst VideoArea = styled.div`\n width: 100%;\n height: calc(1120px / 16 * 9);\n background-color: #000000;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 1120px) {\n height: calc(100vw / 16 * 9);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n height: calc(100vw / 16 * 9);\n background-color: #000000;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > iframe,\n video {\n width: 100%;\n height: 100%;\n }\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import { message } from 'antd';\nimport React from 'react';\nimport { EduVideo1 } from './VideoList/Video1';\nimport { EduVideo2 } from './VideoList/Video2';\nimport { EduVideo3 } from './VideoList/Video3';\nimport { EduVideo4 } from './VideoList/Video4';\n\nclass ManualComponent extends React.PureComponent {\n state = {\n // showEduVideo2: false,\n // showEduVideo3: false,\n // showEduVideo4: false\n }\n\n componentDidMount = () => {\n if (!localStorage.getItem('id')) {\n message.warning('메이트 교육 영상을 시청하시려면 로그인 후 이용해주세요.');\n return this.props.history.push('/user/login');\n }\n this.props.history.push('/mateEducation/manual');\n\n // this.timer2 = setTimeout(() => {\n // this.setState({ showEduVideo2: true });\n // }, 2400000); // 40분 뒤 (40 * 60 * 1000)\n \n // this.timer3 = setTimeout(() => {\n // this.setState({ showEduVideo3: true });\n // }, 3600000); // 1시간 뒤 (60 * 60 * 1000)\n \n // this.timer4 = setTimeout(() => {\n // this.setState({ showEduVideo4: true });\n // }, 4800000); // 1시간 20분 뒤 (80 * 60 * 1000)\n }\n\n // componentWillUnmount() {\n // clearTimeout(this.timer2);\n // clearTimeout(this.timer3);\n // clearTimeout(this.timer4);\n // }\n\n render() {\n return (\n
\n \n \n \n \n {/* {this.state.showEduVideo2 && }\n {this.state.showEduVideo3 && }\n {this.state.showEduVideo4 && } */}\n
\n\n );\n }\n}\nexport default ManualComponent;","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\n\nconst StyledListContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n // border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(30)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n }\n }\n\n .img-section {\n position: absolute;\n bottom: -50px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .faq-nav {\n display: flex;\n align-items: center;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n a {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: center;\n color: #3bc1ff;\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n\n @media (max-width: 768px) {\n margin-right: 16px;\n }\n }\n }\n }\n }\n\n .faq-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n }\n }\n\n .panel-header {\n display: flex;\n align-items: center;\n\n .row-index {\n width: 80px;\n color: ${mainColor};\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n }\n\n .title {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .title {\n font-size: ${sizeHandler(14)};\n }\n }\n }\n\n .panel-content {\n padding-left: 80px;\n\n > p {\n width: 60%;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .panel-contents-wrapper {\n margin-top: 20px;\n margin-bottom: 20px;\n\n .panel-contents {\n padding: 12px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n &:first-child {\n border-top: 1px solid #e6e6e6;\n }\n\n .panel-content-subtitle {\n float: left;\n width: 40%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: left;\n color: ${mainColor};\n }\n\n .panel-content-subcontents {\n float: left;\n width: 50%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .panel-content-subtitle {\n width: 100%;\n }\n\n .panel-content-subcontents {\n width: 100%;\n }\n }\n }\n }\n }\n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\nexport default StyledListContainer;\n","import styled from 'styled-components';\n\nconst StyledListContainer = styled.div`\n // border-bottom: 1px solid #e6e6e6;\n`;\n\nexport const HeaderButton = styled.div`\n cursor: pointer;\n\n width: 265px;\n height: 60px;\n line-height: 60px;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n\n margin-top: 40px;\n margin-bottom: 90px;\n border-radius: 4px;\n background-color: #3bc1ff;\n\n &:hover {\n transition: all 0.5s;\n opacity: 0.8;\n }\n\n @media (max-width: 768px) {\n width: 230px;\n height: 48px;\n line-height: 48px;\n }\n`;\n\nexport const NavigationTabWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\n\nexport const NavigationTab = styled.span`\n position: relative;\n display: inline-block;\n margin-right: 44px;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n padding-bottom: 20px;\n\n cursor: pointer;\n\n &.active {\n color: #55d4ff;\n }\n`;\n\nexport const NavigationTabUnderline = styled.span`\n display: inline-block;\n position: absolute;\n left: 0px;\n bottom: -3px;\n\n width: 100%;\n height: 3px;\n background-color: #55d4ff;\n`;\n\nexport const CountDisplay = styled.div`\n font-size: 36px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n > span {\n color: #4bcfff;\n }\n\n margin-bottom: 20px;\n`;\n\nexport const CollapseContainer = styled.div`\n .ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header {\n padding-left: 0px;\n padding-right: 0px;\n }\n\n .ant-collapse-content > .ant-collapse-content-box {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nexport const CollapseHeader = styled.div`\n display: flex;\n align-items: center;\n border-bottom: 1px solid #e6e6e6;\n`;\n\nexport const CollapseTab = styled.div`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.7);\n\n padding-bottom: 11px;\n`;\n\nexport const CollapseTabOnlyDesktop = styled(CollapseTab)`\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const PanelHeader = styled.div`\n display: flex;\n`;\n\nexport const PanelField = styled.div`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n ${props => (props.style ? props.style : `flex: 1;`)}\n ${props => (props.onlyDesktop ? `display: block;` : null)} \n\n &.title {\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.56;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 768px) {\n ${props => (props.onlyDesktop ? `display: none;` : null)}\n }\n`;\n\nexport const Star = styled.img`\n width: 16.7px;\n height: 16px;\n object-fit: contain;\n margin-bottom: 4px;\n`;\n\nexport const ReviewTextWrapper = styled.div`\n padding-left: 120px;\n padding-right: 50px;\n\n @media (max-width: 768px) {\n padding-left: 0px;\n }\n`;\n\nexport const ReviewText = styled.p`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n`;\n\nexport const MyReview = styled.span`\n display: inline-block;\n width: 53px;\n height: 20px;\n line-height: 20px;\n border-radius: 10px;\n background-color: #3bc1ff;\n\n font-size: 10px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.21px;\n color: #ffffff;\n text-align: center;\n`;\n\nexport const ReviewMobileInfo = styled.div`\n display: flex;\n align-items: center;\n\n margin-bottom: 27px;\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const ReviewerName = styled.span`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 0px;\n margin-right: 16px;\n`;\n\nexport default StyledListContainer;\n","import React from 'react';\nimport moment from 'moment';\nimport { Button, Popover } from 'antd';\nimport _ from 'lodash';\n\nimport { UNEMER, ASSIST } from '../../Lib/variables';\nimport { currencyFormatter, colorParserByStatus } from '../../Lib/utils';\n\nexport const callColumn = ({ onAccept, onCancel, onComplete }) => {\n return [\n {\n title: '예약번호',\n align: 'left',\n width: '110px',\n render: ({ reserve }) => {reserve && reserve.length > 0 ? reserve[0].reserveCode : '-'},\n },\n {\n title: '이용자 성함',\n align: 'left',\n ellipsis: true,\n width: '72px',\n render: (_id, { reserve }) => {!reserve ? '-' : reserve[0].patient},\n },\n {\n title: '진행 현황',\n align: 'center',\n ellipsis: true,\n width: '100px',\n render: ({ status }) =>\n status === '결제대기' ? (\n \n ) : (\n \n {status}\n \n ),\n },\n {\n title: '서비스',\n dataIndex: 'reserve',\n align: 'left',\n ellipsis: true,\n width: '100px',\n render: reserve => (\n {!reserve ? '-' : reserve[0].service === UNEMER ? '병원 동행 Pro' : reserve[0].service === ASSIST ? '병원 동행 Basic' : '-'}\n ),\n },\n {\n title: '병원 위치',\n align: 'left',\n ellipsis: true,\n width: '140px',\n render: (createdAt, { reserve }) => {!reserve ? '-' : reserve[0].starting},\n },\n {\n title: '예약 일자',\n align: 'left',\n ellipsis: true,\n width: '140px',\n render: ({ reserve }) => {moment(reserve[0].reserveDate).format('YYYY년 MM월 DD일 - HH:mm A')},\n },\n ];\n};\n\nexport const reserveColumn = ({ onMate, onCancel, onModify, onDetailModify, onServiceReport }) => {\n return [\n {\n title: '예약번호',\n dataIndex: 'reserveCode',\n width: '110px',\n render: reserveCode => {reserveCode ? reserveCode : '-'},\n },\n {\n title: '서비스',\n dataIndex: 'service',\n align: 'left',\n ellipsis: true,\n width: '100px',\n render: service => {service === UNEMER ? '병원 동행 Pro' : service === ASSIST ? '병원 동행 Basic' : '-'},\n },\n {\n title: '이용자 성함',\n dataIndex: 'patient',\n align: 'left',\n ellipsis: true,\n width: '90px',\n render: patient => {patient},\n },\n {\n title: '병원 위치',\n dataIndex: 'starting',\n align: 'left',\n ellipsis: true,\n width: '140px',\n render: starting => {starting},\n },\n {\n title: '예약 일자',\n dataIndex: 'reserveDate',\n align: 'left',\n ellipsis: true,\n width: '140px',\n render: reserveDate => {moment(reserveDate).format('YYYY년 MM월 DD일 - HH:mm A')},\n },\n {\n title: '진행 현황',\n // dataIndex: 'status',\n align: 'center',\n ellipsis: true,\n width: '100px',\n render: ({ call }) =>\n call[0].status === '결제대기' ? (\n \n ) : (\n \n {call[0].status}\n \n ),\n },\n {\n title: '결제',\n align: 'center',\n width: '70px',\n ellipsis: true,\n render: ({ paidStatus, call }) => (\n {call[0].status === '환불' ? '-' : paidStatus ? '완료' : '대기'}\n ),\n },\n {\n title: '담당자',\n align: 'center',\n width: '70px',\n ellipsis: true,\n render: ({ call }) => (\n {\n if (!_.isEmpty(call) && !_.isEmpty(call[0].mate)) onMate(call[0]);\n }}\n style={{ cursor: !_.isEmpty(call) && !_.isEmpty(call[0].mate) ? 'pointer' : undefined }}\n >\n {!_.isEmpty(call) && !_.isEmpty(call[0].mate) ? call[0].mate[0].name : '-'}\n \n ),\n },\n {\n title: '-',\n align: 'center',\n width: '50px',\n render: ({ _id, call, paidStatus, callId, service }) =>\n call[0].status === '서비스 종료' ? (\n \n {\n onServiceReport(call[0], service);\n }}\n >\n 서비스 리포트\n

\n
\n }\n >\n \n \n \n \n ) : call[0].status === '접수대기' || (call[0].status === '예약완료' && paidStatus === false) ? (\n \n {\n call[0].status === '접수대기' ? onDetailModify(_id) : onModify(_id);\n }}\n >\n 예약수정\n \n

\n {\n onCancel(callId);\n }}\n >\n 예약취소\n \n

\n
\n }\n >\n \n \n \n \n ) : (\n '-'\n ),\n },\n ];\n};\n\nexport const payHistoryColumn = [\n {\n title: '서비스',\n dataIndex: 'service',\n align: 'left',\n ellipsis: true,\n width: '100px',\n render: service => {service === UNEMER ? '병원 동행 Pro' : service === ASSIST ? '병원 동행 Basic' : '-'},\n },\n {\n title: '요청사항',\n dataIndex: 'type',\n align: 'left',\n ellipsis: true,\n width: '60px',\n render: type => (\n \n {type === 'paid' ? '결제' : '환불'}\n \n ),\n },\n {\n title: '금액',\n dataIndex: 'price',\n align: 'left',\n ellipsis: true,\n width: '120px',\n render: price => {currencyFormatter(price)} KRW,\n },\n {\n title: '요청시간',\n dataIndex: 'createdAt',\n align: 'left',\n ellipsis: true,\n width: '140px',\n render: createdAt => {moment(createdAt).format('YYYY년 MM월 DD일 - hh:mm A')},\n },\n {\n title: '상태',\n dataIndex: 'status',\n align: 'left',\n ellipsis: true,\n width: '80px',\n render: status => {status === true ? '완료' : '진행중'},\n },\n];\n\nexport const newsEvent = [\n {\n title: '번호',\n dataIndex: 'index',\n align: 'center',\n width: '80px',\n },\n {\n title: '제목',\n dataIndex: 'title',\n align: 'left',\n \n },\n {\n title: '등록일',\n dataIndex: 'createdAt',\n align: 'center',\n width: '100px',\n render: createdAt => {moment(createdAt).format('YY.MM.DD') || '0'}\n },\n];","import React from 'react';\nimport { Collapse, Icon, Table } from 'antd';\nimport { CollapseContainer } from '../../Review/List/list.styled';\n\nimport { newsEvent } from '../../../Components/Columns/user';\n\nexport default class Event extends React.PureComponent {\n\n onRow = (row, index) => {\n return {\n onClick: () => {\n this.props.history.push({\n pathname: `/newsEvent/info/${row._id}`,\n state: {\n id: row._id,\n },\n });\n },\n };\n };\n\n render() {\n\n return (\n
\n
\n
\n
\n
\n

위드메이트 소식

\n

위드메이트의 다양한 소식을 확인할 수 있습니다.

\n
\n
\n faq-img\n
\n
\n
\n
\n
\n \n \n \n
\n
\n );\n }\n}","import axios from '../axios';\n\nexport const addNewsEvent = async ({ id, title, content, photo, url, url2, urlSource, urlSource2 }) => {\n const config = {\n id,\n title,\n content,\n photo,\n url,\n url2,\n urlSource,\n urlSource2,\n };\n\n const result = await imageUpload(photo);\n config.photo = result.data;\n\n return axios.post(`/v1/newsEvent/add`, config);\n};\n\nexport const fetchNewsEvent = () => {\n return axios.get('/v1/newsEvent/list');\n};\n\nexport const getNewsEventInfo = async ({ newsEventId, info }) => {\n return axios.get('/v1/newsEvent/list/info', { newsEventId, info });\n};\n\nexport const imageUpload = photo => {\n const formData = new FormData();\n formData.append('photo', photo);\n const header = { headers: { 'Content-Type': 'multipart/form-data' } };\n return axios.post('/v1/newsEvent/image/upload', formData, header);\n};\n","import { createAction, handleActions } from \"redux-actions\";\nimport produce from \"immer\";\nimport * as newsEventAPI from '../../Lib/Api/newsEvent';\nimport _ from 'lodash';\nimport { createReduxThunk } from '../../Lib/middleware';\n\nconst ADD_NEWSEVENT = 'newsEvent/ADD_NEWSEVENT';\nconst ADD_NEWSEVENT_SUCCESS = 'newsEvent/ADD_NEWSEVENT_SUCCESS';\n\nconst NEWSEVENT_INFO = 'newsEvent/NEWSEVENT_INFO';\nconst NEWSEVENT_INFO_SUCCESS = 'newsEvent/NEWSEVENT_INFO_SUCCESS';\n\nconst GET_NEWSEVENT = 'newsEvent/GET_NEWSEVENT';\nconst GET_NEWSEVENT_SUCCESS = 'newsEvent/GET_NEWSEVENT_SUCCESS';\n\nexport const addNewsEvent = createReduxThunk(ADD_NEWSEVENT, newsEventAPI.addNewsEvent);\nexport const fetchNewsEvent = createReduxThunk(GET_NEWSEVENT, newsEventAPI.fetchNewsEvent);\nexport const getNewsEventInfo = createReduxThunk(NEWSEVENT_INFO, newsEventAPI.getNewsEventInfo);\n\n\nconst initalState = {\n newsEventInfo: {},\n newsEventList: [],\n};\n\nconst appReducer = handleActions(\n {\n [ADD_NEWSEVENT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => { }),\n\n [GET_NEWSEVENT_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && payload.message === 'success') {\n draft['newsEventList'] = payload.data;\n }\n }),\n\n [NEWSEVENT_INFO_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n if (payload && !_.isEmpty(payload)) {\n draft['newsEventInfo'] = payload.data;\n }\n }),\n },\n initalState\n);\n\nexport default appReducer;","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledListContainer from './list.styled';\nimport List from './list';\nimport { addNewsEvent, fetchNewsEvent, getNewsEventInfo } from '../../../Reducer/Modules/newsEvent';\n\nclass InfoContainer extends React.PureComponent {\n componentDidMount = () => {\n this.props.fetchNewsEvent();\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, newsEvent }) => ({\n app,\n auth,\n newsEvent,\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchNewsEvent: () => dispatch(fetchNewsEvent()),\n addNewsEvent: info => dispatch(addNewsEvent(info)),\n getNewsEventInfo: ({ id, newsEventId }) => dispatch(getNewsEventInfo({ id, newsEventId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoContainer);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\n\nconst StyledInfoContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n // border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(30)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n\n @media {\n padding-left: 10px;\n }\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n\n @media {\n padding-left: 10px;\n }\n }\n }\n\n .img-section {\n position: absolute;\n bottom: -50px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n }\n }\n\n .info-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n\n .img-section {\n\n > img {\n max-width: 500px;\n height: auto;\n object-fit: cover;\n }\n }\n }\n } \n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 832px) {\n .info-contents {\n .inner-container {\n .img-section {\n > img {\n max-width: 300px;\n height: auto;\n object-fit: cover;\n }\n }\n }\n } \n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\n\nexport default StyledInfoContainer;","import React from 'react';\n\nexport const InfoBlock = ({ label, value, children }) => (\n
\n

{label}

\n

{value}

\n {children}\n
\n);\n","import React from 'react';\nimport axios from '../../../Lib/axios';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport { Button, message, Table } from 'antd';\nimport { CollapseContainer } from '../../Review/List/list.styled';\n\nimport { InfoBlock } from '../../../Components/Common/block';\n\nexport default class Event extends React.PureComponent {\n state = {\n data: {},\n };\n\n componentDidMount = () => {\n // const { state } = this.props.history.location;\n // if (!state || !state.id) return this.props.history.goBack();\n const { id } = this.props.match.params;\n\n this.fetchInfo(id);\n };\n\n fetchInfo = async id => {\n const { data } = await axios.get('/v1/newsEvent/list/info', {\n params: {\n newsEventId: id,\n },\n });\n\n if (!data || data === 'check parameters') {\n return this.props.history.goBack();\n }\n\n if (data === 'invalid newEvent') {\n return message.warning('잘못된 게시물 정보입니다.');\n }\n\n this.setState({ ...data });\n };\n\n render() {\n const { url, url2, urlSource, urlSource2 } = this.state;\n\n return (\n
\n
\n
\n
\n
\n

위드메이트 소식

\n

위드메이트의 다양한 소식을 확인할 수 있습니다.

\n
\n
\n faq-img\n
\n
\n
\n
\n
\n \n <>\n \n \n \n\n \n \n \n\n \n {this.state.photo && (\n
\n \n
\n )}\n
\n\n \n \n

{this.state.content}

\n
\n {this.state.url ? (\n \n {url ? (\n \n ㆍ{urlSource}\n \n ) : (\n ''\n )}{' '}\n
\n {url2 ? (\n \n ㆍ{urlSource2}\n \n ) : (\n ''\n )}\n
\n ) : null}\n
\n\n \n {\n this.props.history.goBack();\n }}\n style={{ float: 'right' }}\n >\n 목록으로\n \n \n \n
\n
\n
\n );\n }\n}\n\nexport const ValueBox = styled.div`\n margin-bottom: 16px;\n`;\n\nexport const Label = styled.p`\n text-align: left;\n font-size: 11px;\n margin-bottom: 4px;\n color: #565656;\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledInfoContainer from './info.styled';\nimport Info from './info';\nimport { addNewsEvent, fetchNewsEvent, getNewsEventInfo } from '../../../Reducer/Modules/newsEvent';\n\nclass InfoContainer extends React.PureComponent {\n componentDidMount = () => {\n const { id } = this.props.auth;\n const { state } = this.props.location;\n const { id: newsEventId } = this.props.match.params;\n\n // console.log(newsEventId, state);\n\n if (state === 'newsEvent') this.props.getNewsEventInfo({ newsEventId });\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, newsEvent }) => ({\n app, \n auth,\n newsEvent\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchNewsEvent: () => dispatch(fetchNewsEvent()),\n addNewsEvent: (info) => dispatch(addNewsEvent(info)),\n getNewsEventInfo: ({ id, newsEventId }) => dispatch(getNewsEventInfo({ id, newsEventId }))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoContainer);\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\n// pages\nimport List from './List';\nimport Info from './Info';\n\nclass NewsEvent extends React.PureComponent {\n render() {\n return (\n \n \n \n \n );\n }\n}\nexport default NewsEvent;\n","import { createAction, handleActions } from 'redux-actions';\nimport produce from 'immer';\nimport * as reviewAPI from '../../Lib/Api/review';\nimport _ from 'lodash';\nimport { createReduxThunk } from '../../Lib/middleware';\n\nconst ADD_REVIEW = 'review/ADD_REVIEW';\nconst ADD_REVIEW_SUCCESS = 'review/ADD_REVIEW_SUCCESS';\n\nconst REPLY_REVIEW = 'review/REPLY_REVIEW';\nconst REPLY_REVIEW_SUCCESS = 'review/REPLY_REVIEW_SUCCESS';\n\nconst DELETE_REVIEW = 'review/DELETE_REVIEW';\nconst DELETE_REVIEW_SUCCESS = 'review/DELETE_REVIEW_SUCCESS';\n\nconst GET_REVIEW_LIST = 'review/GET_REVIEW_LIST';\nconst GET_REVIEW_LIST_SUCCESS = 'review/GET_REVIEW_LIST_SUCCESS';\n\nconst EDIT_REVIEW = 'review/EDIT_REVIEW';\n\n// initalState\nconst initialState = {\n review: {},\n reviewList: [],\n reviewPage: 0,\n tab: 'basic',\n};\n\nexport const addReview = createReduxThunk(ADD_REVIEW, reviewAPI.addReview);\nexport const replyReview = createReduxThunk(REPLY_REVIEW, reviewAPI.replyReview);\nexport const deleteReview = createReduxThunk(DELETE_REVIEW, reviewAPI.deleteReview);\nexport const getReviewList = createReduxThunk(GET_REVIEW_LIST, reviewAPI.getReviewList);\n\nexport const editReview = createAction(EDIT_REVIEW, input => input);\n\nconst appReducer = handleActions(\n {\n [ADD_REVIEW_SUCCESS]: (state, { payload }) => produce(state, draft => {}),\n [GET_REVIEW_LIST_SUCCESS]: (state, { payload }) =>\n produce(state, draft => {\n draft['reviewList'] = payload;\n }),\n [EDIT_REVIEW]: (state, { payload }) =>\n produce(state, draft => {\n draft[payload.type] = payload.value;\n }),\n },\n initialState,\n);\n\nexport default appReducer;\n","import axios from '../axios';\n\nexport const addReview = ({ reserveId, userId, title, review, score, reserveDate }) => {\n return axios.post(`/v1/review/add`, { reserveId, userId, title, review, score, reserveDate });\n};\n\nexport const getReviewList = ({ page }) => {\n return axios.get(`/v1/review/list`, { page });\n};\n\nexport const replyReview = ({}) => {\n return axios.post(`/v1/reply/review`, {});\n};\n\nexport const deleteReview = ({ reviewId }) => {\n return axios.put(`/v1/delete/review`, { reviewId });\n};\n","import styled from 'styled-components';\nimport { Input } from 'antd';\n\nconst StyledAddContainer = styled.div``;\n\nexport default StyledAddContainer;\n\nexport const WritePaper = styled.div`\n background-color: white;\n padding: 21px 31px 31px 31px;\n border-radius: 8px;\n border: solid 1px #e6e6e6;\n\n @media (max-width: 480px) {\n padding: 16px;\n border-radius: 4px;\n }\n`;\n\nexport const FormHeader = styled.div`\n border-bottom: solid 1px #e6e6e6;\n padding-bottom: 22px;\n`;\n\nexport const FormTitle = styled.div`\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n\n @media (max-width: 480px) {\n font-size: 24px;\n }\n`;\n\nexport const FormSubtitle = styled.div`\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 32px;\n\n @media (max-width: 480px) {\n font-size: 13px;\n }\n`;\n\nexport const FormTypeWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nexport const FormTypeBlock = styled.div`\n margin-right 220px;\n\n @media (max-width: 768px) {\n margin-right: 0px;\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0px;\n }\n }\n`;\n\nexport const FormTypeTitle = styled.p`\n font-size: 11px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.67;\n letter-spacing: normal;\n color: #b1b1b1;\n\n margin-bottom: 11px;\n\n @media (max-width: 480px) {\n font-size: 10px;\n }\n`;\n\nexport const FormTypeDesc = styled.p`\n font-size: 20px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.1px;\n text-align: left;\n color: #3bc1ff;\n\n margin-bottom: 0px;\n\n @media (max-width: 480px) {\n font-size: 16px;\n }\n`;\n\nexport const FormDescription = styled.span`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n color: #3bc1ff;\n\n margin-left: 4px;\n\n @media (max-width: 480px) {\n font-size: 11px;\n }\n`;\n\nexport const StarImg = styled.img`\n width: 46px;\n height: 44px;\n margin-right: 8px;\n\n @media (max-width: 480px) {\n width: 26px;\n height: 24px;\n margin-right: 4px;\n }\n`;\n\nexport const FormBody = styled.div`\n padding-top: 22px;\n`;\n\nexport const FormRow = styled.div`\n margin-bottom: 32px;\n`;\n\nexport const FormInput = styled(Input)`\n height: 44px;\n\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: #161616;\n\n &::placeholder {\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: #a7a7a7;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n\n &::placeholder {\n font-size: 11px;\n }\n }\n`;\n\nexport const FormTextarea = styled(Input.TextArea)`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: #161616;\n\n &::placeholder {\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: #a7a7a7;\n }\n\n @media (max-width: 480px) {\n font-size: 12px;\n\n &::placeholder {\n font-size: 11px;\n }\n }\n`;\n\nexport const FormButtonWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n margin-top: 50px;\n\n @media (max-width: 480px) {\n margin-top: 32px;\n }\n`;\n\nexport const FormButton = styled.div`\n cursor: pointer;\n\n border-radius: 2px;\n width: 297px;\n height: 60px;\n line-height: 60px;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.15px;\n text-align: center;\n color: #ffffff;\n\n &.blue {\n background-color: #3bc1ff;\n }\n\n &.white {\n background-color: #b7b7b7;\n margin-right: 16px;\n }\n\n &:hover {\n transition: all 0.5s;\n opacity: 0.8;\n }\n\n @media (max-width: 480px) {\n height: 44px;\n line-height: 44px;\n font-size: 13px;\n }\n`;\n\nexport const FormTitleRowWrapper = styled.div`\n padding-top: 16px;\n padding-bottom: 16px;\n\n border-bottom: 1px solid #f2f2f2;\n`;\n\nexport const FormRowTitle = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 0px;\n\n @media (max-width: 480px) {\n font-size: 14px;\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nexport const CheckboxGroup = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n text-align: right;\n\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n .ant-checkbox-inner {\n width: 18px;\n height: 18px;\n }\n\n @media (max-width: 480px) {\n .ant-checkbox-wrapper {\n font-size: 12px !important;\n }\n .ant-checkbox-inner {\n width: 16px;\n height: 16px;\n }\n\n margin-top: 4px;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst CommentPageHeader = ({ children, title, desc }) => {\n return (\n \n \n \n {title}\n \n {desc.split('\\n').map((word, index) => (\n

{word}

\n ))}\n
\n {children}\n
\n \n \n {/* */}\n \n \n \n
\n
\n );\n};\n\nconst HeaderContainer = styled.div`\n // border-bottom: 1px solid #e6e6e6;\n`;\n\nconst HeaderWrapper = styled.div`\n display: flex;\n\n padding: 0px;\n padding-top: 100px;\n padding-bottom: 0px;\n\n @media (max-width: 1120px) {\n padding: 100px 16px 0px 16px;\n }\n`;\n\nconst HeaderBlock = styled.div`\n flex: 1;\n\n &.img-cover {\n flex: 1.2;\n\n display: flex;\n justify-content: flex-start;\n align-items: flex-end;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n`;\n\nconst HeaderTitle = styled.div`\n font-size: 44px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.6px;\n color: #000000;\n\n margin-top: 30px;\n margin-bottom: 6px;\n\n @media (max-width: 768px) {\n font-size: 32px;\n margin-top: 16px;\n }\n`;\n\nconst HeaderDescription = styled.div`\n > p {\n margin-bottom: 0px;\n\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n @media (max-width: 768px) {\n font-size: 12px;\n }\n }\n`;\n\nconst MainImageWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n\n width: 80%;\n height: 100%;\n max-height: 391px;\n`;\n\nconst MainImage = styled.div`\n width: 100%;\n height: 100%;\n background-image: url(${props => props.src});\n background-position: top;\n background-repeat: no-repeat;\n background-size: cover;\n`;\n\nexport default CommentPageHeader;\n","import React from 'react';\nimport styled from 'styled-components';\nimport StarRatingComponent from 'react-star-rating-component';\nimport { message, notification, Checkbox } from 'antd';\nimport moment from 'moment';\n\nimport { ASSIST } from '../../../Lib/variables';\nimport axios from '../../../Lib/axios';\nimport CommentPageHeader from '../../../Components/Templates/Review/header';\nimport { WithmateLabel, DivisionLine, WithmateInput, WithmateTextarea } from '../../../Components/Common/input';\n\nimport {\n WritePaper,\n FormHeader,\n StarImg,\n FormTitle,\n FormSubtitle,\n FormTypeWrapper,\n FormTypeBlock,\n CheckboxGroup,\n FormTypeDesc,\n FormRowTitle,\n FormDescription,\n FormTitleRowWrapper,\n FormButtonWrapper,\n FormButton,\n} from './add.styled';\n\nexport default class AddComment extends React.PureComponent {\n state = {\n star: 0,\n title: '',\n review: '',\n useAgain: null,\n corpSatisfied: null,\n corpSatisfiedReason: '',\n doctorSatisfied: null,\n doctorSatisfiedReason: '',\n hope: '',\n };\n\n componentDidMount = () => {\n this.checkReserveValidation();\n };\n\n checkReserveValidation = async () => {\n const id = localStorage.getItem('id');\n const { params } = this.props.match;\n\n if (!params.reserveId) {\n message.info('올바르지않은 시도입니다. 다시 시도해주세요.');\n return this.props.history.goBack();\n }\n const { data: reviewStatus } = await axios.get('/v1/review/check/validation', { params: { reserveId: params.reserveId } });\n if (!reviewStatus) {\n message.info('올바르지않은 시도입니다. 다시 시도해주세요.');\n return setTimeout(() => {\n this.props.history.goBack();\n }, 1000);\n }\n\n if (reviewStatus === 'already registered') {\n notification.error({\n message: '작성 완료 알림',\n description: `이미 해당 이용에 대한 후기를 작성하였습니다. 목록으로 돌아가 다시 시도해주세요.`,\n });\n\n return setTimeout(() => {\n this.props.history.goBack();\n }, 1000);\n }\n\n if (reviewStatus === 'invalid reserve') {\n notification.error({\n message: '유효하지 않은 이용내역',\n description: `올바르지않은 시도입니다. 다시 시도해주세요.`,\n });\n return setTimeout(() => {\n this.props.history.goBack();\n }, 1000);\n }\n\n axios.get('/v2/service/user/reserve/info', { params: { userId: id, reserveId: params.reserveId } }).then(resolve => {\n const { data: info } = resolve;\n if (!info) return message.error('죄송합니다. 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n if (info === 'invalid reserve') return message.warning('유효하지않은 예약입니다.');\n\n const serviceType =\n !info.productInfo || !info.productInfo.usePro || !info.productInfo.useBasic ? '' : info.service === 'unemergency' ? 'Pro' : 'Basic';\n const serviceName = (info.productInfo && info.productInfo.name && info.service && info.productInfo.name + serviceType) || '-';\n\n this.setState({\n reserveId: info._id,\n callId: info.call._id,\n service: info.service,\n reserveDate: info.reserveDate,\n serviceName,\n });\n });\n };\n\n starHandler = (nextValue, prevValue, name) => {\n this.setState({ star: nextValue });\n };\n\n inputHandler = ({ type, value }) => {\n this.setState({\n [type]: value,\n });\n };\n\n onAddReview = () => {\n // 리뷰 추가\n const userId = localStorage.getItem('id');\n const { star, reserveId, title, review, useAgain, corpSatisfied, corpSatisfiedReason, doctorSatisfied, doctorSatisfiedReason, hope, reserveDate } = this.state;\n\n const info = { score: star };\n\n if (title) info.title = title;\n if (reserveDate) info.reserveDate = reserveDate;\n if (review) info.review = review;\n if (typeof useAgain === 'boolean') info.useAgain = useAgain;\n if (typeof corpSatisfied === 'boolean') info.corpSatisfied = corpSatisfied;\n if (corpSatisfiedReason) info.corpSatisfiedReason = corpSatisfiedReason;\n if (typeof doctorSatisfied === 'boolean') info.doctorSatisfied = doctorSatisfied;\n if (doctorSatisfiedReason) info.doctorSatisfiedReason = doctorSatisfiedReason;\n if (hope) info.hope = hope;\n\n if (!star) return message.warning('별점을 매겨주세요.');\n\n axios\n .post('/v2/review/add', { info, reserveId, userId })\n .then(resolve => {\n const { data } = resolve;\n if (!data) return message.error('죄송합니다. 일시적인 서버 장애로 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n else if (data === 'check parameters') return message.warning('요청에 실패하였습니다.');\n else if (data === 'invalid') return message.warning('잘못된 요청입니다. 재 로그인 후 시도해주세요.');\n else if (data === 'not exist reserve') return message.warning('잘못된 요청입니다. 새로고침 후 다시 시도해주세요.');\n else if (data === 'already registered') return message.warning('이미 리뷰 등록을 완료한 예약입니다.');\n else if (data === 'success') {\n message.success('리뷰 등록 완료');\n setTimeout(() => {\n this.props.history.goBack();\n }, 250);\n return null;\n }\n })\n .catch(error => {\n return message.error('죄송합니다. 일시적인 서버 장애로 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n });\n };\n\n render() {\n const { star, title, serviceName, reserveDate, review, useAgain, corpSatisfied, corpSatisfiedReason, doctorSatisfied, doctorSatisfiedReason, hope } =\n this.state;\n\n return (\n
\n \n \n \n\n \n
\n \n \n 후기 작성\n 후기를 작성하실 이용 내역을 선택해주세요\n \n \n 이용하신 서비스\n {serviceName}\n \n \n {/* 이용 날짜\n {moment(reserveDate).format('YYYY년 MM월 DD일')}\n */}\n 서비스 이용 날짜\n {moment(reserveDate).format('YYYY년 MM월 DD일')}\n \n \n \n\n \n\n \n 별점\n (작성 시 500포인트 지급)\n \n {\n return ;\n }}\n onStarClick={this.starHandler}\n />\n\n \n\n \n 제목\n (제목 + 이용후기 작성 시 500포인트 지급)\n \n {\n this.inputHandler({ type: 'title', value: ev.target.value });\n }}\n placeholder='제목을 입력해주세요.'\n />\n\n \n\n 이용 후기\n {\n this.inputHandler({ type: 'review', value: ev.target.value });\n }}\n />\n\n \n \n\n \n 추가 선택 사항\n (선택사항까지 작성 완료 시 2000포인트 추가 지급)\n \n\n \n\n \n \n 다음 진료에도 위드메이트를 사용하실건가요?\n \n {\n this.setState({ useAgain: !useAgain ? true : null });\n }}\n >\n 예\n \n {\n this.setState({ useAgain: useAgain === false ? null : false });\n }}\n >\n 아니오\n \n \n \n \n\n \n \n 금일 방문하신 의료 기관의 서비스에 만족하시나요?\n \n {\n this.setState({ corpSatisfied: !corpSatisfied ? true : null });\n }}\n >\n 예\n \n {\n this.setState({ corpSatisfied: corpSatisfied === false ? null : false });\n }}\n >\n 아니오\n \n \n \n \n\n \n 이유는 무엇인가요?\n \n {\n this.inputHandler({ type: 'corpSatisfiedReason', value: ev.target.value });\n }}\n placeholder='어떤 부분에서 의료기관이 만족스러우셨는지 입력해주세요.'\n />\n \n\n \n \n 금일 방문하신 의료 기관의 의료진은 누구이고, 서비스에 만족하시나요?\n \n {\n this.setState({ doctorSatisfied: !doctorSatisfied ? true : null });\n }}\n >\n 예\n \n {\n this.setState({ doctorSatisfied: doctorSatisfied === false ? null : false });\n }}\n >\n 아니오\n \n \n \n \n {\n this.inputHandler({ type: 'doctorSatisfiedReason', value: ev.target.value });\n }}\n placeholder='의료진의 이름과 만족하는 이유를 입력해주세요.'\n />\n \n\n \n 병원 동행 서비스의 개선점이 있다면 무엇이라고 생각하시나요?\n \n {\n this.inputHandler({ type: 'hope', value: ev.target.value });\n }}\n />\n \n\n \n\n \n {\n this.props.history.goBack();\n }}\n >\n 뒤로가기\n \n \n 등록하기\n \n \n \n
\n
\n
\n );\n }\n}\nexport const PaddingDiv = styled.div``;\n\nexport const FullContainer = styled.div`\n width: 100%;\n background-color: #f6f6f6;\n min-height: 70vh;\n\n @media (max-width: 480px) {\n > .inner-container {\n padding: 16px 16px;\n }\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { getReserveInfo } from '../../../Reducer/Modules/app';\nimport { addReview } from '../../../Reducer/Modules/review';\nimport StyledAddContainer from './add.styled';\nimport AddCommentPage from './add';\nimport { message } from 'antd';\n\nclass AddCommentPageContainer extends React.PureComponent {\n componentDidMount = () => {\n const id = localStorage.getItem('id');\n const { params } = this.props.match;\n\n if (!id) {\n message.info('로그인 후 이용해주세요.');\n return this.props.history.push('/user/login');\n }\n\n if (params && params.reserveId) {\n this.props\n .getReserve({\n reserveId: params.reserveId,\n userId: id,\n })\n .then(resolve => {\n if (resolve === 'no matched user') {\n message.info('해당 리뷰의 접근권한이 없습니다.');\n return this.props.history.push('/review/own/usage/list');\n }\n\n if (resolve && resolve.review && resolve.review.length > 0) {\n message.info('이미 리뷰를 작성하였습니다.');\n return this.props.history.push('/review/own/usage/list');\n }\n });\n }\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, review }) => ({\n app,\n auth,\n review,\n});\n\nconst mapDispatchToProps = dispatch => ({\n addReview: ({ reserveId, userId, title, review, score }) => dispatch(addReview({ reserveId, userId, title, review, score })),\n getReserve: ({ reserveId, userId }) => dispatch(getReserveInfo({ reserveId, userId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AddCommentPageContainer);\n","import React from 'react';\nimport { Collapse, Icon, Pagination, message } from 'antd';\nimport moment from 'moment';\n\nimport CommentPageHeader from '../../../Components/Templates/Review/header';\nimport {\n HeaderButton,\n CollapseContainer,\n CollapseHeader,\n CollapseTab,\n CollapseTabOnlyDesktop,\n CountDisplay,\n PanelHeader,\n PanelField,\n Star,\n ReviewTextWrapper,\n ReviewText,\n ReviewMobileInfo,\n ReviewerName,\n MyReview,\n} from './list.styled';\n\nimport axios from '../../../Lib/axios';\n\nconst { Panel } = Collapse;\n\nconst PerPage = 20;\n\nexport default class CommentList extends React.PureComponent {\n state = {\n tab: 'basic',\n total: 0,\n list: [],\n page: 1,\n };\n\n componentDidMount = () => {\n this.fetchList();\n };\n\n fetchList = () => {\n const { page } = this.state;\n axios.get('/v2/review/list', { params: { page, pageCnt: PerPage } }).then(resolve => {\n const { data } = resolve;\n if (data && data.total) {\n this.setState({ total: data.total || 0, list: data.list || [] });\n }\n });\n };\n\n renderStar = score => {\n return (\n <>\n {new Array(score).fill(0).map((star, index) => (\n \n ))}\n {new Array(5 - score).fill(0).map((star, index) => (\n \n ))}\n \n );\n };\n\n getAutoTitle = ({ title, rate }) => {\n if (title) return title;\n if (rate === 5) return '서비스 매우 만족';\n if (rate >= 4) return '서비스 만족';\n if (rate >= 3) return '서비스 보통';\n if (rate >= 2) return '서비스 불만족';\n if (rate >= 1) return '서비스 매우 불만족';\n };\n\n render() {\n const { tab, list, page, total } = this.state;\n const { id, userType } = this.props.auth;\n\n return (\n
\n \n {\n if (userType && userType === 'user') {\n this.props.history.push('/review/own/usage/list');\n } else {\n message.warning('비회원과 메이트는 작성할 수 없습니다.');\n }\n }}\n >\n 후기 작성하기\n \n \n\n \n \n {total}건\n \n\n \n 번호\n 서비스\n 제목\n 작성자\n 별점\n 작성일\n \n }\n >\n {list &&\n list.map((info, index) => (\n \n \n {total - ((page - 1) * PerPage + index)}\n \n {info.reserve.service === 'assist' ? 'Basic' : 'Pro'}\n \n {this.getAutoTitle({ title: info.title, rate: info.score })}\n \n \n {id === info.user._id ? 내후기 : info.user.name}\n \n \n {info.score ? this.renderStar(parseInt(info.score, 10)) : null}\n \n \n {moment(info.createdAt).format('YYYY-MM-DD')}\n \n \n }\n >\n \n \n {id === info.user._id ? (\n 내후기\n ) : (\n {info.user.name}\n )}\n {info.score ? this.renderStar(parseInt(info.score, 10)) : null}\n {moment(info.createdAt).format('YYYY-MM-DD')}\n \n {info.review && (\n \n {info.review.split('\\n').map((text, index) => (\n \n {text}\n
\n
\n ))}\n
\n )}\n \n (담당 메이트: {info.reserve && info.reserve.call && info.reserve.call.mate ? info.reserve.call.mate.name : '-'})\n \n\n \n {info.reply === '' ? (\n ''\n ) : (\n <>\n ➔ \n 위드메이트: {info.reply ? info.reply : ''}\n \n )}\n \n
\n \n ))}\n \n {\n this.setState({ page, list: [] }, () => {\n this.fetchList();\n });\n }}\n />\n
\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledListContainer from './list.styled';\nimport CommentList from './list';\n\nimport { getReviewList, editReview } from '../../../Reducer/Modules/review';\n\nclass CommentListPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, review }) => ({\n app,\n auth,\n review,\n});\n\nconst mapDispatchToProps = dispatch => ({\n // getReviewList: page => dispatch(getReviewList({ page })),\n editReview: ({ type, value }) => dispatch(editReview({ type, value })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CommentListPage);\n","import styled from 'styled-components';\n\nconst StyledListContainer = styled.div``;\n\nexport const FullContainer = styled.div`\n width: 100%;\n background-color: #f6f6f6;\n min-height: 70vh;\n`;\n\nexport const PaddingDiv = styled.div``;\n\nexport const TableContainer = styled.div``;\n\nexport const TableHeader = styled.div`\n padding: 23px 32px 32px 32px;\n background-color: #ffffff;\n border-bottom: 1px solid rgba(0, 0, 0, 0.09);\n\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n`;\n\nexport const TableTitle = styled.p`\n font-size: 36px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 4px;\n`;\n\nexport const TableSubTitle = styled.p`\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 0px;\n`;\n\nexport const TableAlert = styled.p`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 0px;\n margin-top: 16px;\n`;\n\nexport const TableBody = styled.div`\n overflow-x: scroll;\n background-color: white;\n`;\n\nexport const TableRow = styled.div`\n width: 100%;\n\n display: flex;\n align-items: center;\n\n padding-top: 11px;\n padding-bottom: 12px;\n\n border-bottom: 1px solid #e6e6e6;\n\n @media (max-width: 768px) {\n width: fit-content;\n }\n`;\n\nexport const TableField = styled.div`\n ${props => (props.style ? props.style : `flex: 1;`)}\n\n display: flex;\n flex-direction: column;\n text-align: left;\n\n margin: 0px 26px;\n\n ${props =>\n props.desktopOnly\n ? `\n @media (max-width: 768px) {\n display: none;\n }\n `\n : undefined}\n\n ${props => (props.title ? `font-weight: bold;` : undefined)}\n`;\n\nexport const TableButton = styled.div`\n align-self: flex-end;\n width: 134px;\n height: 28px;\n line-height: 28px;\n\n border-radius: 2px;\n border: 1px solid #3bc1ff;\n background-color: #3bc1ff;\n\n font-size: 10px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: center;\n color: #ffffff;\n\n cursor: pointer;\n &:hover {\n transition: all 0.5s;\n opacity: 0.8;\n }\n\n &.disabled {\n border: 1px solid #a7a7a7;\n background-color: #a7a7a7;\n cursor: not-allowed;\n\n &:hover {\n transition: all 0.5s;\n opacity: 1;\n }\n }\n`;\n\nexport const EmptyWrapper = styled.div`\n padding: 32px;\n width: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n flex-direction: column;\n`;\n\nexport const EmptyImage = styled.img`\n width: 200px;\n height: 120px;\n object-fit: contain;\n\n margin-bottom: 20px;\n`;\n\nexport const EmptyText = styled.span`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: #b1b1b1;\n`;\n\nexport default StyledListContainer;\n","import React from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport { ASSIST, UNEMER } from '../../../Lib/variables';\nimport ReviewPageHeader from '../../../Components/Templates/Review/header';\nimport {\n FullContainer,\n TableContainer,\n TableHeader,\n TableTitle,\n PaddingDiv,\n TableBody,\n TableSubTitle,\n TableAlert,\n TableRow,\n TableField,\n TableButton,\n EmptyWrapper,\n EmptyText,\n EmptyImage,\n} from './mylist.styled';\n\nexport default class MyReviewList extends React.PureComponent {\n onReserve = _id => {\n this.props.history.push('/review/edit/' + _id);\n };\n\n render() {\n const { reserveList } = this.props.app;\n const done_list = reserveList.filter(reserve => reserve.call.length > 0 && reserve.call[0].status === '서비스 종료' && reserve.review.length === 0);\n\n return (\n
\n \n \n \n\n \n \n \n 이용 내역 선택\n 후기를 작성하실 이용 내역을 선택해주세요\n \n\n \n \n \n 서비스\n \n \n 환자 이름\n \n \n 예약 병원\n \n \n 예약 시간\n \n \n 신청 날짜\n \n \n 진행 현황\n \n \n \n {done_list.length > 0 ? (\n done_list.map((reserve, index) => {\n return (\n \n {reserve.service === ASSIST ? 'BASIC' : 'PRO'}\n {reserve.patient}님\n {reserve.destination || '-'}\n {moment(reserve.reserveDate).format('YYYY년 MM월 DD일 - HH:mm')}\n {moment(reserve.createdAt).format('YYYY년 MM월 DD일')}\n {reserve.call.length > 0 ? reserve.call[0].status : '-'}\n \n {\n this.onReserve(reserve._id);\n }}\n >\n 작성 하기\n \n \n \n );\n })\n ) : (\n \n )}\n {/* \n {reserveList\n .map((reserve, index) => {\n return (\n \n {reserve.service === ASSIST ? 'BASIC' : 'PRO'}\n {reserve.patient}님\n {reserve.destination || '-'}\n {moment(reserve.reserveDate).format('YYYY년 MM월 DD일 - hh:mm')}\n {moment(reserve.creaetedAt).format('YYYY년 MM월 DD일')}\n {reserve.call.length > 0 ? reserve.call[0].status : '-'}\n \n {reserve.call.length > 0 && reserve.call[0].status === '서비스 종료' && reserve.review.length === 0 ? (\n {\n this.onReserve(reserve._id);\n }}\n >\n 작성 하기\n \n ) : (\n 작성 불가\n )}\n \n \n );\n })} */}\n \n\n {/* * 최근 2주내의 이용 내역에 대한 리뷰만 작성이 가능합니다. */}\n \n \n
\n );\n }\n}\n\nconst EmptyList = () => (\n \n \n 후기를 작성가능한 이용내역이 없습니다.\n \n);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { USER, MATE } from '../../../Lib/variables';\nimport { getReserveList } from '../../../Reducer/Modules/app';\nimport StyledMylistContainer from './mylist.styled';\nimport MyCommentList from './mylist';\nimport { message } from 'antd';\n\nclass MyCommentListPage extends React.PureComponent {\n componentDidMount = () => {\n const id = localStorage.getItem('id');\n const userType = localStorage.getItem('userTYp');\n\n if (id) {\n this.props.fetchReserveList({ userId: id });\n }\n\n if (!id) {\n message.info('로그인 후 이용해주세요.');\n return this.props.history.push('/user/login');\n }\n\n if (id && userType === MATE) {\n message.info('일반 사용자를 위한 페이지입니다.');\n return this.props.history.push('/');\n }\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n const { id } = this.props.auth;\n\n if (!prevProps.auth.id && id) {\n this.props.fetchReserveList({ userId: id });\n }\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\nconst mapDispatchToProps = dispatch => ({\n fetchReserveList: ({ userId }) => dispatch(getReserveList({ userId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MyCommentListPage);\n","import React from 'react';\nimport {\n Container,\n TopWrapper,\n BottomWrapper,\n InnerContainer,\n Logo,\n MediumText,\n LargeText,\n Title,\n ApplyButton,\n FlexWrapper,\n FlexTitle,\n Contact,\n ContactTime,\n Link,\n Noti,\n} from './ready.styled';\n\nclass ReadyApplyPage extends React.PureComponent {\n render() {\n return (\n \n \n \n {/* */}\n 위드메이트 동행 매니저, ‘메이트’\n 병원 동행 서비스\n 새로운 수익 창출의 시작\n 개인 일정에 맞춰 동행 서비스 접수 내역에\n 매칭 신청을 하고 수익을 창출하세요!\n *단, 해외 여행에 결격 사유가 없는 자에 한해 지원이 가능합니다*\n * 지원 3일 이내 채용 담당자가 연락을 드립니다.\n
\n {\n this.props.history.push('/apply/form');\n }}\n >\n 메이트 지원하기\n \n
\n 일러스트\n
\n
\n \n \n \n
\n 위드메이트\n
\n
\n 지원관련 상담\n 070-4300-9075\n 상담 가능시간 / 오전 9시 ~ 오후 5시\n
\n
\n 안내사항\n
\n \n 메이트 가이드\n \n
\n \n 메이트 FAQ\n \n {/*
\n \n 회사소개\n */}\n
\n
\n
\n
\n
\n );\n }\n}\nexport default ReadyApplyPage;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\n\nimport { mainColor } from '../../../theme';\n\nexport const FormContainer = styled.div`\n // background-color: ${mainColor};\n width: 100vw;\n\n padding-top: 55px;\n`;\n\nexport const InnerContainer = styled.div`\n max-width: 800px;\n margin: 0 auto;\n padding: 80px 0px;\n\n @media (max-width: 1080px) {\n padding: 80px 16px;\n }\n\n @media (max-width: 768px) {\n padding: 80px 16px;\n }\n`;\n\nexport const LargeText = styled.p`\n margin-bottom: 0px;\n\n font-weight: bold;\n color: #ffffff;\n font-size: 32px;\n\n padding: 2.5px;\n border-bottom: 4px solid #ffffff;\n display: inline-block;\n`;\n\nexport const InputWrapper = styled.div`\n border-radius: 8px;\n border: 1px solid #e9e9e9;\n background-color: #ffffff;\n padding: 16px;\n border-left: 8px solid ${mainColor};\n\n margin-bottom: 12px;\n overflow: hidden;\n`;\n\nexport const InputLabel = styled.div`\n font-size: 14px;\n margin-bottom: 8px;\n\n > span {\n font-size: 12px;\n }\n`;\n\nexport const StyledInput = styled(Input.TextArea)`\n font-size: 14px;\n &::placeholder {\n font-size: 14px;\n }\n`;\n\nexport const ApplyButton = styled.span`\n padding: 10px 16px;\n background-color: ${mainColor};\n\n color: #ffffff;\n font-size: 16px;\n font-weight: bold;\n\n width: 100%;\n min-width: 200px;\n max-width: 360px;\n\n border-radius: 40px;\n overflow: hidden;\n\n display: inline-block;\n margin-top: 40px;\n cursor: pointer;\n\n &:hover {\n transition: all 0.5s;\n background-color: #ffffff;\n border: 1px solid ${mainColor};\n color: ${mainColor};\n }\n`;\n\nexport const FormImgWrapper = styled.div`\n > img {\n width: 150px;\n object-fit: contain;\n }\n`;\n\nexport const SpinWrapper = styled.div`\n display: flex;\n width: 100vw;\n height: 100vh;\n\n position: fixed;\n top: 0px;\n left: 0px;\n\n z-index: 9999;\n\n align-items: center;\n justify-content: center;\n\n background-color: rgba(0, 0, 0, 0.6);\n`;\n","import React from 'react';\nimport { Checkbox, Input, message, Spin } from 'antd';\n\n// utils\nimport axios from '../../../Lib/axios';\nimport { imageUpload } from '../../../Lib/Api/app';\n\n// styles\nimport { FormContainer, InnerContainer, InputWrapper, InputLabel, StyledInput, ApplyButton, LargeText, FormImgWrapper, SpinWrapper } from './form.styled';\n\nconst initialState = {\n info: [],\n photoFst: false,\n photoSnd: false,\n fileFst: false,\n fileSnd: false,\n photoFstValue: null,\n photoSndValue: null,\n fileFstValue: null,\n fileSndValue: null,\n onSpin: false,\n};\n\nclass MateFormPage extends React.PureComponent {\n state = {\n ...initialState,\n };\n\n componentDidMount = () => {\n this.fetchForm();\n };\n\n componentWillUnmount = () => {\n this.setState({ ...initialState });\n };\n\n fetchForm = async () => {\n const { data: form } = await axios.get('/v1/user/recent/apply/form');\n this.setState({\n ...form,\n });\n };\n\n editForm = ({ type, value }) => {\n this.setState({ [type]: value });\n };\n\n sendForm = async () => {\n const { careCareer, info, photoFst, photoSnd, fileSnd, fileFst } = this.state;\n const { photoFstValue, photoSndValue, fileFstValue, fileSndValue } = this.state;\n\n this.setState({ onSpin: true });\n\n if (!careCareer) {\n this.setState({ onSpin: false });\n return message.warning('치매 간병 경력 여부를 선택해주세요.');\n }\n\n if (info.some(item => !item.value)) {\n this.setState({ onSpin: false });\n return message.warning('답변하지 않은 질문이 있습니다.');\n }\n\n if (photoFst && !photoFstValue) {\n this.setState({ onSpin: false });\n return message.warning('프로필 사진을 첨부해주세요.');\n }\n\n if (photoSnd && !photoSndValue) {\n this.setState({ onSpin: false });\n return message.warning('이미지 파일을 첨부해주세요.');\n }\n\n if (fileFst && !fileFstValue) {\n this.setState({ onSpin: false });\n return message.warning('이미지 파일을 첨부해주세요.');\n }\n\n if (fileSnd && !fileSndValue) {\n this.setState({ onSpin: false });\n return message.warning('추가 파일을 첨부해주세요.');\n }\n\n const form = { careCareer, info };\n if (photoFst) {\n const { data } = await imageUpload(photoFstValue);\n form.photoFst = data;\n }\n if (photoSnd) {\n const { data } = await imageUpload(photoSndValue);\n form.photoSnd = data;\n }\n if (fileFst) {\n const { data } = await imageUpload(fileFstValue);\n form.fileFst = data;\n }\n if (fileSnd) {\n const { data } = await imageUpload(fileSndValue);\n form.fileSnd = data;\n }\n\n const { data } = await axios.post('/v1/user/apply/mate', {\n form,\n });\n\n if (!data) {\n this.setState({ onSpin: false });\n return message.error('서버 장애로 지원에 실패했습니다. 관리자에게 문의해주세요.');\n }\n\n if (data === 'success') {\n this.setState({ onSpin: false });\n message.success('감사합니다. 메이트 지원이 완료되었습니다. 검토후 결과를 안내해드리겠습니다.');\n console.log(data, form);\n setTimeout(() => {\n window.location.href = '/';\n }, 1500);\n return null;\n }\n\n if (data === 'check parameters') {\n this.setState({ onSpin: false });\n return message.info('누락된 정보가 있는지 지원서 양식을 확인해주세요.');\n }\n };\n\n render() {\n const { careCareer, info, photoFst, photoSnd, fileFst, fileSnd } = this.state;\n\n return (\n \n \n 메이트 지원하기\n \n 치매관련 간병 경력\n {\n this.editForm({ type: 'careCareer', value: '없어요' })\n }}\n >\n 없어요\n \n {\n this.editForm({ type: 'careCareer', value: '1년 미만' })\n }}\n >\n 1년 미만\n \n {\n this.editForm({ type: 'careCareer', value: '2 ~ 3년' })\n }}\n >\n 2 ~ 3년\n \n {\n this.editForm({ type: 'careCareer', value: '3년이상' })\n }}\n >\n 3년이상\n \n \n\n {info.map((item, index) => (\n \n \n {item.question}{' '}\n {item.maxLength ? (\n \n ({item.value ? item.value.length : 0}/{item.maxLength})\n \n ) : (\n ''\n )}\n \n {\n const _info = JSON.parse(JSON.stringify(info));\n if (item.maxLength && ev.target.value.length > item.maxLength) {\n return null;\n }\n\n _info[index].value = ev.target.value;\n this.editForm({ type: 'info', value: _info });\n }}\n />\n \n ))}\n {photoFst ? (\n \n 프로필 사진\n {this.state.photoFstValue ? (\n \n \n \n ) : null}\n {\n this.editForm({ type: 'photoFstValue', value: ev.target.files[0] });\n }}\n />\n \n ) : null}\n {photoSnd ? (\n \n 이미지 파일 첨부\n {this.state.photoSndValue ? (\n \n \n \n ) : null}\n {\n this.editForm({ type: 'photoSndValue', value: ev.target.files[0] });\n }}\n />\n \n ) : null}\n {fileFst ? (\n \n 이력서 첨부\n {this.state.fileFstValue ?

{this.state.fileFstValue.name}

: null}\n {\n this.editForm({ type: 'fileFstValue', value: ev.target.files[0] });\n }}\n />\n
\n ) : null}\n {fileSnd ? (\n \n 추가 파일첨부\n {this.state.fileSndValue ?

{this.state.fileSndValue.name}

: null}\n {\n this.editForm({ type: 'fileSndValue', value: ev.target.files[0] });\n }}\n />\n
\n ) : null}\n\n
\n 지원하기\n
\n
\n {this.state.onSpin ? (\n \n \n \n ) : null}\n
\n );\n }\n}\n\nexport default MateFormPage;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\n\nimport { mainColor } from '../../../theme';\n\nexport const FormContainer = styled.div`\n // background-color: ${mainColor};\n width: 100vw;\n\n padding-top: 55px;\n`;\n\nexport const InnerContainer = styled.div`\n max-width: 800px;\n margin: 0 auto;\n padding: 80px 0px;\n\n .type-button-wrapper {\n width: 100%;\n height: 48px;\n\n background-color: white;\n border: 1px solid #e6e6e6;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n\n > .type-button {\n width: 50%;\n height: 100%;\n line-height: 48px;\n\n text-align: center;\n cursor: pointer;\n\n font-size: 16px;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n }\n\n > .type-button.active {\n background: rgba(0, 0, 0, 0.7);\n border-radius: 4px;\n color: #f9f9f9;\n }\n }\n\n @media (max-width: 1080px) {\n padding: 80px 16px;\n }\n\n @media (max-width: 768px) {\n padding: 80px 16px;\n }\n`;\n\nexport const LargeText = styled.p`\n margin-bottom: 0px;\n\n font-weight: bold;\n color: #ffffff;\n font-size: 32px;\n\n padding: 2.5px;\n border-bottom: 4px solid #ffffff;\n display: inline-block;\n`;\n\nexport const InputWrapper = styled.div`\n border-radius: 8px;\n border: 1px solid #e9e9e9;\n background-color: #ffffff;\n padding: 16px;\n border-left: 8px solid ${mainColor};\n\n margin-bottom: 12px;\n overflow: hidden;\n`;\n\nexport const InputLabel = styled.div`\n font-size: 17px;\n margin-bottom: 8px;\n\n > span {\n font-size: 12px;\n }\n`;\n\nexport const StyledInput = styled(Input.TextArea)`\n font-size: 14px;\n &::placeholder {\n font-size: 14px;\n }\n`;\n\nexport const ApplyButton = styled.span`\n padding: 10px 16px;\n background-color: ${mainColor};\n\n color: #ffffff;\n font-size: 16px;\n font-weight: bold;\n\n width: 100%;\n min-width: 200px;\n max-width: 360px;\n\n border-radius: 40px;\n overflow: hidden;\n\n display: inline-block;\n margin-top: 40px;\n cursor: pointer;\n\n &:hover {\n transition: all 0.5s;\n background-color: #ffffff;\n border: 1px solid ${mainColor};\n color: ${mainColor};\n }\n`;\n\nexport const FormImgWrapper = styled.div`\n > img {\n padding-bottom: 10px;\n width: 150px;\n object-fit: contain;\n }\n`;\n\nexport const SpinWrapper = styled.div`\n display: flex;\n width: 100vw;\n height: 100vh;\n\n position: fixed;\n top: 0px;\n left: 0px;\n\n z-index: 9999;\n\n align-items: center;\n justify-content: center;\n\n background-color: rgba(0, 0, 0, 0.6);\n`;\n","import React from 'react';\nimport { Checkbox, Select, message, Spin } from 'antd';\n\n// utils\nimport axios from '../../../Lib/axios';\nimport { imageUpload } from '../../../Lib/Api/app';\n\n// styles\nimport { FormContainer, InnerContainer, InputWrapper, InputLabel, ApplyButton, LargeText, FormImgWrapper, SpinWrapper } from './mateApply.styled';\nimport { WithamteInputWithButton, WithmateInput, WithmateSelect, WithmateTextarea } from '../../../Components/Common/input';\n\nclass MateApplyPage extends React.PureComponent {\n state = {\n photo: '',\n onSpin: false,\n };\n\n handleChange = e => {\n this.setState({ [e.target.title]: e.target.value });\n };\n\n handleTrimChange = e => {\n this.setState({ [e.target.title]: e.target.value.trim() });\n };\n\n onAddress = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { roadAddress, buildingName } = data;\n this.setState(prevState => ({\n address: `${roadAddress} (${buildingName})`,\n }));\n },\n }).open();\n };\n\n editApply = ({ type, value }) => {\n this.setState({ [type]: value });\n };\n\n onSendApply = async () => {\n const {\n name,\n gender,\n birth,\n // photo,\n email,\n contact,\n address,\n connection,\n connection_etc,\n activity_area,\n drive,\n careCareer,\n care_experience,\n insurance,\n privacy,\n license_photo,\n } = this.state;\n\n this.setState({ onSpin: true });\n\n if (!name) {\n this.setState({ onSpin: false });\n return message.warning('성함을 입력하세요.');\n }\n\n if (!gender) {\n this.setState({ onSpin: false });\n return message.warning('성별을 입력하세요.');\n }\n\n if (!birth || birth.length < 8) {\n this.setState({ onSpin: false });\n return message.warning('생년월일 8자리를 입력하세요.');\n }\n\n if (!email) {\n this.setState({ onSpin: false });\n return message.warning('이메일을 입력하세요.');\n }\n\n if (!contact) {\n this.setState({ onSpin: false });\n return message.warning('개인 연락처를 입력하세요.');\n }\n\n if (!address) {\n this.setState({ onSpin: false });\n return message.warning('자택 주소를 검색하여 입력하세요.');\n }\n\n if (!careCareer) {\n this.setState({ onSpin: false });\n return message.warning('치매관련 간병 경력 기간을 선택하세요.');\n }\n\n // if (!activity_area) {\n // this.setState({ onSpin: false });\n // return message.warning('메이트 활동이 가능한 지역을 선택해주세요.');\n // }\n\n if (!care_experience) {\n this.setState({ onSpin: false });\n return message.warning('개인 간병 경력 사항을 입력하세요.');\n }\n\n if (!insurance) {\n this.setState({ onSpin: false });\n return message.warning('삼성화재 전문인 배상 책임 보험 가입 동의를 선택하세요.');\n }\n\n if (!privacy) {\n this.setState({ onSpin: false });\n return message.warning('개인정보 수집 및 이용 동의를 선택하세요.');\n }\n\n const formData = new FormData();\n formData.append('license_photo', license_photo);\n const header = { headers: { 'Content-Type': 'multipart/form-data' } };\n const { data: image } = await axios.post('/v1/user/apply/mate/image/upload', formData, header);\n\n const { data } = await axios.post('/v1/user/apply/mate/add', {\n name,\n gender,\n birth,\n // photo: image,\n email,\n contact,\n address,\n connection,\n connection_etc,\n activity_area: activity_area ? activity_area.join(', ') : '', // 배열을 쉼표로 구분된 문자열로 변환\n drive,\n careCareer,\n care_experience,\n insurance,\n privacy,\n license_photo: image,\n });\n\n if (!data) {\n this.setState({ onSpin: false });\n return message.error('서버 장애로 지원에 실패했습니다. 관리자에게 문의해주세요.');\n }\n\n if (data === 'success') {\n this.setState({ onSpin: false });\n message.success('감사합니다. 메이트 지원이 완료되었습니다. 검토후 결과를 안내해드리겠습니다.');\n setTimeout(() => {\n window.location.href = '/';\n }, 1500);\n return null;\n }\n\n if (data === 'check parameters') {\n this.setState({ onSpin: false });\n return message.info('누락된 정보가 있는지 지원서 양식을 확인해주세요.');\n }\n };\n\n render() {\n return (\n \n \n 메이트 지원하기\n\n \n 성함을 입력하세요\n \n \n\n \n 성별을 선택하세요\n
\n {\n this.editApply({ type: 'gender', value: '남자' });\n }}\n >\n 남자\n
\n {\n this.editApply({ type: 'gender', value: '여자' });\n }}\n >\n 여자\n
\n
\n \n\n \n 생년월일을 입력하세요\n \n \n\n {/* \n 이미지 파일 첨부\n {this.state.photo ? (\n \n \n \n ) : null}\n {\n this.editApply({ type: 'photo', value: ev.target.files[0] });\n }}\n />\n */}\n\n \n 개인 이메일을 입력하세요\n \n \n\n \n 개인 연락처를 입력하세요\n \n \n\n \n 자택 주소를 입력하세요\n {\n this.onAddress();\n }}\n />\n \n\n \n 메이트 가입 경로(선택 사항)\n {\n this.editApply({ type: 'connection', value });\n }}\n >\n 한국직업평가진흥협회\n 검색\n 광고\n 구직사이트\n 뉴스기사\n 대신위드유\n 에이플러스\n 복지넷\n 강동 50+\n 서대문 50+\n 국립 암센터\n 지인\n 카페•블로그\n 기타\n \n {this.state.connection === '기타' ? (\n \n ) : null}\n {this.state.connection === '한국직업평가진흥협회' ? (\n \n 자격증 이미지 파일첨부\n {this.state.license_photo ? (\n \n \n \n ) : null}\n {\n this.editApply({ type: 'license_photo', value: ev.target.files[0] });\n }}\n />\n \n ) : null}\n \n\n \n 메이트 활동 가능 지역을 알려주세요\n {\n this.editApply({ type: 'si', value });\n }}\n >\n 서울\n 경기도\n 경상남도\n \n {this.state.si === '서울' ? (\n {\n this.editApply({ type: 'activity_area', value });\n }}\n >\n 강남구\n 강동구\n 강북구\n 강서구\n 관악구\n 광진구\n 구로구\n 금천구\n 노원구\n 도봉구\n 동대문구\n 동작구\n 마포구\n 서대문구\n 서초구\n 성동구\n 성북구\n 송파구\n 양천구\n 영등포구\n 용산구\n 은평구\n 종로구\n 중구\n 중랑구\n \n ) : null}\n {this.state.si === '경기도' ? (\n {\n this.editApply({ type: 'activity_area', value });\n }}\n >\n 경기남부\n 수원시\n 용인시\n 성남시\n 부천시\n 화성시\n 안산시\n 평택시\n 시흥시\n 김포시\n 광주시\n 광명시\n 군포시\n 하남시\n 오산시\n 이천시\n 안성시\n 의왕시\n 양평군\n 여주시\n 과천시\n 경기북부\n 고양시\n 남양주시\n 파주시\n 의정부시\n 양주시\n 구리시\n 포천시\n 동두천시\n 가평군\n 연천군\n \n ) : null}\n\n {this.state.si === '경상남도' ? (\n {\n this.editApply({ type: 'activity_area', value });\n }}\n >\n 창원시\n \n ) : null}\n {/* */}\n \n\n \n 운전 가능 여부를 선택하세요\n {\n this.editApply({ type: 'drive', value: '가능' });\n }}\n >\n 가능\n \n {\n this.editApply({ type: 'drive', value: '불가능' });\n }}\n >\n 불가능\n \n \n\n \n 치매관련 간병 경력\n {\n this.editApply({ type: 'careCareer', value: '없어요' });\n }}\n >\n 없어요\n \n {\n this.editApply({ type: 'careCareer', value: '1년 미만' });\n }}\n >\n 1년 미만\n \n {\n this.editApply({ type: 'careCareer', value: '2 ~ 3년' });\n }}\n >\n 2 ~ 3년\n \n {\n this.editApply({ type: 'careCareer', value: '3년이상' });\n }}\n >\n 3년이상\n \n \n\n \n 개인의 간병 경력 사항을 입력하세요\n \n \n\n \n 삼성화재 전문인 배상 책임 보험 가입 동의\n

\n 보험 가입 심사를 위해 설계 동의를 진행해주세요. 위드메이트는 메이트의 서비스 이행 중 안전한 보호를 위해 회사가 부담하는 보험 가입\n 절차를 도와드리고 있습니다. 보험 가입에 대한 의사를 체크해주세요. 해당 절차는 보험 가입 심사 동의를 위한 것이며, 동의를 하는것\n 만으로 보험에 가입이 되는 것은 아닙니다. 보험 가입은 메이트 심사 합격 후 실제 서비스가 매칭된 인원에 한하여 본사와 전화 상담 후\n 진행됩니다.\n

\n {\n this.editApply({ type: 'insurance', value: '동의' });\n }}\n >\n 동의\n \n {\n this.editApply({ type: 'insurance', value: '비동의' });\n }}\n >\n 비동의\n \n
\n\n \n 개인정보 수집 및 이용 동의\n

\n 위드메이트는 본 지원서를 통해 수집한 개인정보를 메이트 심사, 서비스 교육 안내, 동행 서비스 중개를 제외한 타 목적으로 이용하지\n 않습니다. 지원자는 본 개인정보 수집 및 이용에 동의하지 않을 권리가 있습니다. 단, 동의하지 않을 경우 메이트 심사 및 모집에 제한이\n 있을 수 있습니다. 위드메이트의 개인정보 수집 및 이용 동의 여부를 선택해주세요.\n

\n {\n this.editApply({ type: 'privacy', value: '동의' });\n }}\n >\n 동의\n \n {\n this.editApply({ type: 'privacy', value: '비동의' });\n }}\n >\n 비동의\n \n
\n\n
\n 지원하기\n
\n \n {/* {this.state.onSpin ? (\n \n \n \n ) : null} */}\n \n );\n }\n}\n\nexport default MateApplyPage;\n","import React from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport swal from 'sweetalert2';\n\n// components\nimport { GuideNavContainer, InnerContainer, GuideNavWrapper, NavTab, MobileBr } from '../guide.styled';\n\nexport const GuideNav = ({ activeTab, onTab, onReserve }) => {\n return (\n \n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('withmate');\n }}\n >\n 위드메이트란?\n \n \n {/* \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('concept');\n }}\n >\n 병원 동행이란?\n \n */}\n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('types');\n }}\n >\n 서비스 종류\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('merit');\n }}\n >\n 믿을수 있는 위드메이트\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('usage');\n }}\n >\n 이런분께 추천해요\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('partners');\n }}\n >\n 위드메이트 파트너\n \n \n \n \n \n );\n};\n","import React from 'react';\n\n// components\nimport {\n GuideConceptContainer,\n InnerContainer,\n GuideConceptTitle,\n GuideConceptImageWrapper,\n GuideConceptImage,\n GuideConceptImageMobile,\n GuideConceptTextWrapper,\n GuideConceptTextBlock,\n MobileBr,\n DesktopBr,\n} from '../guide.styled';\n\nexport const GuideConcept = ({}) => {\n return (\n \n {/* \n 병원 동행이란?\n \n \n \n \n \n \n ‘비응급 의료 동행(Non-Emergency-Medical-Transportation)’으로\n 불리는 ‘병원 동행’ 서비스는 응급 상황에 처하지는 않았으나 정기적, 혹은\n 비정기적으로 의료 기관에 방문해 적절한 의료 조치를 받아야 하는 사람을\n 위한 헬스케어 서비스\n 입니다. 이미 미국과 캐나다, 일본 등의 선진국에서는\n 국가 주도의 복지 서비스로 정착했으며, 이를 넘어 국가 차원의 병원 동행\n 전문 기업 육성에 힘을 쏟고 있는 상황입니다.\n \n \n 위드메이트는 국내 최초로 ‘비응급 의료 동행 서비스’의 개념을 구축했으며,\n 유수의 기관과 많은 개인에게 병원 동행 서비스를 제공했습니다.\n \n \n 위드메이트 플랫폼이 제공하는 병원 동행 서비스는 다음과 같습니다.\n \n \n */}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport swal from 'sweetalert2';\n\n// components\nimport {\n GuideDetailContainer,\n InnerContainer,\n GuideConceptTitle,\n GuideDetailServiceCardWrapper,\n GuideDetailServiceCard,\n GuideCardImage,\n GuideCardName,\n GuideCardType,\n GuideCardDescription,\n GuideCardSpecTitle,\n GuideCardSpecRow,\n MobileBr,\n DesktopBr,\n} from '../guide.styled';\n\nimport { UNEMER, ASSIST } from '../../../Lib/variables';\n\nexport const GuideDetail = () => {\n return (\n \n \n 서비스 종류\n \n \n <>\n 위드메이트 동행 전문가가 고객님의\n
\n 자택에서 병원까지 동행하고, 병원 업무를\n
\n 마친 뒤 다시 자택까지 동행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 25,000원 (추가 30분마다 12,500원)\n \n \n }\n spec1={\n <>\n 위드메이트 소속 동행 전문가가
\n 자택에서 병원까지 동행\n \n }\n spec2={\n <>\n 대중교통, 고객님 소유 자차, 택시 중
\n 선택하여 이동\n \n }\n spec3={\n <>\n 서비스 종료 이후\n
\n 서비스 보고서 열람 가능\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡\n
\n 실시간 알림 업데이트 제공\n \n }\n />\n \n <>\n 위드메이트 베이직 서비스는 위드메이트 동행\n
\n 전문가가 고객님께서 지정한 의료 시설 혹은\n
\n 병원 내에서 보호자 대행 업무를 수행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 15,000원 (추가 30분마다 7,500원)\n \n \n }\n spec1={\n <>\n 고객님의 진료 일정에 맞춰 위드메이트
\n 소속 동행 전문가가 의료 시설 도착\n \n }\n spec2={\n <>\n 지정된 의료 시설에서 고객님 접선 후
\n 진료 시작부터 끝까지 동행\n \n }\n spec3={\n <>\n 진료 종료 후 고객님의 상태를
\n 파악하고 이상 없을 시 서비스 종료\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡\n
\n 실시간 알림 업데이트 제공\n \n }\n />\n \n <>\n {/* 위드메이트 동행 전문가가 고객님께서\n
\n 자택에서 병원까지 동행하고, 병원 내에서\n
\n 보호자 대행 업무를 수행합니다. */}\n 고객님께서 수면내시경 검사를 받는\n
\n 병원 내에서 위드메이트 동행 전문가가\n
\n 보호자 대행 업무를 수행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 15,000원 (추가 30분마다 7,500원)\n \n \n }\n spec1={\n <>\n 고객님의 진료 일정에 맞춰 위드메이트
\n 소속 동행 전문가가 의료 시설 도착\n \n }\n spec2={\n <>\n 지정된 의료 시설에서 고객님 접선 후
\n 수면 내시경 검사 시작부터 끝까지 동행\n \n }\n spec3={\n <>\n 수면 내시경 검사 종료 후 고객님의
\n 상태를 파악하고 이상 없을 시 종료\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡
\n 실시간 알림 업데이트 제공\n \n }\n />\n
\n
\n
\n );\n};\n\nconst GuideCard = ({ source, name, type, desc, spec1, spec2, spec3, spec4 }) => (\n \n \n {name}\n {type}\n {desc}\n 서비스 구성\n\n \n 01\n

{spec1}

\n
\n\n \n 02\n

{spec2}

\n
\n\n \n 03\n

{spec3}

\n
\n\n \n 04\n

{spec4}

\n
\n
\n);\n","import React from 'react';\nimport styled from 'styled-components';\n\n// components\nimport { GuideUsingContainer, InnerContainer, GuideConceptTitle, GuideUsingSubFlexWrapper, GuideUsageFlexbox, MobileBr, DesktopBr } from '../guide.styled';\n\nexport const GuideUsage = () => {\n return (\n \n \n 이런 분께 추천해요\n \n \n
\n \n
\n \n 병원에 가시는 \n \n 어르신\n \n
\n \n
\n \n
\n \n 거동이 \n \n 힘드신 분\n \n
\n \n
\n \n
\n \n 항암 / 방사선 치료를 \n \n 받으시는 분\n \n
\n
\n\n \n \n
\n \n
\n \n 수면내시경 등 \n \n 마취가 동반되는 \n \n 치료를 받으시는 분\n \n
\n \n
\n \n
\n \n 입원 / 퇴원\n \n \n 하시는 분\n \n
\n \n
\n \n
\n \n 안과 진료/시술을 \n \n 받으시는 분\n \n
\n
\n\n \n \n
\n \n
\n \n 각종 검진을 \n \n 받으시는 분\n \n
\n \n
\n \n
\n \n 임산부, 산모, \n 및 소아\n \n
\n \n
\n \n
\n 혈액 투석 환자\n
\n
\n
\n
\n );\n};\n","import React from 'react';\nimport {\n MeritContainer,\n InnerContainer,\n MeritHeaderWrapper,\n MeritCardList,\n MeritCardWrapper,\n MeritCardNumber,\n MeritCardDesc,\n MeritCardTitleRow,\n} from '../guide.styled';\n\nexport const Merit = () => {\n return (\n \n \n \n
\n \n

믿을 수 있는 위드메이트

\n
\n
\n
\n \n \n \n 위드메이트 병원 동행 서비스는\n
\n 신한 오픈 이노베이션 2기 우수 기업으로\n
\n 선정된 신뢰할 수 있는 서비스입니다.{' '}\n \n }\n number='01'\n />\n \n 위드메이트는 엄격한 검증을 거친 후
\n 보건복지부와 고양시, 그리고 국립 암센터가\n
\n 주관하는‘고양 해피 케어’컨소시엄의
\n 일원으로 활동 중에 있습니다.\n \n }\n number='02'\n />\n \n 위드메이트는 더욱 높은 서비스 경험을\n
\n 제공하기 위해 매뉴얼을 만들고, 서비스
\n 종료 후 고객님의 후기를 반영하여
\n 서비스 인력을 관리합니다.\n \n }\n number='03'\n />\n \n 위드메이트는 여성 인력 개발 센터,\n
재취업 지원 센터, 고용 복지 플러스\n
센터 등의 전문 기관과 일자리 협업 \n
\n 프로그램을 운영하며 검증된 서비스\n
\n 인력을 주기적으로 양성하고 있습니다.\n \n }\n number='04'\n />\n \n 위드메이트는 서비스 제공 인력 전원이\n
\n 삼성화재가 제공하는 1억 2천만원 한도의
\n ‘전문인 영업 배상 책임 보험’에 가입되어
\n 책임지는 서비스를 제공합니다.\n \n }\n number='05'\n />\n \n 위드메이트는 시니어 헬스케어 서비스의\n
\n 본질은 ‘안전’이라고 생각하고, 서비스 인력의\n
\n 정기적인 교육, 자격증 취득 및 보유 여부
\n 점검, 서비스 매뉴얼의 수정 및 보완등을
\n 진행하고 있습니다.\n \n }\n number='06'\n />\n
\n
\n
\n );\n};\n\nconst MeritCard = ({ number, title, source, desc }) => (\n \n {number}\n \n \n {title}\n \n {desc}\n \n);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport {\n WithmateContainer,\n InnerContainer,\n WithmateTitle,\n MeritCardDesc,\n FlexDivWrapper,\n BigSideBox,\n SmallSideBox,\n WithmateBg,\n GuideConceptTitle,\n MobileBr,\n DesktopBr,\n} from '../guide.styled';\nexport const Withmate = () => {\n return (\n \n \n \n \n \n \n 위드메이트란?\n \n \n 위드메이트는 온라인 병원 동행 서비스 매칭 플랫폼 시작으로,\n 대한민국에서{' '}\n \n 사회적 의미의 ‘시니어’라는 \n 단어를 없애기 위해\n {' '}\n 설립된 \n \n 시니어 라이프 스타일 \n 혁신 기업\n \n 입니다.\n \n 위드메이트의 시작\n \n 2015년에 설립된 위드메이트는 초고령화 \n 1인 가구 시대\n 접어든 대한민국의 현 상황에 적합한\n \n 시니어 라이프 스타일 혁신\n \n 서비스를 개발합니다.\n \n \n 이를 위해 위드메이트는 \n 국내 최초로 병원 동행 서비스를 런칭해\n \n \n 탄탄한 신뢰안정된 서비스 시스템을 기반으로 \n 축적되는 \n 데이터와 실전 경험을 바탕으로{' '}\n \n 다양한 \n 신규 서비스를 연구\n \n 하여 \n \n 시니어 라이프 스타일 \n 혁신 기업\n \n 의 길을 걷고 있습니다.\n \n \n \n \n \n \n {/* \n \n \n \n \n 등장 배경\n \n 2017년, 국내 65세 이상 인구 비율이 14%를 넘으며 \n 대한민국은 공식적으로 \n 고령 사회 에 접어들었습니다. \n 다가올 2025년, 65세 이상 인구 비율은 20%를\n \n \n 넘길 것으로 전망되며 이후{' '}\n \n 대한민국은 초고령 사회로 \n 접어들게 될 것\n \n 입니다.\n \n\n \n 이렇게 시니어가 늘어가는 순간에도, \n 현대 사회는 날로 분주해지기만 합니다.\n \n 젊은 세대는 \n 매일 직장과 육아라는 전투를 치르며 살아남기 위한 \n 발버둥을 치기에도 \n 버겁습니다. 이렇게 자기 자신을 \n 돌보기 위한 시간을 내는 것도 힘겨운 상황 속에서,\n \n \n \n 떨어져 있는 고령 가족에 대한 걱정은 어쩌면 \n 사치처럼 보이기도 합니다.{' '}\n \n \n\n \n 물리적인 거리와 시간적인 제약, 그리고 직장과 육아가 \n 주는 압박감을 떨쳐내고 \n \n 고령의 가족을 위해 선뜻 \n 움직일 수 있을까요?{' '}\n \n 시니어는 날로 발전하는 기술의 \n \n 파도 속에서 자신의 생존을 위해 필요한 서비스를 \n 누군가의 도움 없이 적재적소에 선택해 \n \n 자유롭게 \n 사용할 수 있을까요?\n {' '}\n 그렇다면 우리는 언제까지 이런 \n 막막한 상황을 견디기만 \n 해야 할까요? 위드메이트는 \n 이렇게 시니어가 겪게 되는 다양한{' '}\n \n 일상 생활의 \n 불편함을{' '}\n \n \n 병원 동행 서비스를 시작으로 해소합니다.\n \n \n */}\n \n \n );\n};\n\nconst Title = styled(GuideConceptTitle)`\n margin-bottom: 24px;\n text-align: left;\n`;\n\nconst Block = styled(MeritCardDesc)`\n font-size: 16px;\n margin-bottom: 24px;\n ${props => props.noMargin && `margin-bottom: 0px;`}\n ${props => props.bigMargin && `margin-bottom: 74px;`}\n\n @media (max-width: 768px) {\n word-break: keep-all;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const GuideBanner = () => {\n return 위드메이트를 알려드릴게요!;\n};\n\nconst GuideBannerContainer = styled.div`\n width: 100%;\n height: 235px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n font-size: 40px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: -0.7px;\n text-align: center;\n color: #ffffff;\n\n background-image: url('/assets/images/guide_title_bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 768px) {\n font-size: 22px;\n background-position: left;\n }\n`;\n","import React from 'react';\nimport _ from 'lodash';\nimport styled from 'styled-components';\nimport { message } from 'antd';\n\n// components\nimport { GuideNav } from './Section/nav';\nimport { GuideConcept } from './Section/concept';\nimport { GuideDetail } from './Section/detail';\nimport { GuideUsage } from './Section/usage';\nimport { WithmatePartners } from '../Home/Section/partners';\nimport { Merit } from './Section/merit';\nimport { Withmate } from './Section/withmate';\nimport { GuideBanner } from './Section/banner';\n\nimport { Container } from './guide.styled';\nimport { NoramlReserveModal } from '../../Components/newModal';\n\nclass GuidePage extends React.PureComponent {\n state = {\n activeTab: 'concept',\n reserveModal: false,\n reserveType: null,\n step: 1,\n mobile_menu: false,\n addHalfTime: false,\n };\n\n inputHandler = ({ type, value }) => {\n this.setState({ [type]: value });\n };\n\n inputDeepHandler = ({ type, deepType, value }) => {\n this.setState(prevState => ({\n [type]: {\n ...prevState[type],\n [deepType]: value,\n },\n }));\n };\n\n onTab = tab => {\n this.setState({\n activeTab: tab,\n });\n };\n\n onRoute = path => {\n this.props.history.push(path);\n };\n\n render() {\n const { activeTab, reserveModal, step, addHalfTime, popoverVisible } = this.state;\n\n return (\n \n \n {\n this.setState({\n reserveModal: true,\n temp: {\n page: 1,\n service: 'unemergency',\n addTime: '60',\n payMethod: 'transfer',\n sex: '남',\n transport: 'common',\n report: false,\n },\n });\n }}\n />\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default GuidePage;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\n// component\nimport GuidePage from './guide';\nimport { MATE } from '../../Lib/variables';\n\n// styles\nimport StyledContainer from './guide.styled';\n\n// actions\nimport { serviceReserve, editResrveForm } from '../../Reducer/Modules/app';\n\nclass GuideContainer extends React.PureComponent {\n componentDidMount = () => {};\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapStateToDispatch = dispatch => ({\n serviceReserve: ({ userId, info }) => dispatch(serviceReserve({ userId, info })),\n editForm: ({ type, value }) => dispatch(editResrveForm({ type, value })),\n});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(GuideContainer);\n","import styled from 'styled-components';\n\nconst StyledContainer = styled.div``;\n\nexport default StyledContainer;\n\nexport const Container = styled.div``;\n\nexport const NemtTitleWrapper = styled.div`\n margin-top: 104px;\n margin-bottom: 58px;\n`;\n\nexport const InnerContainer = styled.div`\n width: 100%;\n\n max-width: 1120px;\n margin: 0 auto;\n\n @media (max-width: 1120px) {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n @media (max-width: 768px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nexport const NemtTitle = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 40px;\n line-height: 46px;\n\n text-align: center;\n letter-spacing: -0.6px;\n\n color: rgba(0, 0, 0, 0.8);\n`;\n\nexport const NemtServiceWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n justify-content: flex-start;\n`;\n\nexport const NemtServiceFlexWrapper = styled.div`\n display: flex;\n\n align-items: flex-start;\n justify-content: center;\n\n margin-bottom: 30px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const NemtBox = styled.div`\n margin-bottom: 30px;\n position: relative;\n\n @media (max-width: 768px) {\n margin-bottom: 80px;\n }\n`;\n\nexport const NemtColumnBox = styled(NemtBox)`\n width: calc((100% - 20px) / 2);\n\n &:first-child {\n margin-right: 20px;\n }\n\n @media (max-width: 768px) {\n &:first-child {\n margin-right: 0px;\n }\n\n width: 100%;\n }\n`;\n\nexport const NemtBoxTitle = styled.p`\n position: absolute;\n top: 34px;\n left: 34px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 16px;\n line-height: 20px;\n\n letter-spacing: -0.4px;\n\n > span {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 26px;\n line-height: 44px;\n\n letter-spacing: -0.777778px;\n }\n\n @media (max-width: 768px) {\n position: relative;\n top: 0px;\n left: 0px;\n\n margin-bottom: 4px;\n\n font-size: 15px;\n line-height: 21px;\n\n > span {\n font-size: 24px;\n line-height: 40px;\n }\n }\n`;\n\nexport const NemtServiceImageWrapper = styled.div`\n border-radius: 12px;\n overflow: hidden;\n\n &.desktop-visible {\n display: block;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n\n &.mobile-visible {\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n }\n\n > img {\n width: 100%;\n object-fit: contain;\n }\n`;\n\nexport const MobileBr = styled.br`\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const DesktopBr = styled.br`\n display: block;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const NemtInfobox = styled.div`\n padding: 24px;\n\n @media (max-width: 768px) {\n padding: 0px;\n padding-top: 24px;\n }\n`;\n\nexport const ReserveButton = styled.span`\n width: 246px;\n height: 48px;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n background: #3bc1ff;\n border-radius: 4px;\n\n cursor: pointer;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 14px;\n line-height: 24px;\n text-align: center;\n\n color: #ffffff;\n\n > img {\n width: 18px;\n height: 18px;\n\n margin-right: 6px;\n }\n\n margin-bottom: 20px;\n\n &:hover {\n opacity: 0.85;\n transition: all 0.5s;\n }\n\n @media (max-width: 430px) {\n font-size: 12px;\n }\n\n @media (max-width: 430px) {\n width: 100%;\n }\n`;\n\nexport const NemtDescription = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 20px;\n\n word-break: keep-all;\n\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n color: #3bc1ff;\n cursor: pointer;\n }\n\n @media (max-width: 768px) {\n font-size: 12px;\n line-height: 18px;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { message as Message } from 'antd';\n\n// components\nimport {\n Container,\n InnerContainer,\n NemtTitleWrapper,\n NemtTitle,\n NemtServiceWrapper,\n NemtBox,\n NemtColumnBox,\n NemtBoxTitle,\n NemtServiceFlexWrapper,\n NemtServiceImageWrapper,\n ReserveButton,\n NemtInfobox,\n NemtDescription,\n MobileBr,\n DesktopBr,\n} from './nemt.styled';\n\n// utils\nimport axios from '../../Lib/axios';\n\n// modal\nimport { EmergencyCorpSearchModal, ShareCarRequestModal } from '../../Components/modal';\n\nclass NemtPage extends React.PureComponent {\n state = {\n activeTab: 'concept',\n reserveModal: false,\n searchModal: false,\n emergencyList: [],\n emergencyKeyword: '',\n requestModal: false,\n requestInfo: {\n corp: '',\n address: '',\n manager: '',\n contact: '',\n message: '',\n },\n };\n\n componentDidMount = async () => {\n const { data } = await axios.get(`/v1/corp/list`);\n if (!data) return null;\n\n if (data && Array.isArray(data)) {\n this.setState({\n emergencyList: data,\n });\n }\n };\n\n onRoute = path => {\n this.props.history.push(path);\n };\n\n onShareRequest = async () => {\n const {\n requestInfo: { corp, address, manager, contact, message },\n } = this.state;\n if (!corp || !address || !manager || !contact || !message) return Message.info('정보를 기입해주세요.');\n\n const { data } = await axios.post('/v1/share/add', {\n corp,\n address,\n manager,\n contact,\n message,\n });\n\n if (!data) {\n return Message.error('일시적인 서버장애가 발생했습니다. 다시 시도해주세요.');\n }\n\n if (data === 'check parameters') {\n return Message.warning('정보를 모두 기입해주세요.');\n }\n\n if (data === 'success') {\n Message.success('셔틀 셰어링 서비스를 요청하였습니다.');\n\n this.setState({\n requestModal: false,\n requestInfo: {\n corp: '',\n address: '',\n manager: '',\n contact: '',\n message: '',\n },\n });\n }\n };\n\n render() {\n const { requestInfo, emergencyKeyword, emergencyList } = this.state;\n\n return (\n \n \n \n 서비스 안내\n \n\n \n \n \n \n \n \n \n \n\n \n {\n this.props.history.push('/nemt/service');\n }}\n >\n \n 예약하기\n \n\n \n 위드메이트\n \n \n 병원 동행 서비스\n \n\n \n 병원 동행 서비스는 응급 상황에 처하지는 않았으나 정기적, 혹은 비정기적으로 \n 의료 기관에 방문해 적절한 의료 조치를 받아야 하는 분들을 위한 서비스입니다. \n \n 자세한 설명은{' '}\n {\n this.props.history.push('/nemt/service');\n }}\n >\n 병원동행 서비스 NEMT 페이지\n \n 에서 확인이 가능합니다.\n \n \n \n \n\n \n \n \n \n \n\n \n {\n this.setState({ requestModal: true });\n }}\n >\n \n 문의하기\n \n\n \n 위드메이트\n \n \n 셔틀 셰어링 서비스\n \n\n \n 요양 시설 운영비 중 차량 유지 비용은 주유비, 운행 직원 급여, 식대 등이 \n 더해질 경우 막대한 비중을 차지합니다. 하지만 노후 차량을 사용하거나, \n 운행 직원 수를 줄일 경우 입소 환자 안전에 문제가 생기기 때문에 \n 요양 시설이 차량 유지 비용을 줄이는 방법은 사실상 없습니다.\n \n \n 이에 위드메이트는 요양 시설이 차량 유지 비용을 절감할 수 있는\n \n ‘셔틀 셰어링’ 서비스를 도입했습니다. A와 B라는 두 곳의 요양원이 \n 위드메이트가 제공하는 셔틀과 기사를 공유하며 잉여 시간과 좌석을 함께 \n 사용하는 방법입니다. A 병원의 남는 좌석을 B 병원이 이용하거나, \n B 병원의 환자가 치료를 받는 동안 A 병원의 환자가 차량을 이용하는 방식이죠.\n \n \n 위드메이트의 셔틀 쉐어링 서비스가 필요한 기관은 \n 문의 접수 버튼을 클릭하세요!\n \n \n \n\n \n \n \n \n\n \n {\n this.setState({ searchModal: true });\n }}\n >\n \n 검색하기\n \n\n \n 위드메이트\n \n \n 사설 구급 업체 검색 서비스 \n \n\n \n '구급’이라는 단어가 들어간 탓에, 흔히 사설 구급차를 떠올렸을 때 응급 상황이 \n 아닌 이상 사용할 일이 없을 것이라고 생각이 듭니다. 하지만 사설 구급차는 \n 요양 시설 입소 환자의 병원 이송, 대형 행사 진행 중 비상 대기, 정상 거동이 \n 불가한 환자 이송 등 일상 생활의 다양한 분야에 필요한 서비스입니다.\n \n \n 위드메이트는 플랫폼 이용자에게 무료로 각 지역의 사설 구급 업체를 \n 검색할 수 있는 서비스를 제공하고 있습니다. 지역별로 나눠 편리하게 \n 사설 구급 업체를 검색해보세요!\n \n \n \n \n \n\n {this.state.searchModal ? (\n {\n this.setState({ emergencyKeyword: value });\n }}\n visibleHandler={() => {\n this.setState({ searchModal: false });\n }}\n />\n ) : null}\n {this.state.requestModal ? (\n {\n this.setState({ requestModal: false });\n }}\n inputHandler={({ type, value }) => {\n this.setState(prevState => ({\n requestInfo: {\n ...prevState.requestInfo,\n [type]: value,\n },\n }));\n }}\n onSave={this.onShareRequest}\n />\n ) : null}\n \n );\n }\n}\n\nexport default NemtPage;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\n// component\nimport NemtPage from './nemt';\nimport { MATE } from '../../Lib/variables';\n\n// styles\nimport StyledContainer from './nemt.styled';\n\n// actions\nimport {} from '../../Reducer/Modules/app';\n\nclass NemtContainer extends React.PureComponent {\n componentDidMount = () => {};\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapStateToDispatch = dispatch => ({});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(NemtContainer);\n","import React from \"react\";\nimport Modal from \"react-modal\";\nimport styled from 'styled-components';\nimport { Button, message, Table } from 'antd';\n\nimport ProfileStyledContainer from \"../Auth/AuthPages/Profile/profile.styled\";\nimport { HalfWidthButton } from \"../../Components/Common/button\";\nimport { DivisionLine } from \"../../Components/Common/input\";\nimport { getPatientInfo } from \"../../Lib/Api/auth\";\n\nconst customStyles = {\n\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(15, 15, 15, 0.79)\",\n },\n content: {\n position: \"absolute\",\n top: \"30px\",\n height: \"60%\",\n border: \"1px solid #ccc\",\n background: \"#ffffff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\",\n },\n}\n\nconst patientColumn = ({ onCheck }) => {\n return [\n {\n title: '이름',\n dataIndex: 'name',\n align: 'center',\n width: '100px'\n },\n {\n title: '나이',\n dataIndex: 'age',\n align: 'center',\n width: '100px'\n },\n {\n title: '선택',\n align: 'center',\n width: '100px',\n dataIndex: '_id',\n render: (_id, data) =>\n { onCheck(data) }}\n >\n 선택\n \n },\n ]\n}\n\nclass PatientProfileListComponent extends React.PureComponent {\n state = {\n patientInfo: {},\n patientList: [],\n patientId: '',\n patientInfo: null\n };\n\n componentWillUnmount = () => {\n this.setState({ patientInfo: null });\n };\n\n onChoose = () => {\n const { patientInfo } = this.state;\n console.log(patientInfo)\n\n getPatientInfo({ patientId: patientInfo._id }).then(resolve => {\n console.log(resolve)\n const { data } = resolve;\n if (resolve && resolve.data && resolve.data.message === 'success') {\n if (patientInfo && patientInfo.reservedStarting) delete data.starting;\n if (patientInfo && patientInfo.environment) delete data.environment;\n if (patientInfo && patientInfo.walk) delete data.walk;\n\n this.setState({ patientInfo: resolve.data.data })\n } else {\n message.info('선택하신 환자 프로필이 존재하지 않습니다.');\n }\n });\n };\n\n onChangeCheckbox = ({ }) => {\n\n };\n\n // 체크박스 선택\n // rowSelection = {\n // onChange: (selectedRowKeys , selectedRows ) => {\n // console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);\n // },\n // getCheckboxProps: (record ) => {\n // console.log(record)\n // }\n // };\n\n render() {\n // console.log(this.props)\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 환자 프로필 목록\n \n * 환자 프로필 정보를 선택할 수 있습니다.
\n [ 마이페이지 ]에서 환자 프로필을 등록하실 수 있습니다.\n
\n
\n\n
\n\n \n\n
\n {\n this.props.onUpdatePatient(data);\n this.props.onClose()\n }\n })}\n rowKey='_id'\n pagination={{\n pageSize: 3,\n hideOnSinglePage: true,\n size: 'small',\n }}\n // rowSelection={{\n // type: 'checkbox',\n // ...this.rowSelection\n // }}\n // rowKey='_id'\n />\n
\n\n \n\n \n \n 닫기\n \n \n
\n
\n
\n
\n \n );\n }\n};\n\nexport default PatientProfileListComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;","import React from 'react';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { Button, Input, message, Table } from 'antd';\n\nimport ProfileStyledContainer from '../Auth/AuthPages/Profile/profile.styled';\nimport { HalfWidthButton } from '../../Components/Common/button';\nimport { DivisionLine } from '../../Components/Common/input';\nimport { getMateInfo } from '../../Lib/Api/auth';\nimport axios from '../../Lib/axios';\n\nconst customStyles = {\n overlay: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(15, 15, 15, 0.79)',\n },\n content: {\n position: 'absolute',\n top: '30px',\n height: '90%',\n border: '1px solid #ccc',\n background: '#ffffff',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n borderRadius: '4px',\n outline: 'none',\n padding: '20px',\n },\n};\n\nconst mateListColumn = ({ onCheck }) => {\n return [\n {\n title: '이름',\n dataIndex: 'name',\n align: 'center',\n width: '100px',\n sorter: (a, b) => a.name.localeCompare(b.name),\n },\n // {\n // title: '성별',\n // dataIndex: 'sex',\n // align: 'center',\n // width: '100px',\n // render: sex => {sex === '남' ? '남자' : '여자'}\n // },\n {\n title: '사진',\n dataIndex: 'photo',\n align: 'center',\n width: '100px',\n render: photoURL => ,\n },\n // {\n // title: '수행 이력',\n // dataIndex: 'review',\n // align: 'center',\n // width: '100px',\n // render: review => Pro 서비스 이력: {(review && review.unemergency) || 0}건\n //
Basic 서비스 이력: {(review && review.assist) || 0}건
,\n // },\n {\n title: '선택',\n align: 'center',\n width: '100px',\n dataIndex: '_id',\n render: (_id, data) => (\n {\n onCheck(data);\n }}\n >\n 선택\n \n ),\n },\n ];\n};\n\nclass PatientProfileListComponent extends React.PureComponent {\n state = {\n mateInfo: {},\n mateList: [],\n mateId: '',\n keyword: '',\n review: null,\n };\n\n componentWillUnmount = () => {\n this.setState({ mateInfo: null });\n };\n\n onChoose = () => {\n const { mateInfo, mateId } = this.state;\n console.log(mateInfo, mateId);\n\n getMateInfo({ mateId: mateInfo._id }).then(resolve => {\n console.log(resolve);\n const { data } = resolve;\n if (resolve && resolve.data && resolve.data.message === 'success') {\n this.setState({ mateInfo: resolve.data.data });\n } else {\n message.info('선택하신 메이트가 존재하지 않습니다.');\n }\n });\n };\n\n getList = () => {\n const { keyword } = this.state;\n\n const list = this.props.list.filter(item => item && item.name && item.name.toLowerCase().includes(keyword));\n\n return list;\n };\n\n render() {\n const list = this.getList();\n // console.log(this.props)\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 메이트 선택하기\n * 서비스 수행을 함께할 메이트를 선택하실 수 있습니다.\n \n\n
\n\n \n\n
\n {\n this.setState({ keyword: ev.target.value });\n }}\n placeholder='메이트 이름으로 검색하세요.'\n style={{ marginBottom: '24px' }}\n />\n {\n this.props.onUpdateMate(data);\n this.props.onClose();\n },\n })}\n rowKey='_id'\n pagination={{\n pageSize: 5,\n hideOnSinglePage: true,\n size: 'small',\n }}\n />\n
\n\n \n\n \n \n 닫기\n \n \n
\n
\n
\n
\n \n );\n }\n}\n\nexport default PatientProfileListComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;\n","import React from \"react\";\nimport Modal from \"react-modal\";\nimport styled from 'styled-components';\nimport { Button, message, Table } from 'antd';\n\nimport CardStyledContainer from \"../Auth/AuthPages/Card/card.styled\";\nimport { HalfWidthButton } from \"../../Components/Common/button\";\nimport { DivisionLine } from \"../../Components/Common/input\";\nimport { getCardInfo } from \"../../Lib/Api/auth\";\n\nconst customStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(15, 15, 15, 0.79)\",\n },\n content: {\n position: \"absolute\",\n top: \"30px\",\n height: \"40%\",\n border: \"1px solid #ccc\",\n background: \"#ffffff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\",\n }\n}\n\nconst cardColumn = ({ onCheck }) => {\n return [\n {\n title: '카드명',\n dataIndex: 'cardName',\n align: 'center',\n width: '80px'\n },\n {\n title: '카드번호',\n dataIndex: 'cardNum',\n align: 'center',\n render: cardNum => **** - **** - **** - {cardNum.slice(15, 19)}\n },\n {\n title: '선택',\n align: 'center',\n width: '60px',\n dataIndex: '_id',\n render: (_id, data) =>\n { onCheck(data) }}\n >\n 선택\n \n },\n ]\n}\n\nclass CardListComponent extends React.PureComponent {\n state = {\n cardInfo: {},\n cardList: [],\n cardId: '',\n cardInfo: null\n };\n\n componentWillUnmount = () => {\n this.setState({ cardInfo: null });\n };\n\n onChoose = () => {\n const { cardInfo } = this.state;\n console.log(cardInfo)\n\n getCardInfo({ cardId: cardInfo._id }).then(resolve => {\n console.log(resolve)\n const { data } = resolve;\n if (resolve && resolve.data && resolve.data.message === 'success') {\n if (cardInfo && cardInfo.cardName) delete data.cardName;\n if (cardInfo && cardInfo.cardNum) delete data.cardNum;\n if (cardInfo && cardInfo.year) delete data.year;\n if (cardInfo && cardInfo.month) delete data.month;\n\n this.setState({ cardInfo: resolve.data.data })\n } else {\n message.info('선택하신 카드정보가 존재하지 않습니다.');\n }\n });\n };\n\n render() {\n // console.log(this.props)\n return (\n \n \n
\n
\n
\n
\n \n
\n \n 결제 카드 목록\n \n * 결제하실 카드를 선택할 수 있습니다.
\n [ 마이페이지 ]에서 결제 카드를 등록하실 수 있습니다.\n
\n
\n\n
\n\n \n\n
\n {\n this.props.onUpdateCard(data);\n this.props.onClose()\n }\n })}\n rowKey='_id'\n pagination={{\n pageSize: 3,\n hideOnSinglePage: true,\n size: 'small',\n }}\n />\n
\n\n \n\n \n \n 닫기\n \n \n
\n
\n
\n
\n \n );\n }\n};\n\nexport default CardListComponent;\n\nconst CloseButton = styled.img`\n position: absolute;\n top: 16px;\n right: 12px;\n\n width: 18px;\n height: 18px;\n\n object-fit: cover;\n cursor: pointer;\n\n @media (max-width: 480px) {\n width: 16px;\n height: 16px;\n\n &.desktop-only {\n display: none;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nconst TitleSection = styled.div``;\n\nconst WideModalTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 4px;\n`;\n\nconst AlertText = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.52;\n letter-spacing: -0.3px;\n text-align: left;\n color: #ff5500;\n`;","import React from 'react';\nimport styled from 'styled-components';\nimport { Button, Checkbox, message, notification, Radio, Select } from 'antd';\nimport moment from 'moment';\nimport 'moment/locale/ko';\nimport locale from 'antd/es/date-picker/locale/ko_KR';\nimport holidayKR from 'holiday-kr';\nimport swal from 'sweetalert2';\n\n// libs\nimport axios from '../../Lib/axios';\nimport { combineDateAndTime } from '../../Lib/utils';\nimport { celluarValidate } from '../../Lib/regex';\n\n// styled\nimport { ReserveTopCover, ReservePageContainer, ResrevePageInnerContainer, ResrevePageHalfInnerContainer, MobileBr, DesktopBr } from './reserve.styled';\nimport { TopBannerSection, TopBannerText, TopBannerDescription } from './reserve.styled';\nimport { StepSectionContainer, StepButton, LastStepButton, StepButtonWrapper, StepArrow } from './reserve.styled';\nimport { NextStepGudieContainer, NextStepEmoj, NextStepTitle, NextStepArrowDown } from './reserve.styled';\nimport { ServiceSectionContainer, ServiceSectionTitle, ServiceSectionDescription } from './reserve.styled';\nimport { ServiceCardWrapper, ServiceCardButton, ServiceCardList } from './reserve.styled';\nimport { ZzzServiceWrapper, ZzzArt, ZzzDescription } from './reserve.styled';\nimport { AlzheServiceWrapper, AlzheArt, AlzheDescription } from './reserve.styled';\nimport { ServiceTypeSectionContainer, ServiceTypeWrapper } from './reserve.styled';\nimport { ServiceTypeCardWrapper, ServiceTypeCardImg, NextStepButton, ServiceTypeName, ServiceTypeDescription } from './reserve.styled';\nimport { FormContainer, MobileStepImage, TopBannerSubDescription, UnderLineText, FormWrapper, FormMainTitle, FormMainAlert } from './reserve.styled';\nimport {\n ServiceName,\n LabelValue,\n DashAndText,\n Sexes,\n LabelAndValueRow,\n PriceValue,\n LabelDescription,\n FlexFormWrapper,\n ResultFormWrapper,\n PriceDetailLabel,\n PriceDetailValue,\n CongraturateLogo,\n DoneResultWrapper,\n} from './reserve.styled';\n\n// components\nimport {\n DivisionLine,\n WithmateLabel,\n WithmateInput,\n WithmateTextarea,\n WithmateSelect,\n FlexWrapper,\n WithmateTimepicker,\n WithamteInputWithButton,\n WithmateDatePicker,\n} from '../../Components/Common/input';\nimport { ButtonWrapper, RadiusHalfWidthButton } from '../../Components/Common/button';\n\nimport PatientProfileListModal from './patientListModal';\nimport MateModal from './mateListModal';\nimport CardListModal from './cardListModal';\nimport { fetchPatient, fetchMate, fetchCard } from '../../Lib/Api/auth';\nimport { Label } from 'reactstrap';\n\nexport default class ReservationPage extends React.PureComponent {\n state = {\n step: 'items', // items, basic, form, confirm, done\n big5: [],\n local: [],\n corpBy: [],\n zzz: [],\n alzhe: [],\n productId: '',\n productInfo: null,\n service: '',\n patientList: [],\n patientId: '',\n mateList: [],\n chooseMate: '아니오',\n cardList: [],\n };\n\n componentDidMount = async () => {\n const userId = localStorage.getItem('id');\n if (!userId) {\n message.warning('로그인 후 이용해주세요.');\n setTimeout(() => {\n this.props.history.goBack();\n }, 250);\n return null;\n }\n\n const { params } = this.props.match;\n if (params.step && params.step !== 'items') {\n this.props.history.push('/reserve/items');\n }\n\n this.fetchUserInfo();\n this.fetchItemList();\n };\n\n componentDidUpdate = prevProps => {\n const { params: prevParams } = prevProps.match;\n const { params } = this.props.match;\n if (JSON.stringify(prevParams) !== JSON.stringify(params)) {\n this.setState({ step: params.step });\n }\n };\n\n fetchUserInfo = () => {\n const userId = localStorage.getItem('id');\n if (!userId) return null;\n axios.get(`/v1/user/${userId}/user`).then(resolve => {\n const { data } = resolve;\n if (data && data._id) {\n this.setState({ userInfo: data, point: data.point, usePoint: 0, connection: data.connection });\n }\n });\n };\n\n onPrevSetting = () => {\n const userId = localStorage.getItem('id');\n fetchPatient({ id: userId }).then(resolve => {\n // console.log(resolve)\n if (resolve && resolve.data && resolve.data.message === 'success') {\n this.setState({ patientList: resolve.data.data, patientProfileListModal: true });\n } else {\n notification.open({\n message: '조회되는 환자 목록이 없습니다.',\n description: '[마이페이지]에서 환자 프로필을 등록하실 수 있습니다.',\n type: 'primary',\n });\n }\n });\n\n // const { productInfo } = this.state;\n // if (!userId) return null;\n\n // axios.get('/v2/user/recent/reserve/info', { params: { userId } }).then(resolve => {\n // const { data } = resolve;\n // if (data && data._id) {\n // delete data._id;\n // // 도착지랑 출발지 제외하고 나머지 다 추가\n // if (productInfo && productInfo.reservedDestination) delete data.destination;\n // if (productInfo && productInfo.reservedStarting) delete data.starting;\n\n // this.setState({ ...data });\n // } else {\n // message.warning('조회되는 최근 예약정보가 없습니다.');\n // }\n // });\n };\n\n onPrevSetting2 = () => {\n fetchMate({ valid: true }).then(resolve => {\n console.log(resolve);\n if (resolve && resolve.data && resolve.data.message === 'success') {\n this.setState({ mateList: resolve.data.data, mateListModal: true });\n } else {\n message.info('조회되는 메이트가 없습니다.');\n }\n });\n };\n\n // 카드 목록 불러오기\n onPrevSetting3 = () => {\n const userId = localStorage.getItem('id');\n fetchCard({ id: userId }).then(resolve => {\n if (resolve && resolve.data && resolve.data.message === 'success') {\n this.setState({ cardList: resolve.data.data, cardListModal: true });\n } else {\n notification.open({\n message: '조회되는 카도 목록이 없습니다.',\n description: '[마이페이지]에서 결제 카드를 등록하실 수 있습니다.',\n type: 'primary',\n });\n }\n });\n };\n\n fetchItemList = () => {\n axios.get('/v1/product/service/tag/group', { params: { isOption: true } }).then(resolve => {\n const { data } = resolve;\n if (data) {\n this.setState({ ...data });\n }\n });\n };\n\n onSelectService = info => {\n this.setState(\n {\n productId: info.id,\n productInfo: info,\n isZzz: false,\n isAlzhe: false,\n starting: info.reservedStarting || '',\n destination: info.reservedDestination || '',\n shortStarting: info.reservedShortStarting || '',\n shortDestination: info.reservedShortDestination || '',\n },\n this.goSecondStep,\n );\n };\n\n goSecondStep = () => {\n const rect = document.querySelector('#second-step').getClientRects();\n const { top } = rect[0];\n window.scrollTo(0, window.scrollY + top - 55);\n };\n\n goNextButton = () => {\n const rect = document.querySelector('#fst-next-btn').getClientRects();\n const { top } = rect[0];\n window.scrollTo(0, window.scrollY + top - 55);\n };\n // Daum Address Search 출발지\n onStarting = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { sido, sigungu, bname, roadAddress, buildingName } = data;\n this.setState(prevState => ({\n shortStarting: `${sido} ${sigungu} ${bname}`,\n starting: `${roadAddress} (${buildingName})`,\n }));\n },\n }).open();\n };\n // Daum Address Search 도착지\n onDestination = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { sido, sigungu, bname, roadAddress, buildingName } = data;\n this.setState(prevState => ({\n destination: `${roadAddress} (${buildingName})`,\n shortDestination: `${sido} ${sigungu} ${bname}`,\n }));\n },\n }).open();\n };\n\n onAddress = () => {\n new window.daum.Postcode({\n oncomplete: data => {\n const { roadAddress, buildingName } = data;\n this.setState(prevState => ({\n address: `${roadAddress} (${buildingName})`,\n }));\n },\n }).open();\n };\n\n stepHandler = () => {\n const { step: currentStep, service, productId, shortStarting, shortDestination, recommender = '', recommenderContact = '' } = this.state;\n const { patient, sex, contact = '', age, guardContact, relate, starting, destination } = this.state;\n const {\n mateGender,\n reserveDate,\n meetTime,\n meetMinute,\n reserveTime,\n reserveMinute,\n addTime,\n comment,\n transport,\n // payment = 'transfer',\n payment,\n usePoint,\n point,\n productInfo,\n environment,\n caution,\n chooseMate,\n mateName,\n cardName,\n cardNum,\n year,\n month,\n installment,\n } = this.state;\n\n switch (currentStep) {\n case 'items':\n if (!service) return message.warning('서비스를 선택해주세요.');\n if (!productId) return message.warning('서비스 상세 분류를 선택해주세요. (ex. Pro, Basic, 내시경 등)');\n\n this.props.history.push('/reserve/basic');\n break;\n\n case 'basic':\n if (!patient) return message.warning('환자분의 성함을 입력해주세요.');\n if (!sex) return message.warning('환자분의 성별을 입력해주세요.');\n // if (!contact) return message.warning('환자분의 연락처를 입력해주세요.');\n if (!age) return message.warning('환자분의 나이를 입력해주세요.');\n if (!relate) return message.warning('환자분과의 관계를 선택해주세요.');\n if (!guardContact) return message.warning('보호자님의 연락처를 확인해주세요.');\n if (!destination) return message.warning('도착지를 검색 및 설정해주세요.');\n if (service === 'unemergency' && !starting) return message.warning('출발지를 검색 및 설정해주세요.');\n\n this.props.history.push('/reserve/form');\n break;\n\n case 'form':\n if (!reserveDate) return message.warning('진료 예약일을 설정해주세요.');\n if (!reserveTime || !reserveMinute) return message.warning('진료 예약 시간을 설정해주세요.');\n if (service === 'unemergency' && (!meetTime || !meetMinute)) return message.warning('동행인의 출발지 도착 희망 시간을 설정해주세요.');\n if (!addTime) return message.warning('예상 소요 시간을 입력해주세요.');\n if (recommenderContact && !celluarValidate(recommenderContact))\n return message.warning('추천인 연락처를 올바르게 입력해주세요. (ex. 01012341243');\n if ((recommenderContact && !recommender) || (recommender && !recommenderContact)) return message.warning('추천인 정보를 마저 입력해주세요.');\n\n this.props.history.push('/reserve/confirm');\n break;\n\n case 'confirm':\n // 여기서 결제해야함\n const userId = localStorage.getItem('id');\n if (!userId) return null;\n\n const _transport = transport && transport === 'own' ? 20000 : 0;\n const _service =\n productInfo &&\n service &&\n (service === 'unemergency' ? productInfo.proPrice : productInfo.basicPrice ? productInfo.basicPrice : 0) * addTime;\n const discount = service === 'unemergency' ? productInfo.proDiscount || 0 : productInfo.basicDiscount || 0;\n const totalFee = _transport + _service - discount;\n\n if (service === 'unemergency' && !transport) return message.warning('이동 수단을 선택해주세요.');\n if (usePoint > point) return message.warning('잔여 포인트보다 사용하고자 하는 포인트가 더 높습니다.');\n if (usePoint > totalFee) return message.warning('사용하고자 하는 포인트가 예상 결제금액보다 높습니다.');\n\n const info = {\n shortStarting,\n destination,\n shortDestination,\n comment,\n service,\n addTime,\n starting,\n contact,\n guardContact,\n reserveDate: combineDateAndTime({ date: reserveDate, time: reserveTime, minute: reserveMinute }),\n meetDate: combineDateAndTime({ date: reserveDate, time: meetTime, minute: meetMinute }),\n patient,\n relate,\n payment,\n sex,\n age,\n transport,\n recommender,\n recommenderContact,\n product: productId,\n usingPoint: usePoint,\n mateGender,\n environment,\n caution,\n chooseMate,\n mateName,\n cardName,\n cardNum,\n year,\n month,\n installment,\n };\n\n axios\n .post('/v2/service/reserve/new', { info, userId })\n .then(async resolve => {\n const { data } = resolve;\n if (!data) message.error('죄송합니다 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n if (data === 'check parameters') return message.warning('입력하지 않은 정보가 있는지 다시 한번 확인해주세요.');\n if (data === 'invalid user') return message.warning('세션이 만료되었습니다. 재 로그인 후 다시 시도해주세요.');\n if (data === 'invalid product')\n return message.warning('죄송합니다. 선택하신 서비스가 더이상 지원하지 않는 서비스입니다. 다른 서비스를 이용해주세요.');\n\n if (data === 'success') {\n // 사용자 연락처 갱신\n // await axios.post('/v1/user/modify/info', { id: userId, userType: 'user', info: { contact: guardContact } });\n\n message.success('동행 서비스 요청 완료');\n this.props.history.push('/reserve/done');\n }\n })\n .catch(error => {\n message.error('죄송합니다 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n });\n break;\n }\n };\n\n stepHandler2 = () => {\n const { step: currentStep, service, productId, shortStarting, shortDestination, recommender = '', recommenderContact = '' } = this.state;\n const { patient, sex, contact, age, guardContact, relate, starting, destination, mateId } = this.state;\n const {\n mateGender,\n reserveDate,\n meetTime,\n meetMinute,\n reserveTime,\n reserveMinute,\n addTime,\n comment,\n transport,\n // payment = 'transfer',\n payment,\n usePoint,\n point,\n productInfo,\n environment,\n caution,\n chooseMate,\n mateName,\n } = this.state;\n\n switch (currentStep) {\n case 'items':\n if (!service) return message.warning('서비스를 선택해주세요.');\n if (!productId) return message.warning('서비스 상세 분류를 선택해주세요. (ex. Pro, Basic, 내시경 등)');\n\n this.props.history.push('/reserve/basic');\n break;\n\n case 'basic':\n if (!patient) return message.warning('환자분의 성함을 입력해주세요.');\n if (!sex) return message.warning('환자분의 성별을 입력해주세요.');\n // if (!contact) return message.warning('환자분의 연락처를 입력해주세요.');\n if (!age) return message.warning('환자분의 나이를 입력해주세요.');\n if (!relate) return message.warning('환자분과의 관계를 선택해주세요.');\n if (!guardContact) return message.warning('보호자님의 연락처를 확인해주세요.');\n if (!destination) return message.warning('도착지를 검색 및 설정해주세요.');\n if (service === 'unemergency' && !starting) return message.warning('출발지를 검색 및 설정해주세요.');\n\n this.props.history.push('/reserve/form');\n break;\n\n case 'form':\n if (!reserveDate) return message.warning('진료 예약일을 설정해주세요.');\n if (!reserveTime || !reserveMinute) return message.warning('진료 예약 시간을 설정해주세요.');\n if (service === 'unemergency' && (!meetTime || !meetMinute)) return message.warning('동행인의 출발지 도착 희망 시간을 설정해주세요.');\n if (!addTime) return message.warning('예상 소요 시간을 입력해주세요.');\n if (recommenderContact && !celluarValidate(recommenderContact))\n return message.warning('추천인 연락처를 올바르게 입력해주세요. (ex. 01012341243');\n if ((recommenderContact && !recommender) || (recommender && !recommenderContact)) return message.warning('추천인 정보를 마저 입력해주세요.');\n\n this.props.history.push('/reserve/confirm');\n break;\n\n case 'confirm':\n // 여기서 결제해야함\n const userId = localStorage.getItem('id');\n if (!userId) return null;\n\n const _transport = transport && transport === 'own' ? 20000 : 0;\n const _service =\n productInfo &&\n service &&\n (service === 'unemergency' ? productInfo.proPrice : productInfo.basicPrice ? productInfo.basicPrice : 0) * addTime;\n const discount = service === 'unemergency' ? productInfo.proDiscount || 0 : productInfo.basicDiscount || 0;\n const totalFee = _transport + _service - discount;\n\n if (service === 'unemergency' && !transport) return message.warning('이동 수단을 선택해주세요.');\n if (usePoint > point) return message.warning('잔여 포인트보다 사용하고자 하는 포인트가 더 높습니다.');\n if (usePoint > totalFee) return message.warning('사용하고자 하는 포인트가 예상 결제금액보다 높습니다.');\n\n const info = {\n shortStarting,\n destination,\n shortDestination,\n comment,\n service,\n addTime,\n starting,\n contact,\n guardContact,\n reserveDate: combineDateAndTime({ date: reserveDate, time: reserveTime, minute: reserveMinute }),\n meetDate: combineDateAndTime({ date: reserveDate, time: meetTime, minute: meetMinute }),\n patient,\n relate,\n payment,\n sex,\n age,\n transport,\n recommender,\n recommenderContact,\n product: productId,\n usingPoint: usePoint,\n mateGender,\n environment,\n caution,\n chooseMate,\n mateId,\n };\n\n axios\n .post('/v2/service/reserve/mate/new', { info, userId, mateId })\n .then(async resolve => {\n const { data } = resolve;\n if (!data) message.error('죄송합니다 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n if (data === 'check parameters') return message.warning('입력하지 않은 정보가 있는지 다시 한번 확인해주세요.');\n if (data === 'invalid user') return message.warning('세션이 만료되었습니다. 재 로그인 후 다시 시도해주세요.');\n if (data === 'invalid product')\n return message.warning('죄송합니다. 선택하신 서비스가 더이상 지원하지 않는 서비스입니다. 다른 서비스를 이용해주세요.');\n\n if (data === 'success') {\n message.success('동행 서비스 요청 완료');\n this.props.history.push('/reserve/done');\n }\n })\n .catch(error => {\n message.error('죄송합니다 요청에 실패하였습니다. 잠시 후 다시 시도해주세요.');\n });\n break;\n }\n };\n\n prevStep = () => {\n this.props.history.goBack();\n };\n\n handleChange = e => {\n const type = e.target.name;\n const value = e.target.value;\n\n this.setState({ [type]: value });\n };\n\n patientProfileListModalOff = () => {\n this.setState({\n patientProfileListModal: false,\n });\n };\n\n mateListModalOff = () => {\n this.setState({\n mateListModal: false,\n });\n };\n\n cardListModalOff = () => {\n this.setState({\n cardListModal: false,\n });\n };\n\n onUpdatePatient = data => {\n this.setState({\n patient: data.name,\n age: data.age,\n contact: data.contact,\n relate: data.relate,\n sex: data.sex,\n starting: data.starting,\n environment: data.environment,\n caution: data.caution,\n });\n };\n\n onUpdateMate = data => {\n this.setState({\n mateName: data.name,\n mateContact: data.contact,\n mateId: data._id,\n });\n };\n\n onUpdateCard = data => {\n this.setState({\n cardName: data.cardName,\n cardNum: data.cardNum,\n year: data.year,\n month: data.month,\n });\n };\n\n render() {\n const { step, big5, local, corpBy, zzz, alzhe, productId = '', productInfo, service, isZzz = false, isAlzhe = false, mateName } = this.state;\n // console.log(this.state)\n return (\n \n \n \n {step === 'items' && (\n \n 먼저, 원하시는 \n 서비스 종류를 선택하세요!\n \n }\n />\n )}\n \n {step && step !== 'items' && }\n {step === 'items' && (\n <>\n \n \n {big5 &&\n big5.length > 0 &&\n big5.map((product, index) => (\n {\n this.onSelectService(product);\n }}\n />\n ))}\n \n \n \n 대형병원을 제외한 각 지역별 병원에 방문하는 분들을 위한 서비스입니다.\n \n }\n >\n \n {local &&\n local.length > 0 &&\n local.map((product, index) => (\n {\n this.onSelectService(product);\n }}\n />\n ))}\n \n \n {/* \n 위드메이트와 협업 중인 기업 및 기관을 위한 접수 창구입니다\n \n }\n >\n \n {corpBy &&\n corpBy.length > 0 &&\n corpBy.map((product, index) => (\n {\n this.onSelectService(product);\n }}\n />\n ))}\n \n */}\n {/* {\n if (zzz.length === 0) return message.warning('운영중인 내시경 보호자 서비스가 없습니다.');\n\n const z_one = zzz[0];\n this.setState({ productId: z_one.id, productInfo: z_one, isZzz: true }, this.goSecondStep);\n }}\n />\n\n {\n if (alzhe.length === 0) return message.warning('운영중인 치매 보호자 서비스가 없습니다.');\n\n const a_one = alzhe[0];\n this.setState({ productId: a_one.id, productInfo: a_one, isAlzhe: true }, this.goSecondStep);\n }}\n /> */}\n {productId && (\n <>\n \n 이제, 원하시는 서비스 타입을 선택하세요!\n \n }\n />\n \n \n {productInfo.usePro && !isZzz && (\n {\n this.setState({ service: 'unemergency' }, this.goNextButton);\n }}\n />\n )}\n\n {productInfo.useBasic && !isZzz && (\n {\n this.setState({ service: 'assist' }, this.goNextButton);\n }}\n />\n )}\n\n {isZzz && (\n {\n this.setState({ service: 'assist' }, this.goNextButton);\n }}\n />\n )}\n \n \n 다음 단계로가기\n \n \n \n )}\n \n )}\n {/* {step === 'basic' && ( */}\n {step === 'basic' && (\n <>\n \n \n \n \n 이전으로\n \n \n 다음 단계로가기\n \n \n \n \n )}\n {/* {step === 'form' && ( */}\n {step === 'form' && (\n <>\n \n \n \n \n 이전으로\n \n \n 다음 단계로가기\n \n \n \n \n )}\n {step === 'confirm' && (\n <>\n \n \n \n \n 이전으로\n \n {mateName ? (\n <>\n \n 신청 완료\n \n \n ) : (\n \n 신청 완료하기\n \n )}\n \n \n \n )}\n {step === 'done' && (\n <>\n \n \n {\n this.props.history.push('/user/mypage/list');\n }}\n >\n 마이 페이지로\n \n \n \n )}\n\n \n\n \n\n \n \n );\n }\n}\n\nconst BannerSection = ({ isMain }) => (\n \n {isMain && (\n \n 국내 최대 규모의 병원 동행 서비스 매칭 플랫폼\n \n 위드메이트가 함께 동행해드립니다\n \n \n )}\n {!isMain && (\n \n \n \n 위드메이트가\n
\n 함께 동행 해드립니다\n
\n
\n 국내 최대 규모의 병원 동행 서비스 매칭 플랫폼\n
\n )}\n
\n);\n\nconst StepSection = ({ step }) => (\n \n \n \n 환자 기본 정보 입력\n \n 서비스 신청 정보 입력\n \n 매칭 신청 확인\n \n 신청 완료\n \n \n \n);\n\nconst NextGuider = ({ id, emoj, title, color = 'rgba(0,0,0,0.7)', bg = false }) => (\n \n \n {title}\n \n \n);\n\nconst ServiceSection = ({ title, description, bg, mBg, children }) => {\n return (\n \n \n {title}\n {description}\n {children}\n \n \n );\n};\n\nconst Card = ({ source, onSelect, selected }) => (\n \n 로고\n \n 선택\n \n \n);\n\nconst ZzzService = ({ selected, onSelect }) => (\n \n \n \n 수면 내시경 보호자 서비스\n \n {' '}\n 수면 내시경 검사 시 \n 보호자를 대행하는 서비스입니다.\n \n \n 수면 내시경 검사가 끝날 때까지 병원 안에서\n 고객님의 보호자 대행 업무를 수행합니다.\n \n \n \n 서울/경기(일부)에서만 서비스가 제공됩니다.\n \n \n \n \n 선택\n \n \n \n);\n\nconst AlzheService = () => (\n \n \n \n 치매 동행 서비스 (beta)\n \n 메이트가 치매 환자분의 집-병원 간 모든 여정을 함께하는 서비스입니다.\n \n \n 치매 환자 전문 메이트를 포함하여 2인의 메이트가 배정됩니다.\n \n \n \n 메이트(2인)-환자 간 매칭이 완료되지 않으면\n 서비스가 제공되지 않는 점 양해바랍니다.\n \n \n \n 전화로만 서비스 예약을 하실 수 있습니다.\n \n {\n swal.fire({\n title: '위드메이트 고객센터',\n text: '☎ 070-4300-9075',\n icon: 'info',\n confirmButtonText: '전화걸기',\n cancelButtonText: '확인',\n showCancelButton: true,\n }).then(result => {\n if (result.isConfirmed) {\n document.location.href = 'tel:070-4300-9075';\n }\n });\n }}\n >\n 전화 상담하기\n \n \n \n);\n\nconst ServiceTypeSection = ({ bg, mobileBg, children }) => (\n \n {children}\n \n);\n\nconst ServiceTypeCard = ({ emoj, name, desc, selected, onSelect }) => (\n \n \n {name}\n {desc}\n \n 선택\n \n \n);\n\nconst BasicForm = ({ data, handleChange, onStarting, onDestination, onPrevSetting }) => {\n const { productInfo, service, patient, contact, sex, age, relate, guardContact = '', starting, destination } = data;\n return (\n \n 좋아요! 매칭 신청을 시작해볼까요?\n\n \n\n 선택하신 서비스\n\n \n {productInfo.name} {productInfo.name.includes('내시경') ? '' : service === 'unemergency' ? 'Pro' : 'Basic'}\n \n\n \n\n \n 환자 정보 입력\n \n\n
\n \n
\n 환자 프로필 불러오기\n
\n\n \n\n \n
\n 환자 성함\n \n
\n
\n 환자 나이\n \n
\n
\n\n \n\n \n {productInfo.name.includes('내시경') ? null : (\n
\n 환자 연락처\n \n
\n )}\n
\n 환자 성별\n \n {\n handleChange({ target: { name: 'sex', value: '남자' } });\n }}\n >\n 남성\n \n {\n handleChange({ target: { name: 'sex', value: '여자' } });\n }}\n >\n 여성\n \n \n
\n
\n\n \n\n \n
\n {productInfo.name.includes('내시경') ? (\n <>\n 서비스 신청인 연락처\n \n \n ) : (\n <>\n 보호자 연락처\n \n \n )}\n
\n
\n 환자와의 관계\n {\n handleChange({ target: { name: 'relate', value } });\n }}\n >\n 본인\n 부모\n 자매\n 친구\n 지인\n 기타\n \n
\n
\n\n \n\n 목적지 주소 (방문 병원 위치)\n {\n if (productInfo.reservedDestination) return message.info('목적지가 고정된 서비스입니다.');\n else onDestination();\n }}\n />\n\n \n {service === 'unemergency' && (\n <>\n 출발지 주소 (자택, 터미널, 역, 입원 병원 등)\n {\n if (productInfo.reservedStarting) return message.info('출발지가 고정된 서비스입니다.');\n else onStarting();\n }}\n />\n\n \n \n )}\n\n \n 스텝이미지\n \n
\n );\n};\n\nconst MainForm = ({ data, handleChange, onPrevSetting2 }) => {\n const {\n productInfo,\n service,\n addTime,\n reserveDate,\n reserveTime,\n reserveMinute,\n meetTime,\n meetMinute,\n mateGender,\n comment,\n recommender,\n recommenderContact,\n environment,\n caution,\n chooseMate,\n mateName,\n mateContact,\n } = data;\n const time = !reserveTime ? 9 : moment(reserveTime).get('hour');\n let allowedAddTimes = 18 - parseInt(time, 10) > 0 ? 18 - parseInt(time, 10) : 0;\n\n return (\n \n 이것만 하면 매칭 신청이 끝나요!\n \n\n 선택하신 서비스\n \n {productInfo.name} {productInfo.name.includes('내시경') ? '' : service === 'unemergency' ? 'Pro' : 'Basic'}\n \n\n 병원 정보 입력\n \n\n 동행 인력 희망 성별\n \n {\n handleChange({ target: { name: 'mateGender', value: '' } });\n }}\n >\n 상관없음\n \n {\n handleChange({ target: { name: 'mateGender', value: '남' } });\n }}\n >\n 남성\n \n {\n handleChange({ target: { name: 'mateGender', value: '녀' } });\n }}\n >\n 여성\n \n \n \n\n \n 메이트 선택\n {/* (선택하신 메이트님과 상의가 되신 경우에만 가능합니다.) */}\n (이전에 동행한 메이트 중에서 선택할 수 있습니다.)\n \n \n {\n handleChange({ target: { name: 'chooseMate', value: '예' } });\n }}\n >\n 예\n \n {\n handleChange({ target: { name: 'chooseMate', value: '아니오' } });\n }}\n >\n 아니오\n \n \n \n\n {chooseMate === '아니오' ? null : (\n <>\n \n
\n {\n handleChange({ target: { name: 'mateName', value: ev.target.value } });\n }}\n />\n
\n
\n \n
\n
\n \n \n )}\n\n 진료 예약일\n \n current < moment().add(0, 'day') ||\n current.get('day') === 0 ||\n current.get('day') === 6 ||\n holidayKR.isSolarHoliday(moment(current).toDate())\n }\n inputReadOnly\n value={reserveDate || undefined}\n name='reserveDate'\n onChange={date => {\n handleChange({ target: { name: 'reserveDate', value: date } });\n }}\n />\n \n\n <>\n {service === 'unemergency' && (\n \n 동행인의 출발지 도착 희망 시간 (자택, 터미널, 역, 입원 병원 등)\n \n )}\n {service === 'assist' && (\n \n 동행인의 병원 도착 희망 시간 (진료 병원, 입원 병원 등)\n \n )}\n \n
\n {\n if (ev.target.value.length > 2) return null;\n if (ev.target.value && parseInt(ev.target.value) > 24) return null;\n\n handleChange({ target: { name: 'meetTime', value: ev.target.value } });\n }}\n />\n
\n
\n {\n if (ev.target.value.length > 2) return null;\n if (ev.target.value && parseInt(ev.target.value) > 59) return null;\n\n handleChange({ target: { name: 'meetMinute', value: ev.target.value } });\n }}\n />\n
\n
\n \n \n {/* {service === 'unemergency' && (\n )} */}\n\n 방문병원 진료 예약 시간\n \n
\n {\n if (ev.target.value.length > 2) return null;\n if (ev.target.value && parseInt(ev.target.value) > 24) return null;\n\n handleChange({ target: { name: 'reserveTime', value: ev.target.value } });\n }}\n />\n
\n
\n {\n if (ev.target.value.length > 2) return null;\n if (ev.target.value && parseInt(ev.target.value) > 59) return null;\n\n handleChange({ target: { name: 'reserveMinute', value: ev.target.value } });\n }}\n />\n
\n
\n\n \n\n 예상 소요 시간\n {\n handleChange({ target: { name: 'addTime', value: val } });\n }}\n >\n {new Array(9).fill(0).map((hour, index) => {\n return (\n \n {index + 1}시간\n \n );\n })}\n \n \n\n 외출하실 때 '꼭' 계단을 이용하셔야 하나요?\n {\n handleChange({ target: { name: 'environment', value: '네' } });\n }}\n >\n 네\n \n {\n handleChange({ target: { name: 'environment', value: '아니요, 엘레베이터가 있어요' } });\n }}\n >\n 아니요, 엘레베이터가 있어요\n \n {\n handleChange({ target: { name: 'environment', value: '1층이라 괜찮아요' } });\n }}\n >\n 1층이라 괜찮아요\n \n \n\n \n\n 메이트가 동행할 때 주의해야 할 점이 있을까요?\n {\n handleChange({ target: { name: 'caution', value: ev.target.value } });\n }}\n />\n {\n handleChange({ target: { name: 'caution', value: '없어요' } });\n }}\n >\n 없어요\n \n\n \n\n 기타 요청 및 전달 사항\n \n \n\n \n
\n 추천인 성함\n \n
\n
\n 추천인 전화번호\n \n
\n
\n\n \n 스텝이미지\n \n
\n );\n};\n\nconst ConfirmForm = ({ data, handleChange, onAddress, onPrevSetting3 }) => {\n const { productInfo, service, patient, contact, sex, age, relate, guardContact = '', starting, destination, environment, caution } = data;\n const { addTime, usePoint, reserveDate, transport, reserveTime, meetTime, mateGender, comment, reserveMinute, meetMinute, mateName, connection } = data;\n const { cardName, cardNum, year, month, installment } = data;\n\n const _transport = transport && transport === 'own' ? 20000 : 0;\n const _service =\n productInfo && service && (service === 'unemergency' ? productInfo.proPrice : productInfo.basicPrice ? productInfo.basicPrice : 0) * addTime;\n\n const _point = !usePoint ? 0 : parseInt(usePoint, 10) * -1;\n const discount = service === 'unemergency' ? productInfo.proDiscount || 0 : productInfo.basicDiscount || 0;\n const totalFee = _transport + _service + _point - discount;\n\n return (\n \n \n 매칭 신청 내역을 알려드릴게요!\n \n 선택하신 서비스\n \n {productInfo.name} {productInfo.name.includes('내시경') ? '' : service === 'unemergency' ? 'Pro' : 'Basic'}\n \n\n 신청 내역\n \n\n \n
\n 환자 성함\n \n
\n
\n 환자 나이\n \n
\n
\n\n \n\n \n {productInfo.name.includes('내시경') ? null : (\n
\n 환자 연락처\n \n
\n )}\n
\n\n \n \n
\n 보호자 연락처\n \n
\n
\n 환자와의 관계\n \n
\n
\n\n \n\n \n
\n 환자 성별\n \n
\n
\n 동행 인력 희망 성별\n \n
\n
\n\n \n\n \n 선택된 메이트\n \n \n\n \n\n 목적지 주소 (방문 병원 위치)\n \n\n \n {service === 'unemergency' && (\n <>\n 출발지 주소 (자택, 터미널, 역, 입원 병원 등)\n \n\n \n \n )}\n\n 진료 일정\n \n\n \n\n {service === 'unemergency' && (\n \n 동행인의 출발지 도착 희망 시간 (자택, 터미널, 역, 입원 병원 등)\n \n )}\n {service === 'assist' && (\n \n 동행인의 병원 도착 희망 시간 (진료 병원, 입원 병원 등)\n \n )}\n \n\n \n\n 외출하실 때 '꼭' 계단을 이용하셔야 하나요?\n \n\n \n\n 메이트가 동행할 때 주의해야 할 점이 있을까요?\n \n\n \n\n 기타 요청 및 전달 사항\n \n
\n\n \n 결제 내역\n \n {service === 'unemergency' && (\n <>\n {\n handleChange({ target: { name: 'transport', value } });\n }}\n >\n 대중 교통\n 본인 소유 자차 이동\n \n\n {transport === 'own' && (\n <>\n \n 서비스 당일 ‘누구나 보험’ 변경 필수입니다.\n \n )}\n \n \n )}\n\n \n 예상 비용\n {service === 'unemergency' ? (\n \n {connection === '메트라이프'\n ? '(10% 할인가격) ' + (parseInt(totalFee, 10) + -1 * _point > 0 ? parseInt(totalFee, 10) + -1 * _point : 0) * 0.9\n : parseInt(totalFee, 10) + -1 * _point > 0\n ? parseInt(totalFee, 10) + -1 * _point\n : 0}\n 원\n \n ) : (\n {parseInt(totalFee, 10) + -1 * _point > 0 ? parseInt(totalFee, 10) + -1 * _point : 0}원\n )}\n \n {service === 'unemergency' ? (\n <>\n \n \n 보유 포인트\n \n {data.point}원\n \n \n \n 사용할 포인트\n \n \n \n \n \n \n ) : null}\n \n \n 결제 수단\n \n {\n handleChange({ target: { name: 'payment', value } });\n }}\n style={{ width: '102px' }}\n >\n 계좌이체\n 카드결제\n \n \n {data.payment === 'card' && (\n <>\n 카드결제 이용시 [ 서비스 안내 사항 ]을 확인하세요\n
\n 등록된 카드목록\n
\n
\n 결제 카드사\n {\n handleChange({ target: { name: 'cardName', value } });\n }}\n >\n KB국민카드\n 삼성카드\n 현대카드\n 우리카드\n BC카드\n 신한카드\n 롯데카드\n NH농협카드\n \n
\n
\n 카드 번호\n \n
\n
\n 유효기간(MM/YY)\n \n \n
\n
\n 할부 기간\n {\n handleChange({ target: { name: 'installment', value } });\n }}\n >\n 일시불\n 2개월\n 3개월\n 4개월\n 5개월\n 6개월\n 7개월\n 8개월\n 9개월\n 10개월\n 11개월\n 12개월\n \n
\n \n )}\n\n \n\n {/* \n 포인트 적용 후 예상 비용\n {totalFee > 0 ? totalFee : 0}원\n */}\n\n \n \n\n 서비스 안내 사항\n \n\n \n 아이콘\n • 위드메이트 서비스는 후불제이며, 모든 서비스가 종료된 이후 최종 요금 안내에 따라 [계좌이체] 또는 [카드결제]를 통한 결제를 진행해주시면\n 됩니다.\n
• [카드결제]를 이용하실 경우 [마이페이지]에서 사용하실 카드를 등록하시면 편리하게 카드 정보로 결제하실 수 있습니다.\n
\n\n \n\n \n 아이콘\n \n • [카드결제]는 [페이투페이]의 수기결제로 카드결제가 진행됩니다.
• 카드 정보는 서비스 비용 결제 목적으로만 이용되며, 그 외\n 다른 목적으로 이용되거나 제3자에게 제공되는 일은 절대 없습니다.\n
\n
\n\n \n\n \n 아이콘\n 이동 수단 중 [자차 이동]을 선택한 경우 예약일에 맞춰 차량 보험을 예약자 또는 본인이 직접 [누구나 보험]으로 변경해주셔야 합니다.\n \n\n \n\n \n 아이콘\n 택시비와 진료비 등의 부가 비용은 고객님께서 부담해주셔야 합니다.\n \n\n \n\n \n 아이콘\n \n 서비스에 대한 추가 문의 사항은 FAQ에서 확인 가능합니다. 위드메이트 상담 센터 운영 시간은 월 ~ 금 09:00 ~ 18:00 입니다.\n \n \n\n \n\n \n 아이콘\n 위드메이트는 플랫폼 내 전문 인력 스스로 매칭 신청을 검토하므로, 매칭 신청을 하시더라도 최종 매칭에 실패할 가능성이 있음을 알려드립니다.\n \n \n 스텝이미지\n \n
\n
\n );\n};\n\nconst DoneForm = ({ data }) => {\n const { usePoint, point, transport, reserveDate, reserveTime, reserveMinute, productInfo, service, addTime } = data;\n\n const _transport = transport && transport === 'own' ? 20000 : 0;\n const _service =\n productInfo && service && (service === 'unemergency' ? productInfo.proPrice : productInfo.basicPrice ? productInfo.basicPrice : 0) * addTime;\n\n const _point = (usePoint || 0) * -1;\n const discount = service === 'unemergency' ? productInfo.proDiscount || 0 : productInfo.basicDiscount || 0;\n\n const totalFee = _transport + _service + _point - discount;\n\n return (\n \n 매칭 신청이 완료되었어요!\n \n 예약완료\n \n\n \n \n 신청일자\n \n {moment(combineDateAndTime({ date: reserveDate, time: reserveTime, minute: reserveMinute })).format('YYYY-MM-DD HH시 mm분')}\n \n \n \n 선택하신 서비스\n \n {productInfo.name} {productInfo.name.includes('내시경') ? '' : service === 'unemergency' ? 'Pro' : 'Basic'}\n \n \n \n 총 예상 비용\n {totalFee}\n \n \n \n 사용된 포인트\n \n {data.usePoint}원\n \n \n \n 잔여 포인트\n \n {point - usePoint}원\n \n \n \n 결제 수단\n \n {data.payment === 'card' ? '카드결제' : '계좌이체'}\n \n \n\n \n 서비스 안내 사항\n \n\n \n 아이콘\n 위드메이트 서비스는 후불제이며, 모든 서비스가 종료된 이후 최종 요금 안내에 따라 계좌 이체를 통한 결제를 진행해주시면 됩니다.\n \n\n \n\n \n 아이콘\n 이동 수단 중 ‘자차 이동’을 선택한 경우 예약일에 맞춰 차량 보험을 예약자 또는 본인이 직접 ‘누구나 보험’으로 변경해주셔야 합니다.\n \n\n \n\n \n 아이콘\n 택시비와 진료비 등의 부가 비용은 고객님께서 부담해주셔야 합니다.\n \n\n \n\n \n 아이콘\n \n 서비스에 대한 추가 문의 사항은 FAQ에서 확인 가능합니다. 위드메이트 상담 센터 운영 시간은 월 ~ 금 09:00 ~ 18:00 입니다.\n \n \n\n \n\n \n 아이콘\n 위드메이트는 플랫폼 내 전문 인력 스스로 매칭 신청을 검토하므로, 매칭 신청을 하시더라도 최종 매칭에 실패할 가능성이 있음을 알려드립니다.\n \n \n );\n};\n\nconst CustomButtonWrapper = styled(ButtonWrapper)`\n max-width: 640px;\n margin: 0 auto;\n\n @media (max-width: 480px) {\n flex-direction: column;\n\n > a:first-child {\n order: 2;\n margin-bottom: 48px;\n }\n\n > a:last-child {\n order: 1;\n }\n }\n`;\n","import React from 'react';\nimport { debounce } from 'lodash';\nimport styled from 'styled-components';\nimport { message, Spin } from 'antd';\nimport _ from 'lodash';\n\n// components\nimport { NoCatchedList } from '../../../../Components/User/Mate/reserve';\nimport { MateReserveInfoModal } from '../../../../Components/modal';\n\n// utils\nimport axios from '../../../../Lib/axios';\n\nclass Reserve extends React.PureComponent {\n state = {\n reserveModal: false,\n reserveInfo: null,\n refreshing: false,\n list: [],\n };\n\n componentDidMount = () => {\n this.fetchList();\n };\n\n fetchList = debounce(() => {\n const mateId = localStorage.getItem('id');\n\n this.setState(\n {\n refreshing: true,\n },\n () => {\n axios\n .get('/v2/service/mate/reserve/list', {\n params: {\n mateId,\n },\n })\n .then(resolve => {\n const { data: list } = resolve;\n if (list && Array.isArray(list)) {\n this.setState({ list, refreshing: false });\n }\n })\n .catch(error => {\n this.setState({ refreshing: false });\n });\n },\n );\n }, 300);\n\n onCatchCall = () => {\n const { reserveInfo } = this.state;\n const { id } = this.props.auth;\n\n if (!reserveInfo || !reserveInfo.call || !reserveInfo.call._id) {\n this.setState({ reserveInfo: null, reserveModal: false });\n message.warning('유효하지않은 예약내역입니다. 다른 예약내역을 확인해주세요.');\n return null;\n }\n\n axios\n .put('/v2/service/catch/call', {\n callId: reserveInfo.call._id,\n mateId: id,\n })\n .then(resolve => {\n const { data: result } = resolve;\n if (!result) return message.warning('요청에 실패했습니다.');\n if (result === 'invalid call') return message.warning('잘못된 요청입니다.');\n if (result === 'already catched') return message.warning('이미 접수된 요청입니다.');\n if (result === 'denied') return message.warning('예약자에 의해 거절 당하셨거나 혹은 메이트님이 직접 해당 내역을 수신거부 하셨습니다.');\n if (result === 'success') {\n message.success('예약 접수 요청완료');\n this.setState({ reserveModal: false, reserveInfo: null }, () => {\n this.fetchList();\n });\n }\n })\n .catch(error => {\n message.warning('요청에 실패했습니다.');\n });\n };\n\n render() {\n const { list } = this.state;\n\n return (\n <>\n {\n this.setState({ reserveModal: true, reserveInfo: info });\n }}\n />\n\n {this.state.reserveModal ? (\n {\n this.setState({\n reserveModal: false,\n reserveInfo: null,\n });\n }}\n onCatch={this.onCatchCall}\n />\n ) : null}\n\n {this.state.refreshing ? (\n \n \n \n ) : null}\n \n );\n }\n}\n\nconst SpinWrapper = styled.div`\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n\n\n z-index: 9999\n background-color: rgba(0, 0, 0, 0.6);\n`;\n\nexport default Reserve;\n","import { message } from 'antd';\nimport React from 'react';\nimport styled from 'styled-components';\nimport swal from 'sweetalert2';\nimport SwiperCore, { Pagination, Navigation, Autoplay } from 'swiper';\nimport 'swiper/swiper-bundle.min.css';\nimport 'swiper/swiper.min.css';\nimport 'swiper/components/navigation/navigation.min.css';\nimport 'swiper/components/pagination/pagination.min.css';\n\nSwiperCore.use([Navigation, Pagination, Autoplay]);\n\nexport const UserMain = ({ history }) => {\n return (\n \n \n \n 메인 이미지\n \n \n \n 메트라이프 360Future
\n 회원만을 위한
\n

병원동행서비스

\n
\n \n {\n window.open('https://play.google.com/store/apps/details?id=com.bluecamel.withmate');\n }}\n >\n 위드메이트 이용하기\n \n {\n if (!localStorage.getItem('id')) {\n message.warning('병원 동행서비스 예약을 이용하시려면 회원가입 후 이용해주세요.');\n return history.push('/user/register?url_source=metlife');\n }\n\n history.push('/reserve/items');\n }}\n >\n 동행서비스 예약\n 방향표\n \n
\n {\n swal.fire({\n title: '위드메이트 고객센터',\n text: '☎ 070-4300-9075',\n icon: 'info',\n confirmButtonText: '전화걸기',\n cancelButtonText: '확인',\n showCancelButton: true,\n }).then(result => {\n if (result.isConfirmed) {\n document.location.href = 'tel:070-4300-9075';\n }\n });\n }}\n >\n 전화 상담하기\n 전화기\n \n \n \n \n \n );\n};\n\nconst UserMainContainer = styled.div`\n width: 100%;\n height: 628px;\n\n background: linear-gradient(to top, #ffffff, #eeeeee);\n\n @media (max-width: 768px) {\n // height: 598px;\n height: 650px;\n }\n`;\n\nconst UserMainInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n height: 100%;\n margin: 0 auto;\n\n background-image: url('/assets/images/w_main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: 72px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n padding-top: 52px;\n align-items: center;\n background: transparent;\n }\n`;\n\nconst WithmateSpecRow = styled.div`\n display: flex;\n align-items: flex-end;\n\n font-size: 32px;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n line-height: 1.48;\n letter-spacing: -0.7px;\n text-align: left;\n color: #ffffff;\n\n > span {\n font-size: 32px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.7px;\n text-align: left;\n color: #ffffff;\n\n margin-left: 4px;\n }\n\n > span.big {\n font-size: 64px;\n line-height: 1.2;\n position: relative;\n margin-right: 6px;\n\n > d {\n font-size: 28px;\n position: absolute;\n top: -16px;\n left: calc(50% - 12px);\n }\n }\n\n > span.normal {\n font-size: 40px;\n line-height: 1.2;\n position: relative;\n margin-right: 6px;\n\n > d {\n font-size: 18px;\n position: absolute;\n top: -16px;\n left: calc(50% - 12px);\n }\n }\n\n margin-bottom: 4px;\n\n @media (max-width: 768px) {\n margin-bottom: 8px;\n\n font-size: 22px;\n\n > span {\n font-size: 22px;\n }\n\n > span.big {\n font-size: 48px;\n line-height: 1.2;\n position: relative;\n margin-right: 4px;\n\n > d {\n font-size: 20px;\n position: absolute;\n top: -16px;\n left: calc(50% - 8px);\n }\n }\n }\n`;\n\nconst BottomSection = styled.div`\n margin-top: 28px;\n\n @media (max-width: 768px) {\n margin-top: 43px;\n }\n`;\n\nconst HighLight = styled.p`\n font-size: 28px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: left;\n color: black;\n\n margin-bottom: 64px;\n\n @media (max-width: 768px) {\n text-align: center;\n }\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n\n > div:first-child {\n margin-bottom: 8px;\n }\n }\n`;\n\nconst ButtonCommon = styled.div`\n display: flex;\n padding: 20px 24px;\n width: 210px;\n align-items: center;\n justify-content: space-between;\n\n border-radius: 4px;\n margin-right: 8px;\n cursor: pointer;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n }\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n &:hover {\n box-shadow: 4px 10px 24px -4px rgba(0, 0, 0, 0.1);\n transition: all 0.3s;\n }\n\n @media (max-width: 768px) {\n }\n`;\n\nconst GPButtonCommon = styled.div`\n display: flex;\n padding: 20px 24px;\n width: 210px;\n align-items: center;\n\n border-radius: 4px;\n margin-right: 8px;\n cursor: pointer;\n\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n\n &:hover {\n box-shadow: 4px 10px 24px -4px rgba(0, 0, 0, 0.1);\n transition: all 0.3s;\n }\n\n @media (max-width: 768px) {\n }\n`;\n\nconst ReserveButton = styled(ButtonCommon)`\n background-color: #ffffff;\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n }\n`;\n\nconst CallButton = styled(ButtonCommon)`\n border: 1px solid #ffffff;\n\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n background-color: white;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst GooglePlayButton = styled(GPButtonCommon)`\n background-color: #ffffff;\n border-color: #ffffff;\n border-style: solid;\n font-size: 18px;\n font-weight: bold;\n font-style: normal;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n height: 60px;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const UserGuideSection = () => {\n return (\n \n \n 서비스 이용 방법\n \n 서비스 신청\n \n 동행 인력 매칭\n \n 병원 방문\n \n 서비스 결과 확인\n \n 후불 결제\n \n 혜택 적립\n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nconst MainStep = ({ webArrow, mArrow, source, num, name, description, className }) => {\n return (\n \n \n thumbnail\n \n\n \n {num}\n {name}\n \n {description.split('\\n').map((word, index) => (\n \n {word}\n \n \n ))}\n \n \n \n \n );\n};\n\nconst UserGuideContainer = styled.div`\n width: 100%;\n\n background-color: #ffffff;\n\n padding-top: 103px;\n padding-bottom: 162px;\n\n @media (max-width: 768px) {\n padding-top: 90px;\n padding-bottom: 130px;\n }\n`;\n\nconst UserGuideInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n`;\n\nconst UserGuideTitle = styled.h4`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n\n margin-top: 0px;\n margin-bottom: 32px;\n\n @media (max-width: 768px) {\n font-size: 16px;\n line-height: 1.42;\n letter-spacing: -0.1px;\n margin-bottom: 24px;\n }\n`;\n\nconst UserGuideStepWrapper = styled.div`\n width: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-bottom: 90px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n margin-bottom: 77px;\n }\n`;\n\nconst TextStep = styled.span`\n font-size: 15px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: normal;\n text-align: left;\n color: rgba(0, 0, 0, 0.6);\n`;\n\nconst ImgStep = styled.img`\n margin-left: 16px;\n margin-right: 16px;\n\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n transform: rotate(90deg);\n\n width: 16px;\n height: 16px;\n\n margin-left: 0px;\n margin-right: 0px;\n\n margin-top: 8px;\n margin-bottom: 8px;\n }\n`;\n\nconst MainStepRow = styled.div`\n display: flex;\n align-items: flex-start;\n\n > div:first-child {\n border-left: 0px;\n }\n\n > div:last-child {\n border-right: 0px;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n\n > div:last-child {\n border-bottom: 0px;\n }\n\n > div.uniq {\n border-bottom: 1px solid #f2f2f2;\n }\n }\n`;\n\nconst MainStepWrapper = styled.div`\n padding-left: 47px;\n padding-right: 52px;\n border-right: 1px solid #f2f2f2;\n\n position: relative;\n\n > img.arrow {\n width: 24px;\n height: 24px;\n\n position: absolute;\n top: calc(90px - 12px);\n right: -11.5px;\n\n display: none;\n }\n\n > img.mobile {\n display: none;\n }\n\n > img.web {\n display: block;\n }\n\n @media (max-width: 768px) {\n border-right: 0px;\n border-bottom: 1px solid #f2f2f2;\n\n > img.arrow {\n width: 24px;\n height: 24px;\n\n top: unset;\n right: unset;\n bottom: -10px;\n left: calc(50% - 12px);\n\n transform: rotate(90deg);\n }\n\n > img.web {\n display: none;\n }\n\n > img.mobile {\n display: block;\n }\n }\n\n @media (max-width: 768px) {\n padding-right: 0px;\n padding-left: 0px;\n padding-bottom: 44px;\n }\n`;\n\nconst MainStepImageSection = styled.div`\n width: 288px;\n height: 180px;\n\n margin-bottom: 24px;\n\n > img.bg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n @media (max-width: 768px) {\n width: 100%;\n text-align: center;\n }\n`;\n\nconst MainStepTextSection = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n`;\n\nconst StepIndex = styled.span`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: normal;\n text-align: center;\n color: #afb0b2;\n margin-bottom: 8px;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst StepTitle = styled.span`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n margin-bottom: 24px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n }\n`;\n\nconst StepDescription = styled.span`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: -0.3px;\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n }\n word-break: keep-all;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst KeepBr = styled.br`\n display: block;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n","import styled from 'styled-components';\nimport { mainColor, sizeHandler } from '../../../theme';\n\nconst HomeStyledContainer = styled.div`\n padding-top: 55px;\n\n .center-title {\n text-align: center;\n margin-bottom: 28px;\n\n > p {\n height: 52px;\n line-height: 52px;\n margin-bottom: 0px;\n font-size: 28px;\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n }\n\n .ant-collapse > .ant-collapse-item > .ant-collapse-header {\n padding: 0px;\n }\n\n .ant-collapse-borderless > .ant-collapse-item {\n border: 0px;\n }\n\n .ant-collapse-content > .ant-collapse-content-box {\n padding: 0px;\n padding-top: 4px;\n padding-bottom: 12px;\n }\n\n .fake-input {\n width: 100%;\n height: 36px;\n border-radius: 4px;\n border: 1px solid #e6e6e6;\n }\n\n .main-section {\n position: relative;\n width: 100%;\n height: 100vh;\n max-height: 628px;\n // min-height: calc(100vh - 55px);\n\n // background-color: #ebf9ff;\n // background-image: url('/assets/images/new_mainbg.png');\n background-color: linear-gradient(to top, #3bc1ff, #5b62f5);\n background-image: url('/assets/images/w_main.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 768px) {\n background-image: url('/assets/images/new_mainbg-mobile.png');\n min-height: 86vh;\n\n .inner-container {\n padding: 0px;\n padding-bottom: 30px;\n min-height: 86vh;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n }\n }\n\n .ant-input[disabled] {\n color: rgba(0, 0, 0, 0.7);\n }\n .ant-input {\n font-size: 12px;\n }\n\n .order-menu-wrapper {\n width: 50%;\n position: relative;\n max-width: 440px;\n min-width: 370px;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n\n .mobile-close-button {\n display: none;\n }\n\n @media (max-width: 768px) {\n display: none;\n\n &.active {\n display: block;\n }\n\n margin: 0px auto;\n position: fixed;\n z-index: 99;\n top: 55px;\n left: 0px;\n width: 100%;\n max-width: 100%;\n height: calc(100vh - 55px);\n overflow: scroll;\n border-radius: 0px;\n\n .mobile-close-button {\n display: block;\n position: absolute;\n top: 16px;\n right: 24px;\n padding: 6px;\n cursor: pointer;\n\n img {\n width: 18px;\n height: 18px;\n }\n }\n\n &.blocked {\n z-index: 0;\n position: relative;\n height: auto;\n overflow: auto;\n }\n }\n\n .order-title {\n margin-bottom: 20px;\n\n p {\n margin: 0px;\n padding: 0px;\n font-size: ${sizeHandler(28)};\n font-weight: bold;\n letter-spacing: -0.7px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .service {\n margin-bottom: 20px;\n\n .time-checker {\n width: calc(50% - 4px);\n }\n\n .time-checker.margin {\n margin-right: 8px;\n }\n\n .search-button {\n position: absolute;\n top: 1px;\n right: 1px;\n background-color: #ececec;\n height: 34px;\n width: 50px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n\n font-size: 12px;\n line-height: 34px;\n text-align: center;\n cursor: pointer;\n color: rgba(0, 0, 0, 0.4);\n }\n\n .service-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ddd;\n border-radius: 6px;\n\n .tab {\n flex: 1;\n height: 48px;\n border-right: 1px solid #ddd;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:last-child {\n border: 0px;\n }\n\n span {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.2px;\n font-weight: bold;\n color: ${mainColor};\n }\n }\n\n .tab.active {\n background-color: ${mainColor};\n\n span {\n color: white;\n }\n }\n }\n\n .info-tab {\n display: flex;\n align-items: center;\n justify-content: center;\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n text-align: left;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n }\n\n .info-input-tab {\n display: flex;\n align-items: center;\n\n > div {\n flex: 1;\n\n &:first-child {\n margin-right: 8px;\n }\n }\n\n .name-wrapper {\n position: relative;\n\n .sex-type-wrapper {\n position: absolute;\n top: 1px;\n right: 1px;\n z-index: 3;\n background-color: white;\n\n .sex-type {\n display: inline-block;\n width: 34px;\n height: 34px;\n line-height: 36px;\n text-align: center;\n border-left: 1px solid #e6e6e6;\n\n font-size: ${sizeHandler(14)};\n font-weight: normal;\n letter-spacing: -0.2px;\n color: rgba(0, 0, 0, 0.2);\n cursor: pointer;\n\n &:hover {\n color: rgba(0, 0, 0, 0.3);\n transition: all 0.3s;\n }\n\n &.active {\n color: ${mainColor};\n }\n }\n }\n }\n\n .input {\n flex-grow: 1;\n display: flex;\n min-width: 0;\n align-items: center;\n\n border-radius: 4px;\n border: solid 1px #e6e6e6;\n min-height: 36px;\n line-height: 36px;\n text-indent: 12px;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n background-color: #f5f5f5;\n cursor: not-allowed;\n\n p {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n // .ant-input {\n // color: rgba(0, 0, 0, 0.8);\n // }\n\n &.phone {\n flex: 0.5;\n\n @media (max-width: 768px) {\n flex: 1;\n }\n }\n\n &.input-with-icon {\n p {\n height: 100%;\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n div {\n height: 100%;\n width: 36px;\n border-left: 1px solid #e6e6e6;\n display: flex;\n justify-content: center;\n align-items: center;\n\n span {\n text-align: center;\n text-indent: 0px;\n // opacity: 0.3;\n font-size: ${sizeHandler(12)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n img {\n width: 18px;\n }\n }\n }\n }\n }\n }\n\n .service-fee-wrapper {\n margin-bottom: 32px;\n\n .service {\n display: flex;\n align-items: center;\n padding-top: 12px;\n margin-bottom: 0px;\n\n .name {\n flex: 1;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: right;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n input {\n height: 36px;\n display: inline-block;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n .ant-input-number-input {\n height: 100%;\n }\n\n input {\n height: 100%;\n }\n }\n\n .select {\n display: inline-block;\n height: 36px;\n width: 100%;\n\n .ant-select-selection--single {\n height: 100%;\n }\n\n .ant-select-selection__rendered {\n line-height: 36px;\n }\n }\n\n .info {\n font-size: ${sizeHandler(12)};\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 4px;\n letter-spacing: -0.15px;\n }\n\n .ant-select-selection__rendered {\n margin-right: 34px;\n border-right: 1px solid #e6e6e6;\n }\n\n .ant-select-arrow {\n color: ${mainColor};\n }\n\n .image-with-text {\n display: flex;\n align-items: center;\n img {\n height: 18px;\n border: 0px;\n }\n\n p {\n flex: 1;\n margin: 0px;\n padding: 0px;\n margin-left: 12px;\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: #3bc1ff;\n }\n }\n }\n\n .side-summary-tab {\n position: absolute;\n top: 0px;\n right: -380px;\n width: 360px;\n height: 100%;\n background-color: white;\n border-radius: 8px;\n box-shadow: 1px 2px 3.5px #e6e6e6;\n padding: 32px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n border-radius: 0px;\n box-shadow: none;\n padding: 0px;\n position: relative;\n top: 55px;\n left: 0px;\n background-color: transparent;\n }\n\n .refund-info-wrapper {\n flex: 1;\n display: flex;\n align-items: flex-end;\n\n .info-wrapper {\n width: 100%;\n\n .title {\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n color: #a7a7a7;\n margin-bottom: 8px;\n }\n\n .info {\n font-size: ${sizeHandler(10)};\n line-height: ${sizeHandler(16)};\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n margin-top: 36px;\n padding-bottom: 20px;\n\n .info {\n margin-bottom: 60px;\n }\n }\n }\n }\n }\n }\n }\n\n .additional-fee {\n p {\n margin: 0px;\n padding: 0px;\n margin-top: 8px;\n font-size: ${sizeHandler(10)};\n color: rgba(0, 0, 0, 0.7);\n }\n }\n\n .ant-input-number {\n width: 100%;\n height: 48px;\n\n .ant-input-number-input-wrap {\n height: 100%;\n\n .ant-input-number-input {\n height: 100%;\n }\n\n input {\n height: 100%;\n }\n }\n\n .ant-input-number-handler-wrap {\n opacity: 1;\n width: 48px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n\n i {\n position: relative;\n margin-top: 0px;\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n font-size: 16px;\n }\n }\n .anticon.anticon-up.ant-input-number-handler-up-inner {\n color: ${mainColor};\n }\n .anticon.anticon-down.ant-input-number-handler-down-inner {\n color: ${mainColor};\n }\n }\n }\n\n .total-fee-wrapper {\n padding: 18px 0px;\n border-top: 1px solid #e6e6e6;\n border-bottom: 1px solid #e6e6e6;\n\n .total-fee {\n display: flex;\n align-items: center;\n\n .total-min {\n flex: 1;\n font-size: ${sizeHandler(14)};\n // font-weight: bold;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee-min {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.5px;\n text-align: right;\n // font-weight: bold;\n // color: #3bc1ff;\n\n color: rgba(0, 0, 0, 0.7);\n }\n\n span.vat {\n font-size: ${sizeHandler(11)};\n color: #565656;\n }\n }\n\n .total {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .fee {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n letter-spacing: -0.5px;\n text-align: right;\n color: #3bc1ff;\n }\n }\n\n // 여기\n .service-section {\n .concept-container {\n margin-bottom: 68px;\n\n .concept-title {\n font-size: 24px;\n font-weight: bold;\n line-height: 2.17;\n letter-spacing: -0.67px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 12px;\n }\n\n .concept-body {\n font-size: 18px;\n font-weight: normal;\n line-height: 1.78;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n\n @media (max-width: 768px) {\n font-size: 16px;\n }\n }\n }\n\n .service-item:last-child {\n border-top: 1px solid #e6e6e6;\n margin-top: 96px;\n padding-top: 96px;\n }\n\n .service-item {\n .service-name {\n p {\n font-size: ${sizeHandler(36)};\n font-weight: bold;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n position: relative;\n\n .stamp {\n margin-left: 20px;\n padding: 8px 12px;\n border-radius: 4px;\n background-color: #ff0052;\n font-size: 10px;\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n\n position: absolute;\n bottom: 6px;\n }\n }\n\n margin-bottom: 12px;\n }\n\n .mobile {\n display: none;\n }\n\n .desktop {\n display: block;\n }\n\n .service-info {\n display: flex;\n align-items: center;\n\n .service-photo {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 60px;\n\n img {\n // height: 100%;\n width: 100%;\n }\n }\n\n .info-wrapper {\n flex: 2;\n\n .main-description {\n font-size: ${sizeHandler(18)};\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -0.3px;\n margin-bottom: 32px;\n\n @media (max-width: 768px) {\n font-size: 16px;\n }\n }\n\n .service-detail {\n display: flex;\n align-item: center;\n\n .target-price {\n // flex: ;\n min-width: 240px;\n\n .target {\n margin-bottom: 36px;\n }\n }\n\n .scheme {\n flex: 1;\n margin-left: 20px;\n\n .scheme-items {\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n height: 38px;\n line-height: 38px;\n margin: 0px;\n padding: 0px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n border-bottom: 1px solid #e6e6e6;\n }\n\n .ps {\n font-size: ${sizeHandler(14)};\n color: ${mainColor};\n // font-weight: bold;\n height: 28px;\n line-height: 28px;\n\n &:nth-child(2n-1) {\n color: #ff5500;\n }\n }\n }\n }\n\n .detail-button-wrapper {\n min-width: 240px;\n margin-top: 40px;\n background-color: #606060;\n border-radius: 4px;\n height: 48px;\n cursor: pointer;\n\n p {\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 48px;\n font-size: ${sizeHandler(14)};\n color: white;\n font-weight: bold;\n }\n }\n\n .reserve-button-wrapper {\n flex: 1;\n\n margin-top: 40px;\n background-color: ${mainColor};\n border-radius: 4px;\n height: 48px;\n cursor: pointer;\n\n p {\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 48px;\n font-size: ${sizeHandler(14)};\n color: white;\n font-weight: bold;\n }\n }\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 36px;\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n .price-content {\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n color: #606060;\n letter-spacing: -0.3px;\n }\n\n .info-container {\n .spec-title {\n font-size: 18px;\n font-weight: bold;\n line-height: 1.56;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .spec-wrapper {\n padding: 8px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n .spec-row {\n font-size: 14px;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n }\n\n .spec-sub {\n font-size: 12px;\n letter-spacing: -0.26px;\n color: #a7a7a7;\n margin: 0px;\n margin-top: 4px;\n }\n }\n }\n\n .button-container {\n display: flex;\n align-items: center;\n margin-top: 32px;\n\n .button {\n border-radius: 4px;\n height: 48px;\n line-height: 48px;\n text-align: center;\n cursor: pointer;\n\n &.video-button {\n width: 285px;\n background-color: #606060;\n margin-right: 20px;\n\n &:hover {\n transition: all 0.3s;\n background-color: #707070;\n }\n }\n\n &.reserve-button {\n background-color: #3bc1ff;\n flex: 1;\n\n &:hover {\n transition: all 0.3s;\n background-color: #54c9ff;\n }\n }\n\n span {\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n }\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n\n .button {\n width: 100% !important;\n margin-right: 0px !important;\n height: 40px;\n line-height: 40px;\n\n &:last-child {\n margin-top: 16px;\n }\n }\n }\n }\n }\n }\n }\n\n @media (max-width: 768px) {\n .service-item {\n .service-name {\n p {\n font-size: ${sizeHandler(30)};\n\n .stamp {\n padding: 4px 8px;\n bottom: 8px;\n }\n }\n }\n\n .service-info {\n display: block;\n\n .service-photo {\n margin-top: 40px;\n padding-left: 0px;\n\n img {\n width: 100%;\n }\n }\n\n .info-wrapper {\n width: 100%;\n\n > p {\n font-size: ${sizeHandler(16)};\n }\n\n .service-detail {\n flex-direction: column;\n\n .service-photo {\n display: none;\n }\n\n .scheme {\n margin: 0px;\n }\n }\n\n .detail-button-wrapper {\n display: block;\n width: 100%;\n height: 40px;\n\n p {\n line-height: 40px;\n }\n }\n\n .reserve-button-wrapper {\n display: block;\n width: 100%;\n height: 40px;\n\n p {\n line-height: 40px;\n }\n }\n .mobile {\n display: block;\n }\n\n .desktop {\n display: none;\n }\n }\n }\n }\n }\n }\n\n .reserve-section {\n .menu-top {\n display: flex;\n align-items: flex-end;\n margin-bottom: 16px;\n\n .main-title {\n flex: 1;\n font-size: 28px;\n font-weight: bold;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n }\n\n .sub-button {\n color: ${mainColor};\n font-weight: bold;\n font-size: 14px;\n cursor: pointer;\n }\n }\n\n .menu-bottom {\n .reserve-menu {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n margin-bottom: 12px;\n border-radius: 4px;\n box-shadow: 2px 2px 10px 3px rgba(0, 0, 0, 0.1);\n background-color: #ffffff;\n\n .title {\n color: #a7a7a7;\n font-size: ${sizeHandler(12)};\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n }\n\n .contents {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: #606060;\n margin: 0px;\n padding: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .service-name {\n flex: 0.7;\n .contents {\n color: ${mainColor};\n }\n }\n\n .user {\n flex: 0.5;\n }\n\n .date {\n flex: 0.7;\n }\n\n .hospital {\n flex: 1;\n }\n\n .status {\n flex: 0.4;\n }\n\n .button {\n flex: 0.5;\n > div {\n display: flex;\n height: 48px;\n border-radius: 4px;\n align-items: center;\n justify-content: center;\n border: 1px solid ${mainColor};\n cursor: pointer;\n transition: all 0.3s;\n\n span {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: ${mainColor};\n }\n\n &:hover {\n background-color: ${mainColor};\n span {\n color: white;\n }\n }\n }\n }\n\n .content.service {\n color: ${mainColor};\n }\n }\n @media (max-width: 768px) {\n .reserve-menu {\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n\n .contents {\n margin-bottom: 20px;\n }\n\n .button {\n width: 100%;\n > div {\n height: 40px;\n }\n }\n }\n }\n }\n }\n\n .section-title {\n padding-bottom: 16px;\n border-bottom: 1px solid #ececec;\n margin-bottom: 48px;\n\n p {\n font-size: ${sizeHandler(18)};\n color: #a7a7a7;\n font-weight: bold;\n margin: 0px;\n padding: 0px;\n opacity: 1;\n }\n }\n\n .order-menu-mobile-wrapper {\n // position: absolute;\n // bottom: 68px;\n // left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n width: 100%;\n padding: 10px;\n\n p {\n text-align: center;\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: white;\n }\n\n p:nth-child(1) {\n font-size: ${sizeHandler(14)};\n font-weight: normal;\n letter-spacing: -0.3px;\n text-align: center;\n color: white;\n lineheight: ${sizeHandler(20)};\n }\n\n button {\n width: 100%;\n height: 56px;\n font-size: ${sizeHandler(16)};\n font-weight: bold;\n text-align: center;\n color: #ffffff;\n margin-top: 28px;\n }\n\n @media (min-width: 768px) {\n display: none;\n }\n }\n`;\n\nexport default HomeStyledContainer;\n\nexport const UserMainContainer = styled.div`\n width: 100%;\n // min-height: calc(100vh - 55px);\n // background-image: url('/assets/images/');\n\n height: 100vh;\n max-height: 628px;\n\n background-color: linear-gradient(to top, #3bc1ff, #5b62f5);\n background-image: url('/assets/images/w_main.png');\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n padding-top: calc((100vh - 55px) * 0.2);\n\n @media (max-width: 768px) {\n background-size: cover;\n background-image: url('/assets/images/new_mainbg-mobile.png');\n\n min-height: initial;\n height: 600px;\n\n padding-top: 354px;\n }\n`;\n\nexport const InnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n\n @media (max-width: 1120px) {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n @media (max-width: 768px) {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nexport const UserMainTitle = styled.div`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 50px;\n line-height: 66px;\n\n letter-spacing: -1.44444px;\n\n color: #ffffff;\n\n position: relative;\n margin-bottom: 16px;\n\n @media (max-width: 768px) {\n > br {\n display: block;\n }\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 22px;\n line-height: 30px;\n\n text-align: center;\n color: #ffffff;\n\n margin-bottom: 4px;\n }\n`;\n\nexport const UserMainTitleDeco = styled.img`\n position: absolute;\n\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const DecoRight = styled(UserMainTitleDeco)`\n top: 0px;\n left: 240px;\n\n width: 32px;\n height: 32px;\n`;\n\nexport const DecoLeft = styled(UserMainTitleDeco)`\n top: 36px;\n left: -60px;\n\n width: 22px;\n height: 22px;\n`;\n\nexport const DecoLeftTop = styled(UserMainTitleDeco)`\n top: -52px;\n left: -62px;\n\n width: 62px;\n height: 62px;\n`;\n\nexport const UserMainSubtitle = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 22px;\n line-height: 30px;\n color: rgba(255, 255, 255, 0.8);\n letter-spacing: -0.4px;\n\n margin-bottom: 44px;\n\n @media (max-width: 768px) {\n font-weight: normal;\n font-size: 12px;\n line-height: 22px;\n letter-spacing: -0.3px;\n text-align: center;\n\n margin-bottom: 24px;\n }\n`;\n\nexport const UserMainRoute = styled.div`\n width: 100%;\n\n @media (max-width: 768px) {\n text-align: center;\n }\n`;\n\nexport const UserMainRouteButton = styled.a`\n display: inline-block;\n width: 100%;\n max-width: 360px;\n height: 64px;\n line-height: 64px;\n\n background: #3bc1ff;\n border: 1px solid #3bc1ff;\n box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 19px;\n letter-spacing: 0.2;\n\n text-align: center;\n\n color: #ffffff;\n cursor: pointer;\n\n &:hover {\n transition: 0.5s;\n opacity: 0.85;\n }\n\n @media (max-width: 768px) {\n width: calc(100vw - 20px);\n max-width: 360px;\n\n height: 56px;\n line-height: 56px;\n font-size: 16px;\n\n margin: 0 auto;\n }\n`;\n\nexport const PartnerContainer = styled.div`\n width: 100%;\n\n padding-top: 60px;\n padding-bottom: 60px;\n\n @media (max-width: 768px) {\n margin-top: 40px;\n }\n`;\n\nexport const PartnerInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n\n margin: 0 auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n position: relative;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none;\n }\n\n @media (max-width: 768px) {\n padding-left: 24px;\n padding-right: 24px;\n }\n`;\n\nexport const PartnerTitle = styled.div`\n display: flex;\n flex-direction: column;\n width: auto;\n\n align-items: center;\n margin-top: 10px;\n margin-bottom: 46px;\n\n > img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n\n margin-bottom: 16px;\n }\n\n > span {\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n // color: #3bc1ff;\n }\n\n @media (max-width: 1120px) {\n width: 100%;\n text-align: left;\n }\n`;\n\nexport const PartnerListRow = styled.div`\n display: flex;\n width: 100%;\n\n justify-content: space-between;\n align-items: center;\n text-align: center;\n flex-wrap: wrap;\n\n @media (max-width: 768px) {\n justify-content: flex-start;\n }\n\n @media (max-width: 480px) {\n justify-content: space-between;\n\n > div:nth-child(2n) {\n margin-right: 0px;\n }\n }\n`;\n\nexport const PartnerItem = styled.div`\n margin-bottom: 10px;\n\n width: 215px;\n height: 76px;\n\n border-radius: 4px;\n // box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n // border: 1px solid rgba(0, 0, 0, 0.1);\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n > img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n transform: scale(1.1);\n }\n\n @media (max-width: 768px) {\n margin-right: 8px;\n margin-bottom: 8px;\n }\n\n @media (max-width: 480px) {\n width: calc(50% - 4px);\n height: calc((50vw - 24px) * 0.35);\n }\n`;\n\nexport const SectionHeader = styled.div`\n padding-bottom: 10px;\n margin-bottom: 66px;\n\n border-bottom: 1px solid #e9e9e9;\n\n display: flex;\n align-items: flex-end;\n\n > img {\n width: 58px;\n height: 76px;\n object-fit: contain;\n\n margin-right: 16px;\n }\n\n > span {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 26px;\n line-height: 50px;\n\n text-align: center;\n letter-spacing: -0.777778px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n > img {\n width: 48px;\n height: 48px;\n\n margin-bottom: 10px;\n }\n\n > span {\n font-size: 20px;\n line-height: 32px;\n text-align: center;\n letter-spacing: -0.555556px;\n }\n }\n`;\n\nexport const ServiceListContainer = styled.div`\n margin-bottom: 102px;\n\n @media (max-width: 1120px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nexport const ServiceListInnerContainer = styled.div`\n width: 100%;\n max-width: 1120px;\n\n margin: 0 auto;\n`;\n\nexport const ServiceBoxWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const ServiceBoxContainer = styled.div`\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n margin-right: 0px;\n }\n\n margin-bottom: 46px;\n`;\n\nexport const ServiceBoxHeader = styled.div`\n > p:first-child {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n line-height: 26px;\n\n letter-spacing: -0.3px;\n }\n\n > p:last-child {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 32px;\n\n letter-spacing: -0.6px;\n }\n`;\n\nexport const ServiceBoxImageWrapper = styled.div`\n border-radius: 6px;\n overflow: hidden;\n`;\n\nexport const ServiceBoxImg = styled.img`\n width: calc((1120px / 3) - (40px / 3));\n max-width: 360px;\n object-fit: contain;\n\n @media (max-width: 1120px) {\n max-width: 280px;\n }\n\n @media (max-width: 900px) {\n max-width: 240px;\n }\n\n @media (max-width: 768px) {\n max-width: 300px;\n }\n`;\n\nexport const ServiceBoxButtons = styled.div`\n width: 100%;\n display: flex;\n\n margin-top: -12px;\n`;\n\nexport const MoreButton = styled.a`\n width: 132px;\n height: 48px;\n\n text-align: center;\n line-height: 48px;\n\n background: #606060;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 13px;\n\n color: #ffffff;\n\n cursor: pointer;\n`;\n\nexport const ActionButton = styled.span`\n flex: 1;\n\n height: 48px;\n line-height: 48px;\n\n text-align: center;\n\n background: #3bc1ff;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 13px;\n\n color: #ffffff;\n\n > img {\n margin-right: 6px;\n\n width: 18px;\n height: 18px;\n object-fit: contain;\n }\n\n cursor: pointer;\n`;\n\nexport const IntroduceSection = styled.div`\n display: flex;\n align-items: center;\n\n margin-bottom: 40px;\n\n > div {\n width: 50%;\n flex: 1;\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const IntroduceSectionFst = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n order: 2;\n width: 100%;\n\n p {\n text-align: center;\n }\n }\n }\n\n div.img-block {\n position: relative;\n text-align: center;\n\n display: flex;\n align-items: center;\n height: 100px;\n\n img {\n position: absolute;\n bottom: -50px;\n\n left: 5%;\n\n width: 50%;\n object-fit: contain;\n }\n\n @media (max-width: 768px) {\n order: 1;\n width: 100%;\n justify-content: center;\n\n margin-bottom: 14px;\n\n > img {\n position: initial;\n }\n }\n }\n`;\n\nexport const IntroduceSectionSnd = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n div.img-block {\n text-align: center;\n width: 100%;\n\n img {\n width: 50%;\n object-fit: cover;\n\n @media (max-width: 768px) {\n object-fit: contain;\n margin-bottom: 14px;\n }\n }\n }\n`;\n\nexport const IntroduceSectionTrd = styled(IntroduceSection)`\n div.text-block {\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n div.img-block {\n text-align: center;\n width: 100%;\n\n img {\n width: 50%;\n object-fit: cover;\n\n @media (max-width: 768px) {\n width: 65%;\n object-fit: contain;\n margin-bottom: 14px;\n }\n }\n }\n`;\n\nexport const IntroduceTitle = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 22px;\n line-height: 48px;\n\n letter-spacing: -0.666667px;\n\n color: rgba(0, 0, 0, 0.8);\n\n @media (max-width: 768px) {\n font-size: 18px;\n line-height: 28px;\n letter-spacing: -0.5px;\n }\n`;\n\nexport const IntroduceContent = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: ${props => (props.small ? '13px' : '16px')};\n line-height: ${props => (props.small ? '22px' : '30px')};\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n word-break: keep-all;\n font-size: ${props => (props.small ? '12px' : '14px')};\n line-height: ${props => (props.small ? '20px' : '23px')};\n }\n`;\n\nexport const MobileBr = styled.br`\n display: none;\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const DesktopBr = styled.br`\n display: block;\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const SpecListRow = styled.div`\n display: flex;\n align-items: flex-start;\n\n width: 100%;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const SpecWrapper = styled.div`\n margin-bottom: 28px;\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0px;\n }\n\n width: calc((100% / 3) - (40px / 3));\n\n @media (max-width: 768px) {\n width: 100%;\n margin-right: 0px;\n }\n`;\n\nexport const SpecIndex = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n line-height: 16px;\n\n letter-spacing: -0.333333px;\n color: rgba(0, 0, 0, 0.2);\n\n margin-bottom: 4px;\n`;\n\nexport const SpecTitleWrapper = styled.div`\n display: flex;\n align-items: center;\n\n text-align: left;\n\n > img {\n width: 24px;\n height: 24px;\n\n margin-right: 8px;\n object-fit: contain;\n }\n\n > span {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 44px;\n\n letter-spacing: -0.666667px;\n\n color: rgba(0, 0, 0, 0.8);\n }\n`;\n\nexport const SpecContent = styled.p`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 22px;\n\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 0px;\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n br {\n display: block;\n }\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n width: 360px;\n\n > div,\n span,\n a {\n width: calc(50% - 4px);\n }\n\n @media (max-width: 768px) {\n margin: 0 auto;\n }\n`;\n","import React from 'react';\nimport CountUp from 'react-countup';\nimport styled from 'styled-components';\n\nimport { DivisionLine } from '../../../../../Components/Common/input';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUsers, faHospitalUser } from '@fortawesome/free-solid-svg-icons';\nimport { faRectangleList } from '@fortawesome/free-regular-svg-icons';\n\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport SwiperCore, { Pagination, Navigation, Autoplay } from 'swiper';\nimport 'swiper/swiper-bundle.min.css';\nimport 'swiper/swiper.min.css';\nimport 'swiper/components/navigation/navigation.min.css';\nimport 'swiper/components/pagination/pagination.min.css';\nimport { MobileBr } from '../../home.styled';\nimport { Button } from 'antd';\n\nSwiperCore.use([Navigation, Pagination, Autoplay]);\n\nexport const UserNumberCount = () => {\n function handleClick(e) {\n window.location.href = '/360F/review/list';\n }\n\n return (\n
\n \n
\n \n 총 가입자 수\n \n
\n \n
\n\n
\n \n \n 메이트 수\n \n
\n \n
\n\n
\n \n 총 이용 건수\n \n
\n \n
\n
\n \n \n 만족도 200% 이용 후기와 서비스 만족도 98% \n \"위드메이트\" 에게 맡겨주세요\n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n 이용후기 더보기\n \n
\n );\n};\n\nconst ReviewContainer = styled.div`\n width: 42%;\n margin-top: 10px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst ReviewMainContainer = styled.div`\n width: 100%;\n height: 330px;\n\n @media (max-width: 768px) {\n height: 330px;\n }\n`;\n\nconst ReviewMainInnerContainer = styled.div`\n max-width: 500px;\n height: 100%;\n margin: 0 auto;\n\n padding-top: 10px;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst RollingContainer = styled.div`\n padding-top: 10px;\n padding-bottom: 20px;\n justify-content: center;\n display: flex;\n flex-direction: initial;\n background-color: #f9f9f9;\n\n .numberCount {\n font-size: 35px;\n }\n\n @media (max-width: 768px) {\n justify-content: center;\n\n .numberCount {\n font-size: 20px;\n }\n }\n`;\n\nconst ImgStyle = styled.div`\n width: 330px;\n height: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n\n @media (max-width: 768px) {\n width: 280px;\n height: auto;\n }\n`;\n\nconst SatisfactionContainer = styled.label`\n padding-top: 20px;\n justify-content: center;\n display: flex;\n flex-direction: initial;\n\n @media (max-width: 768px) {\n }\n`;\n\nconst SatisfactionLabel = styled.label`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n\n @media (max-width: 768px) {\n font-size: 15px;\n }\n`;\n\nconst NumberLabel = styled.label`\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 20px;\n\n @media (max-width: 768px) {\n font-size: 12px;\n }\n`;\n","import React from 'react';\n\n// components\nimport { PartnerContainer, PartnerInnerContainer, PartnerTitle, PartnerListRow, PartnerItem } from '../home.styled';\n\nexport const WithmatePartners = ({}) => {\n const baseUrl = '/assets/images/partners/';\n const fstRow = [\n baseUrl + 'new-goyang.png',\n baseUrl + 'new-gov-care.png',\n baseUrl + 'new-cancel.png',\n baseUrl + 'aju.png',\n baseUrl + 'new-goyang-happy.png',\n ];\n const sndRow = [\n baseUrl + 'new-junglang-woman.png',\n baseUrl + 'new-paju_woman.png',\n baseUrl + 'new-beatus.png',\n baseUrl + 'new-cheongdam.png',\n baseUrl + 'new-hyo-hospital.png',\n ];\n\n const trdRow = [baseUrl + 'ssn.png', baseUrl + 'limo-korea.png', baseUrl + 'help-you.png', baseUrl + 'errichi.png', baseUrl + 'new-imagine-us.png'];\n\n const fthRow = [baseUrl + 'iu-hosp.png', baseUrl + 'new-gpcop.png', baseUrl + 'goyohanM.png', baseUrl + 'carehouse.jpeg', baseUrl + 'bravo.png'];\n\n const ftfRow = [baseUrl + 'dlive.png', baseUrl + 'sungmo.png', baseUrl + 'metlife.png', baseUrl + 'aju_nursing_hospital.png'];\n\n return (\n \n \n \n \n 파트너사\n \n

위드메이트와 함께하는 협력 파트너사입니다.

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n};\n","import React from 'react';\n\nimport { MATE } from '../../../Lib/variables';\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\n\n// section\nimport Reserve from './Section/reserve';\nimport { UserMain as RenewMain } from './Section/renew/main';\nimport { GuideDetail } from '../../Guide/Section/detail';\nimport { UserGuideSection } from './Section/renew/guide';\nimport { UserNumberCount } from './Section/renew/numberCount';\n\nimport { WithmatePartners } from './Section/partners';\n\nexport default class HomePage extends React.PureComponent {\n state = {\n searchModal: false,\n };\n\n componentDidMount = async () => {};\n\n render() {\n const { userType } = this.props.auth;\n\n return (\n
\n {userType === MATE ? (\n <>\n \n \n ) : (\n <>\n \n \n \n \n \n {/* {\n this.props.history.push('/nemt/service');\n }}\n /> */}\n \n )}\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\n// component\nimport Home from './home';\nimport { MATE } from '../../../Lib/variables';\n\n// styles\nimport HomeStyledContainer from './home.styled';\n\n// actions\nimport {\n editResrveForm,\n getServiceInfo,\n serviceReserve,\n getUserInfo,\n getContractPartners,\n acceptCall,\n editReserveDetailView,\n editReserveLatestView,\n editViewType,\n editCallPage,\n editContractForm,\n} from '../../../Reducer/Modules/app';\nimport { editAuth } from '../../../Reducer/Modules/auth';\n\nclass HomeContainer extends React.PureComponent {\n componentDidMount = () => {\n const id = localStorage.getItem('id');\n const userType = localStorage.getItem('userType');\n\n if (id && userType === MATE) {\n } else {\n const prevList = localStorage.getItem('partners');\n if (prevList) {\n const list = JSON.parse(prevList);\n this.props.editContractForm({ type: 'partners', value: list });\n }\n\n this.props.fetchPartners();\n }\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapStateToDispatch = dispatch => ({\n editAuth: ({ type, value }) => dispatch(editAuth({ type, value })),\n editForm: ({ type, value }) => dispatch(editResrveForm({ type, value })),\n editLatest: ({ value }) => dispatch(editReserveLatestView({ value })),\n editDetail: ({ value }) => dispatch(editReserveDetailView({ value })),\n editViewType: ({ value }) => dispatch(editViewType({ value })),\n editCallPage: value => dispatch(editCallPage(value)),\n editContractForm: ({ type, value }) => dispatch(editContractForm({ type, value })),\n\n getServiceInfo: ({ code }) => dispatch(getServiceInfo({ code })),\n getUserInfo: ({ id, userType }) => dispatch(getUserInfo({ id, userType })),\n fetchPartners: () => dispatch(getContractPartners()),\n serviceReserve: ({ userId, info }) => dispatch(serviceReserve({ userId, info })),\n acceptCall: ({ mateId, callId }) => dispatch(acceptCall({ mateId, callId })),\n});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(HomeContainer);\n","import styled from 'styled-components';\n\nconst StyledContainer = styled.div``;\n\nexport default StyledContainer;\n\nexport const Container = styled.div`\n padding-top: 55px;\n`;\n\nexport const GuideNavContainer = styled.div`\n width: 100%;\n background-color: #ffffff;\n\n border-bottom: 4px solid #f2f2f2;\n`;\n\nexport const InnerContainer = styled.div`\n width: 100%;\n\n max-width: 1120px;\n margin: 0 auto;\n\n // @media (max-width: 1120px) {\n // padding-left: 32px;\n // padding-right: 32px;\n // }\n\n @media (max-width: 768px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nexport const GuideNavWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding-top: 16px;\n padding-bottom: 16px;\n\n @media (max-width: 768px) {\n overflow-x: scroll;\n }\n`;\n\nexport const NavTab = styled.div`\n > a {\n cursor: pointer;\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.5px;\n text-align: left;\n\n white-space: nowrap;\n\n color: ${props => (props.active ? '#3BC1FF' : 'rgba(0,0,0,0.6)')};\n\n display: inline-block;\n }\n\n @media (max-width: 768px) {\n margin-right: 40px;\n\n > a {\n font-size: 16px;\n }\n }\n`;\n\nexport const GuideConceptContainer = styled.div`\n margin-top: 102px;\n`;\n\nexport const GuideConceptTitle = styled.p`\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n\n margin-bottom: 50px;\n`;\n\nexport const GuideConceptImageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n\n margin-bottom: 40px;\n`;\n\nexport const GuideConceptImage = styled.img`\n height: 200px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const GuideConceptImageMobile = styled.img`\n display: none;\n\n height: 300px;\n object-fit: contain;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const GuideConceptTextWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n\n margin-bottom: 122px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideConceptTextBlock = styled.div`\n &:first-child {\n margin-right: 20px;\n\n @media (max-width: 768px) {\n margin-right: 0px;\n\n margin-bottom: 16px;\n }\n }\n\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.67;\n letter-spacing: -0.2px;\n text-align: left;\n word-break: keep-all;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n @media (max-width: 768px) {\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.75;\n letter-spacing: -0.2px;\n text-align: left;\n }\n\n > span {\n font-weight: bold;\n }\n`;\n\nexport const MobileBr = styled.br`\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n\n @media (max-width: 320px) {\n display: none;\n }\n`;\n\nexport const DesktopBr = styled.br`\n display: block;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const MeritContainer = styled.div`\n background-color: #ffffff;\n\n padding-top: 100px;\n padding-bottom: 80px;\n`;\n\nexport const MeritHeaderWrapper = styled.div`\n width: 100%;\n padding-bottom: 10px;\n border-bottom: 2px solid #f2f2f2;\n\n div.wrap {\n display: flex;\n align-items: flex-end;\n justify-content: flex-start;\n }\n\n img {\n width: 72px;\n height: 72px;\n object-fit: contain;\n\n margin-right: 10px;\n }\n\n h3 {\n font-size: 24px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 0px;\n }\n`;\n\nexport const MeritCardList = styled.div`\n display: flex;\n flex-wrap: wrap;\n\n padding-top: 64px;\n`;\n\nexport const MeritCardWrapper = styled.div`\n height: 260px;\n width: 33.333%;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n margin-bottom: 24px;\n }\n`;\n\nexport const MeritCardNumber = styled.p`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.43;\n letter-spacing: normal;\n text-align: left;\n color: #afb0b2;\n margin-bottom: 16px;\n`;\n\nexport const MeritCardTitleRow = styled.div`\n display: flex;\n align-items: center;\n\n > img {\n width: 20px;\n height: 20px;\n object-fit: contain;\n margin-right: 10px;\n }\n\n > span {\n font-size: 20px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.54;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n`;\n\nexport const MeritCardDesc = styled.div`\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n @media (max-width: 768px) {\n font-size: 15px;\n }\n`;\n\nexport const GuideDetailContainer = styled.div`\n background-color: #f9f9f9;\n\n padding-top: 56px;\n padding-bottom: 100px;\n`;\n\nexport const GuideDetailServiceCardWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideDetailServiceCard = styled.div`\n width: 360px;\n padding: 34px 32px;\n\n background: #ffffff;\n box-shadow: 2px 4px 16px -4px rgba(0, 0, 0, 0.1);\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n @media (max-width: 768px) {\n margin-bottom: 24px;\n width: 100%;\n\n padding: 34px 16px;\n }\n`;\n\nexport const GuideCardImage = styled.img`\n width: 124px;\n height: 124px;\n border-radius: 50%;\n\n margin-bottom: 40px;\n`;\n\nexport const GuideCardSpecTitle = styled.p`\n width: 100%;\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.26;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 24px;\n`;\n\nexport const GuideCardSpecRow = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-start;\n\n margin-bottom: 24px;\n\n > span {\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n // line-height: 1.43;\n letter-spacing: normal;\n text-align: left;\n color: #3bc1ff;\n margin-right: 10px;\n }\n\n > p {\n width: 100%;\n flex: 1;\n font-size: 17px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n // line-height: 1.65;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n`;\n\nexport const GuideCardName = styled.p`\n width: 100%;\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.42;\n letter-spacing: -0.1px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n margin-bottom: 2px;\n`;\n\nexport const GuideCardType = styled.h3`\n width: 100%;\n font-size: 26px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: -0.5px;\n text-align: left;\n color: #3bc1ff;\n margin-bottom: 24px;\n`;\n\nexport const GuideCardDescription = styled.p`\n width: 100%;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: -0.3px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n > span {\n font-weight: bold;\n }\n\n margin-bottom: 60px;\n`;\n\nexport const GuideDetailSubFlexWrapper = styled.div`\n display: flex;\n justify-content: content;\n align-items: flex-start;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nexport const GuideDetailButtonWrapper = styled(GuideDetailSubFlexWrapper)`\n border-radius: 4px;\n overflow: hidden;\n\n > span.button {\n cursor: pointer;\n display: inline-block;\n\n flex: 1;\n height: 44px;\n line-height: 44px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 12px;\n text-align: center;\n color: #ffffff;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n }\n\n > span.gray {\n background-color: #606060;\n\n @media (max-width: 768px) {\n margin-bottom: 8px;\n }\n }\n\n > span.blue {\n background-color: #3bc1ff;\n }\n`;\n\nexport const GuideDetailSubFlexbox = styled.div`\n flex: 1;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n > p {\n margin-bottom: 20px;\n\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 18px;\n\n text-align: left;\n\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const GuideUsingContainer = styled.div`\n padding-top: 62px;\n padding-bottom: 78px;\n background-color: #f9f9f9;\n`;\n\nexport const GuideUsingSubFlexWrapper = styled(GuideDetailSubFlexWrapper)`\n align-items: center;\n justify-content: center;\n\n @media (max-width: 768px) {\n align-items: flex-start;\n padding-left: 40px;\n }\n`;\n\nexport const GuideUsingFlexbox = styled(GuideDetailSubFlexbox)`\n align-items: center;\n flex: initial;\n min-width: 320px;\n\n > p.index {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 10px;\n line-height: 14px;\n\n letter-spacing: -0.333333px;\n color: rgba(0, 0, 0, 0.2);\n\n margin-bottom: 16px;\n }\n\n > p {\n width: auto;\n text-align: center;\n }\n\n > p.title {\n font-family: Noto Sans KR;\n font-style: normal;\n font-weight: bold;\n font-size: 16px;\n line-height: 22px;\n\n text-align: center;\n letter-spacing: -0.6px;\n }\n\n > div {\n display: flex;\n justify-content: center;\n\n margin-bottom: 16px;\n\n img {\n height: 90px;\n object-fit: contain;\n }\n }\n\n margin-bottom: 44px;\n`;\n\nexport const GuideUsageFlexbox = styled.div`\n flex: 1;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n margin-bottom: 68px;\n\n @media (max-width: 768px) {\n margin-bottom: 32px;\n // width: 230px;\n align-items: ;\n }\n\n div {\n // width: 120px;\n\n img {\n width: 64px;\n height: 64px;\n margin-right: 34px;\n object-fit: contain;\n }\n\n // @media (max-width: 768px) {\n // width: 70px;\n\n // img {\n // height: 32px;\n // }\n // }\n }\n\n span {\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.65;\n letter-spacing: -0.2px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n\n // @media (max-width: 768px) {\n // font-size: 13px;\n // line-height: 19px;\n // }\n }\n`;\n\nexport const WithmateContainer = styled.div`\n padding-top: 56px;\n // padding-bottom: 120px;\n`;\n\nexport const FlexDivWrapper = styled.div`\n display: flex;\n width: 100%;\n\n ${props => props.top && `margin-bottom: 72px;`}\n`;\n\nexport const HiddenType = styled.div`\n @media (max-width: 768px) {\n ${props => props.mHidden && `display: none;`}\n }\n`;\n\nexport const BigSideBox = styled(HiddenType)`\n width: 58%;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const SmallSideBox = styled(HiddenType)`\n width: 42%;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const WithmateBg = styled.div`\n width: 100%;\n height: 100%;\n\n background-image: url(${props => props.bg});\n background-size: 80% auto;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const WithmateTitle = styled.div`\n > img {\n width: 72.5px;\n height: 48px;\n object-fit: contain;\n margin-right: 8px;\n }\n\n > span {\n font-size: 28px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.11;\n letter-spacing: -0.5px;\n text-align: left;\n color: rgba(0, 0, 0, 0.7);\n }\n\n display: flex;\n align-items: flex-end;\n margin-bottom: 24px;\n`;\n","import React from 'react';\nimport { HashLink } from 'react-router-hash-link';\n\n// components\nimport { GuideNavContainer, InnerContainer, GuideNavWrapper, NavTab } from '../guide.styled';\n\nexport const GuideNav = ({ activeTab, onTab }) => {\n return (\n \n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('withmate');\n }}\n >\n 위드메이트란?\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('types');\n }}\n >\n 서비스 종류\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('merit');\n }}\n >\n 믿을수 있는 위드메이트\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('usage');\n }}\n >\n 이런분께 추천해요\n \n \n \n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' })}\n onClick={() => {\n onTab('partners');\n }}\n >\n 위드메이트 파트너\n \n \n \n \n \n );\n};\n","import React from 'react';\n\n// components\nimport { GuideConceptContainer } from '../guide.styled';\n\nexport const GuideConcept = ({}) => {\n return ;\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport swal from 'sweetalert2';\n\n// components\nimport {\n GuideDetailContainer,\n InnerContainer,\n GuideConceptTitle,\n GuideDetailServiceCardWrapper,\n GuideDetailServiceCard,\n GuideCardImage,\n GuideCardName,\n GuideCardType,\n GuideCardDescription,\n GuideCardSpecTitle,\n GuideCardSpecRow,\n} from '../guide.styled';\n\nexport const GuideDetail = () => {\n return (\n \n \n 서비스 종류\n \n \n <>\n 위드메이트 동행 전문가가 고객님의\n
\n 자택에서 병원까지 동행하고, 병원 업무를\n
\n 마친 뒤 다시 자택까지 동행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 25,000원 (추가 30분마다 12,500원)\n \n \n }\n spec1={\n <>\n 위드메이트 소속 동행 전문가가
\n 자택에서 병원까지 동행\n \n }\n spec2={\n <>\n 대중교통, 고객님 소유 자차, 택시 중
\n 선택하여 이동\n \n }\n spec3={\n <>\n 서비스 종료 이후\n
\n 서비스 보고서 열람 가능\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡\n
\n 실시간 알림 업데이트 제공\n \n }\n />\n \n <>\n 위드메이트 베이직 서비스는 위드메이트 동행\n
\n 전문가가 고객님께서 지정한 의료 시설 혹은\n
\n 병원 내에서 보호자 대행 업무를 수행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 15,000원 (추가 30분마다 7,500원)\n \n \n }\n spec1={\n <>\n 고객님의 진료 일정에 맞춰 위드메이트
\n 소속 동행 전문가가 의료 시설 도착\n \n }\n spec2={\n <>\n 지정된 의료 시설에서 고객님 접선 후
\n 진료 시작부터 끝까지 동행\n \n }\n spec3={\n <>\n 진료 종료 후 고객님의 상태를
\n 파악하고 이상 없을 시 서비스 종료\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡\n
\n 실시간 알림 업데이트 제공\n \n }\n />\n \n <>\n {/* 위드메이트 동행 전문가가 고객님께서\n
\n 자택에서 병원까지 동행하고, 병원 내에서\n
\n 보호자 대행 업무를 수행합니다. */}\n 고객님께서 수면내시경 검사를 받는\n
\n 병원 내에서 위드메이트 동행 전문가가\n
\n 보호자 대행 업무를 수행합니다.\n \n
\n
\n <>\n 요금
\n 시간당 15,000원 (추가 30분마다 7,500원)\n \n \n }\n spec1={\n <>\n 고객님의 진료 일정에 맞춰 위드메이트
\n 소속 동행 전문가가 의료 시설 도착\n \n }\n spec2={\n <>\n 지정된 의료 시설에서 고객님 접선 후
\n 수면 내시경 검사 시작부터 끝까지 동행\n \n }\n spec3={\n <>\n 수면 내시경 검사 종료 후 고객님의
\n 상태를 파악하고 이상 없을 시 종료\n \n }\n spec4={\n <>\n 서비스 진행 단계별 카카오톡
\n 실시간 알림 업데이트 제공\n \n }\n />\n
\n
\n
\n );\n};\n\nconst GuideCard = ({ source, name, type, desc, spec1, spec2, spec3, spec4 }) => (\n \n \n {name}\n {type}\n {desc}\n 서비스 구성\n\n \n 01\n

{spec1}

\n
\n\n \n 02\n

{spec2}

\n
\n\n \n 03\n

{spec3}

\n
\n\n \n 04\n

{spec4}

\n
\n
\n);\n","import React from 'react';\nimport styled from 'styled-components';\n\n// components\nimport { GuideUsingContainer, InnerContainer, GuideConceptTitle, GuideUsingSubFlexWrapper, GuideUsageFlexbox, MobileBr, DesktopBr } from '../guide.styled';\n\nexport const GuideUsage = () => {\n return (\n \n \n 이런 분께 추천해요\n \n \n
\n \n
\n \n 병원에 가시는 \n \n 어르신\n \n
\n \n
\n \n
\n \n 거동이 \n \n 힘드신 분\n \n
\n \n
\n \n
\n \n 항암 / 방사선 치료를 \n \n 받으시는 분\n \n
\n
\n\n \n \n
\n \n
\n \n 수면내시경 등 \n \n 마취가 동반되는 \n \n 치료를 받으시는 분\n \n
\n \n
\n \n
\n \n 입원 / 퇴원\n \n \n 하시는 분\n \n
\n \n
\n \n
\n \n 안과 진료/시술을 \n \n 받으시는 분\n \n
\n
\n\n \n \n
\n \n
\n \n 각종 검진을 \n \n 받으시는 분\n \n
\n \n
\n \n
\n \n 임산부, 산모, \n 및 소아\n \n
\n \n
\n \n
\n 혈액 투석 환자\n
\n
\n
\n
\n );\n};\n","import React from 'react';\nimport {\n MeritContainer,\n InnerContainer,\n MeritHeaderWrapper,\n MeritCardList,\n MeritCardWrapper,\n MeritCardNumber,\n MeritCardDesc,\n MeritCardTitleRow,\n} from '../guide.styled';\n\nexport const Merit = () => {\n return (\n \n \n \n
\n \n

믿을 수 있는 위드메이트

\n
\n
\n
\n \n \n \n 위드메이트 병원 동행 서비스는\n
\n 신한 오픈 이노베이션 2기 우수 기업으로\n
\n 선정된 신뢰할 수 있는 서비스입니다.{' '}\n \n }\n number='01'\n />\n \n 위드메이트는 엄격한 검증을 거친 후
\n 보건복지부와 고양시, 그리고 국립 암센터가\n
\n 주관하는‘고양 해피 케어’컨소시엄의
\n 일원으로 활동 중에 있습니다.\n \n }\n number='02'\n />\n \n 위드메이트는 더욱 높은 서비스 경험을\n
\n 제공하기 위해 매뉴얼을 만들고, 서비스
\n 종료 후 고객님의 후기를 반영하여
\n 서비스 인력을 관리합니다.\n \n }\n number='03'\n />\n \n 위드메이트는 여성 인력 개발 센터,\n
재취업 지원 센터, 고용 복지 플러스\n
센터 등의 전문 기관과 일자리 협업 \n
\n 프로그램을 운영하며 검증된 서비스\n
\n 인력을 주기적으로 양성하고 있습니다.\n \n }\n number='04'\n />\n \n 위드메이트는 서비스 제공 인력 전원이\n
\n 삼성화재가 제공하는 1억 2천만원 한도의
\n ‘전문인 영업 배상 책임 보험’에 가입되어
\n 책임지는 서비스를 제공합니다.\n \n }\n number='05'\n />\n \n 위드메이트는 시니어 헬스케어 서비스의\n
\n 본질은 ‘안전’이라고 생각하고, 서비스 인력의\n
\n 정기적인 교육, 자격증 취득 및 보유 여부
\n 점검, 서비스 매뉴얼의 수정 및 보완등을
\n 진행하고 있습니다.\n \n }\n number='06'\n />\n
\n
\n
\n );\n};\n\nconst MeritCard = ({ number, title, source, desc }) => (\n \n {number}\n \n \n {title}\n \n {desc}\n \n);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport {\n WithmateContainer,\n InnerContainer,\n WithmateTitle,\n MeritCardDesc,\n FlexDivWrapper,\n BigSideBox,\n SmallSideBox,\n WithmateBg,\n GuideConceptTitle,\n MobileBr,\n DesktopBr,\n} from '../guide.styled';\nexport const Withmate = () => {\n return (\n \n \n \n \n \n \n 위드메이트란?\n \n \n 위드메이트는 온라인 병원 동행 서비스 매칭 플랫폼 시작으로,\n 대한민국에서{' '}\n \n 사회적 의미의 ‘시니어’라는 \n 단어를 없애기 위해\n {' '}\n 설립된 \n \n 시니어 라이프 스타일 \n 혁신 기업\n \n 입니다.\n \n 위드메이트의 시작\n \n 2015년에 설립된 위드메이트는 초고령화 \n 1인 가구 시대\n 접어든 대한민국의 현 상황에 적합한\n \n 시니어 라이프 스타일 혁신\n \n 서비스를 개발합니다.\n \n \n 이를 위해 위드메이트는 \n 국내 최초로 병원 동행 서비스를 런칭해\n \n \n 탄탄한 신뢰안정된 서비스 시스템을 기반으로 \n 축적되는 \n 데이터와 실전 경험을 바탕으로{' '}\n \n 다양한 \n 신규 서비스를 연구\n \n 하여 \n \n 시니어 라이프 스타일 \n 혁신 기업\n \n 의 길을 걷고 있습니다.\n \n \n \n \n \n \n \n \n );\n};\n\nconst Title = styled(GuideConceptTitle)`\n margin-bottom: 24px;\n text-align: left;\n`;\n\nconst Block = styled(MeritCardDesc)`\n font-size: 16px;\n margin-bottom: 24px;\n ${props => props.noMargin && `margin-bottom: 0px;`}\n ${props => props.bigMargin && `margin-bottom: 74px;`}\n\n @media (max-width: 768px) {\n word-break: keep-all;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport const GuideBanner = () => {\n return 병원동행 서비스는 위드메이트에게!;\n};\n\nconst GuideBannerContainer = styled.div`\n width: 100%;\n height: 235px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n font-size: 40px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: -0.7px;\n text-align: center;\n color: #ffffff;\n\n background-image: url('/assets/images/guide_title_bg.png');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 768px) {\n font-size: 22px;\n background-position: left;\n }\n`;\n","import React from 'react';\nimport _ from 'lodash';\n\n// components\nimport { GuideNav } from './Section/nav';\nimport { GuideConcept } from './Section/concept';\nimport { GuideDetail } from './Section/detail';\nimport { GuideUsage } from './Section/usage';\nimport { WithmatePartners } from '../../Home/Section/partners';\nimport { Merit } from './Section/merit';\nimport { Withmate } from './Section/withmate';\nimport { GuideBanner } from './Section/banner';\n\nimport { Container } from './guide.styled';\n\nclass GuidePage extends React.PureComponent {\n state = {\n activeTab: 'concept',\n reserveModal: false,\n reserveType: null,\n step: 1,\n mobile_menu: false,\n addHalfTime: false,\n };\n\n inputHandler = ({ type, value }) => {\n this.setState({ [type]: value });\n };\n\n inputDeepHandler = ({ type, deepType, value }) => {\n this.setState(prevState => ({\n [type]: {\n ...prevState[type],\n [deepType]: value,\n },\n }));\n };\n\n onTab = tab => {\n this.setState({\n activeTab: tab,\n });\n };\n\n onRoute = path => {\n this.props.history.push(path);\n };\n\n render() {\n const { activeTab } = this.state;\n\n return (\n \n \n {\n this.setState({\n reserveModal: true,\n temp: {\n page: 1,\n service: 'unemergency',\n addTime: '60',\n payMethod: 'transfer',\n sex: '남',\n transport: 'common',\n report: false,\n },\n });\n }}\n />\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default GuidePage;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\n// component\nimport GuidePage from './guide';\n\n// styles\nimport StyledContainer from './guide.styled';\n\n// actions\nimport { serviceReserve, editResrveForm } from '../../../Reducer/Modules/app';\n\nclass GuideContainer extends React.PureComponent {\n componentDidMount = () => {};\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth }) => ({\n app,\n auth,\n});\n\nconst mapStateToDispatch = dispatch => ({\n serviceReserve: ({ userId, info }) => dispatch(serviceReserve({ userId, info })),\n editForm: ({ type, value }) => dispatch(editResrveForm({ type, value })),\n});\n\nexport default connect(mapStateToProps, mapStateToDispatch)(GuideContainer);\n","import styled from 'styled-components';\n\nconst StyledListContainer = styled.div`\n // border-bottom: 1px solid #e6e6e6;\n`;\n\nexport const HeaderButton = styled.div`\n cursor: pointer;\n\n width: 265px;\n height: 60px;\n line-height: 60px;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.2px;\n text-align: center;\n color: #ffffff;\n\n margin-top: 40px;\n margin-bottom: 90px;\n border-radius: 4px;\n background-color: #3bc1ff;\n\n &:hover {\n transition: all 0.5s;\n opacity: 0.8;\n }\n\n @media (max-width: 768px) {\n width: 230px;\n height: 48px;\n line-height: 48px;\n }\n`;\n\nexport const NavigationTabWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\n\nexport const NavigationTab = styled.span`\n position: relative;\n display: inline-block;\n margin-right: 44px;\n\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n color: rgba(0, 0, 0, 0.8);\n padding-bottom: 20px;\n\n cursor: pointer;\n\n &.active {\n color: #55d4ff;\n }\n`;\n\nexport const NavigationTabUnderline = styled.span`\n display: inline-block;\n position: absolute;\n left: 0px;\n bottom: -3px;\n\n width: 100%;\n height: 3px;\n background-color: #55d4ff;\n`;\n\nexport const CountDisplay = styled.div`\n font-size: 36px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: -1px;\n color: rgba(0, 0, 0, 0.8);\n\n > span {\n color: #4bcfff;\n }\n\n margin-bottom: 20px;\n`;\n\nexport const CollapseContainer = styled.div`\n .ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header {\n padding-left: 0px;\n padding-right: 0px;\n }\n\n .ant-collapse-content > .ant-collapse-content-box {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nexport const CollapseHeader = styled.div`\n display: flex;\n align-items: center;\n border-bottom: 1px solid #e6e6e6;\n`;\n\nexport const CollapseTab = styled.div`\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.57;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.7);\n\n padding-bottom: 11px;\n`;\n\nexport const CollapseTabOnlyDesktop = styled(CollapseTab)`\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const PanelHeader = styled.div`\n display: flex;\n`;\n\nexport const PanelField = styled.div`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n ${props => (props.style ? props.style : `flex: 1;`)}\n ${props => (props.onlyDesktop ? `display: block;` : null)} \n\n &.title {\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.56;\n letter-spacing: normal;\n color: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 768px) {\n ${props => (props.onlyDesktop ? `display: none;` : null)}\n }\n`;\n\nexport const Star = styled.img`\n width: 16.7px;\n height: 16px;\n object-fit: contain;\n margin-bottom: 4px;\n`;\n\nexport const ReviewTextWrapper = styled.div`\n padding-left: 120px;\n padding-right: 50px;\n\n @media (max-width: 768px) {\n padding-left: 0px;\n }\n`;\n\nexport const ReviewText = styled.p`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n`;\n\nexport const MyReview = styled.span`\n display: inline-block;\n width: 53px;\n height: 20px;\n line-height: 20px;\n border-radius: 10px;\n background-color: #3bc1ff;\n\n font-size: 10px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.21px;\n color: #ffffff;\n text-align: center;\n`;\n\nexport const ReviewMobileInfo = styled.div`\n display: flex;\n align-items: center;\n\n margin-bottom: 27px;\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const ReviewerName = styled.span`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n\n margin-bottom: 0px;\n margin-right: 16px;\n`;\n\nexport default StyledListContainer;\n","import React from 'react';\nimport { Collapse, Icon, Pagination, message } from 'antd';\nimport moment from 'moment';\n\nimport CommentPageHeader from '../../../Components/Templates/Review/header';\nimport {\n HeaderButton,\n CollapseContainer,\n CollapseHeader,\n CollapseTab,\n CollapseTabOnlyDesktop,\n CountDisplay,\n PanelHeader,\n PanelField,\n Star,\n ReviewTextWrapper,\n ReviewText,\n ReviewMobileInfo,\n ReviewerName,\n MyReview,\n} from './review.styled';\n\nimport axios from '../../../Lib/axios';\n\nconst { Panel } = Collapse;\n\nconst PerPage = 20;\n\nexport default class CommentList extends React.PureComponent {\n state = {\n tab: 'basic',\n total: 0,\n list: [],\n page: 1,\n };\n\n componentDidMount = () => {\n this.fetchList();\n };\n\n fetchList = () => {\n const { page } = this.state;\n axios.get('/v2/review/list', { params: { page, pageCnt: PerPage } }).then(resolve => {\n const { data } = resolve;\n if (data && data.total) {\n this.setState({ total: data.total || 0, list: data.list || [] });\n }\n });\n };\n\n renderStar = score => {\n return (\n <>\n {new Array(score).fill(0).map((star, index) => (\n \n ))}\n {new Array(5 - score).fill(0).map((star, index) => (\n \n ))}\n \n );\n };\n\n getAutoTitle = ({ title, rate }) => {\n if (title) return title;\n if (rate === 5) return '서비스 매우 만족';\n if (rate >= 4) return '서비스 만족';\n if (rate >= 3) return '서비스 보통';\n if (rate >= 2) return '서비스 불만족';\n if (rate >= 1) return '서비스 매우 불만족';\n };\n\n render() {\n const { tab, list, page, total } = this.state;\n const { id, userType } = this.props.auth;\n\n return (\n
\n \n
\n \n\n \n \n {total}건\n \n\n \n 번호\n 서비스\n 제목\n 작성자\n 별점\n 작성일\n \n }\n >\n {list &&\n list.map((info, index) => (\n \n \n {total - ((page - 1) * PerPage + index)}\n \n {info.reserve.service === 'assist' ? 'Basic' : 'Pro'}\n \n {this.getAutoTitle({ title: info.title, rate: info.score })}\n \n \n {id === info.user._id ? 내후기 : info.user.name}\n \n \n {info.score ? this.renderStar(parseInt(info.score, 10)) : null}\n \n \n {moment(info.createdAt).format('YYYY-MM-DD')}\n \n \n }\n >\n \n \n {id === info.user._id ? (\n 내후기\n ) : (\n {info.user.name}\n )}\n {info.score ? this.renderStar(parseInt(info.score, 10)) : null}\n {moment(info.createdAt).format('YYYY-MM-DD')}\n \n {info.review && (\n \n {info.review.split('\\n').map((text, index) => (\n \n {text}\n
\n
\n ))}\n
\n )}\n \n (담당 메이트: {info.reserve && info.reserve.call && info.reserve.call.mate ? info.reserve.call.mate.name : '-'})\n \n
\n \n ))}\n \n {\n this.setState({ page, list: [] }, () => {\n this.fetchList();\n });\n }}\n />\n
\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledListContainer from './review.styled';\nimport CommentList from './review';\n\nimport { getReviewList, editReview } from '../../../Reducer/Modules/review';\n\nclass CommentListPage extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, review }) => ({\n app,\n auth,\n review,\n});\n\nconst mapDispatchToProps = dispatch => ({\n // getReviewList: page => dispatch(getReviewList({ page })),\n editReview: ({ type, value }) => dispatch(editReview({ type, value })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CommentListPage);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\n\nconst StyledListContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n // border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(30)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n }\n }\n\n .img-section {\n position: absolute;\n bottom: -50px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .faq-nav {\n display: flex;\n align-items: center;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n a {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: center;\n color: #3bc1ff;\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n\n @media (max-width: 768px) {\n margin-right: 16px;\n }\n }\n }\n }\n }\n\n .faq-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n }\n }\n\n .panel-header {\n display: flex;\n align-items: center;\n\n .row-index {\n width: 80px;\n color: ${mainColor};\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n }\n\n .title {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .title {\n font-size: ${sizeHandler(14)};\n }\n }\n }\n\n .panel-content {\n padding-left: 80px;\n\n > p {\n width: 60%;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .panel-contents-wrapper {\n margin-top: 20px;\n margin-bottom: 20px;\n\n .panel-contents {\n padding: 12px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n &:first-child {\n border-top: 1px solid #e6e6e6;\n }\n\n .panel-content-subtitle {\n float: left;\n width: 40%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: left;\n color: ${mainColor};\n }\n\n .panel-content-subcontents {\n float: left;\n width: 50%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .panel-content-subtitle {\n width: 100%;\n }\n\n .panel-content-subcontents {\n width: 100%;\n }\n }\n }\n }\n }\n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\nexport default StyledListContainer;\n","import React from 'react';\nimport { Collapse, Icon, Table } from 'antd';\n\nimport { CollapseContainer } from '../../../Review/List/list.styled';\nimport { newsEvent } from '../../../../Components/Columns/user';\n\nexport default class Event extends React.PureComponent {\n onRow = (row, index) => {\n return {\n onClick: () => {\n this.props.history.push({\n pathname: `/360F/newsEvent/info/${row._id}`,\n state: {\n id: row._id,\n },\n });\n },\n };\n };\n\n render() {\n return (\n
\n
\n
\n
\n
\n

위드메이트 소식

\n

위드메이트의 다양한 소식을 확인할 수 있습니다.

\n
\n
\n faq-img\n
\n
\n
\n
\n
\n \n \n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledListContainer from './list.styled';\nimport List from './list';\nimport { addNewsEvent, fetchNewsEvent, getNewsEventInfo } from '../../../../Reducer/Modules/newsEvent';\n\nclass InfoContainer extends React.PureComponent {\n componentDidMount = () => {\n this.props.fetchNewsEvent();\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, newsEvent }) => ({\n app,\n auth,\n newsEvent,\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchNewsEvent: () => dispatch(fetchNewsEvent()),\n addNewsEvent: info => dispatch(addNewsEvent(info)),\n getNewsEventInfo: ({ id, newsEventId }) => dispatch(getNewsEventInfo({ id, newsEventId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoContainer);\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\n\nconst StyledInfoContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n // border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(30)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n\n @media {\n padding-left: 10px;\n }\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n\n @media {\n padding-left: 10px;\n }\n }\n }\n\n .img-section {\n position: absolute;\n bottom: -50px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n }\n }\n\n .info-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n\n .img-section {\n > img {\n max-width: 500px;\n height: auto;\n object-fit: cover;\n }\n }\n }\n }\n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 832px) {\n .info-contents {\n .inner-container {\n .img-section {\n > img {\n max-width: 300px;\n height: auto;\n object-fit: cover;\n }\n }\n }\n }\n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\n\nexport default StyledInfoContainer;\n","import React from 'react';\nimport axios from '../../../../Lib/axios';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport { Button, message, Table } from 'antd';\nimport { CollapseContainer } from '../../../Review/List/list.styled';\n\nimport { InfoBlock } from '../../../../Components/Common/block';\n\nexport default class Event extends React.PureComponent {\n state = {\n data: {},\n };\n\n componentDidMount = () => {\n const { state } = this.props.history.location;\n if (!state || !state.id) return this.props.history.goBack();\n\n this.fetchInfo(state.id);\n };\n\n fetchInfo = async id => {\n const { data } = await axios.get('/v1/newsEvent/list/info', {\n params: {\n newsEventId: id,\n },\n });\n\n if (!data || data === 'check parameters') {\n return this.props.history.goBack();\n }\n\n if (data === 'invalid newEvent') {\n return message.warning('잘못된 게시물 정보입니다.');\n }\n\n this.setState({ ...data });\n };\n\n render() {\n const { url, url2, urlSource, urlSource2 } = this.state;\n\n return (\n
\n
\n
\n
\n
\n

위드메이트 소식

\n

위드메이트의 다양한 소식을 확인할 수 있습니다.

\n
\n
\n faq-img\n
\n
\n
\n
\n
\n \n <>\n \n \n \n\n \n \n \n\n \n {this.state.photo && (\n
\n \n
\n )}\n
\n\n \n \n

{this.state.content}

\n
\n {this.state.url ? (\n \n {url ? (\n \n ㆍ{urlSource}\n \n ) : (\n ''\n )}{' '}\n
\n {url2 ? (\n \n ㆍ{urlSource2}\n \n ) : (\n ''\n )}\n
\n ) : null}\n
\n\n \n {\n this.props.history.goBack();\n }}\n style={{ float: 'right' }}\n >\n 목록으로\n \n \n \n
\n
\n
\n );\n }\n}\n\nexport const ValueBox = styled.div`\n margin-bottom: 16px;\n`;\n\nexport const Label = styled.p`\n text-align: left;\n font-size: 11px;\n margin-bottom: 4px;\n color: #565656;\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport StyledInfoContainer from './info.styled';\nimport Info from './info';\nimport { addNewsEvent, fetchNewsEvent, getNewsEventInfo } from '../../../../Reducer/Modules/newsEvent';\n\nclass InfoContainer extends React.PureComponent {\n componentDidMount = () => {\n const { id } = this.props.auth;\n const { state } = this.props.location;\n const { id: newsEventId } = this.props.match.params;\n\n // console.log(newsEventId, state);\n\n if (state === 'newsEvent') this.props.getNewsEventInfo({ newsEventId });\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({ app, auth, newsEvent }) => ({\n app,\n auth,\n newsEvent,\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchNewsEvent: () => dispatch(fetchNewsEvent()),\n addNewsEvent: info => dispatch(addNewsEvent(info)),\n getNewsEventInfo: ({ id, newsEventId }) => dispatch(getNewsEventInfo({ id, newsEventId })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoContainer);\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\n// pages\nimport List from './List';\nimport Info from './Info';\n\nclass NewsEvent extends React.PureComponent {\n render() {\n return (\n \n \n \n \n );\n }\n}\nexport default NewsEvent;\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../theme';\n\nconst StyledFaqContainer = styled.div`\n padding-top: 55px;\n\n .faq-header {\n border-bottom: 1px solid #e6e6e6;\n\n .inner-container {\n padding: 0px;\n padding-top: 82px;\n\n @media (max-width: 768px) {\n padding-top: 42px;\n }\n\n > .flex-wrapper {\n position: relative;\n\n .faq-main-title {\n flex: 1;\n .title {\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 8px;\n }\n\n .description {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 82px;\n }\n }\n\n .img-section {\n position: absolute;\n bottom: 0px;\n right: 0px;\n\n > img {\n width: 100%;\n max-width: 549px;\n height: auto;\n object-fit: cover;\n }\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .faq-nav {\n display: flex;\n align-items: center;\n\n .nav-tab {\n margin-right: 32px;\n padding-bottom: 12px;\n position: relative;\n\n a {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: center;\n color: #3bc1ff;\n }\n\n span.underline {\n background-color: #3bc1ff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n\n &.active {\n width: 100%;\n height: 3px;\n display: inline-block;\n }\n }\n\n @media (max-width: 768px) {\n margin-right: 16px;\n }\n }\n }\n }\n }\n\n .faq-contents {\n .inner-container {\n padding-top: 0px;\n\n @media (max-width: 768px) {\n h1 {\n font-size: 30px;\n margin-top: 60px;\n }\n }\n }\n }\n\n .panel-header {\n display: flex;\n align-items: center;\n\n .row-index {\n width: 80px;\n color: ${mainColor};\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n }\n\n .title {\n flex: 1;\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .title {\n font-size: ${sizeHandler(14)};\n }\n }\n }\n\n .panel-content {\n padding-left: 80px;\n\n > p {\n width: 60%;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .panel-contents-wrapper {\n margin-top: 20px;\n margin-bottom: 20px;\n\n .panel-contents {\n padding: 12px 0px;\n border-bottom: 1px solid #e6e6e6;\n\n &:first-child {\n border-top: 1px solid #e6e6e6;\n }\n\n .panel-content-subtitle {\n float: left;\n width: 40%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n text-align: left;\n color: ${mainColor};\n }\n\n .panel-content-subcontents {\n float: left;\n width: 50%;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n }\n\n @media (max-width: 768px) {\n .panel-content-subtitle {\n width: 100%;\n }\n\n .panel-content-subcontents {\n width: 100%;\n }\n }\n }\n }\n }\n\n h1 {\n font-size: ${sizeHandler(34)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n letter-spacing: -1px;\n\n margin-bottom: 26px;\n margin-top: 50px;\n }\n\n @media (max-width: 1120px) {\n .faq-header {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .panel-header {\n .row-index {\n width: 70px;\n }\n }\n\n .panel-content {\n padding-left: 70px;\n\n > p {\n width: 90%;\n }\n }\n }\n`;\nexport default StyledFaqContainer;\n","import React from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { Collapse, Icon } from 'antd';\nimport { mainColor } from '../../../theme';\nconst { Panel } = Collapse;\n\nexport default class FAQ extends React.PureComponent {\n render() {\n const { hash } = this.props.location;\n return (\n
\n
\n
\n
\n
\n

위드메이트 FAQ

\n

고객님의 궁금증을 해소하세요!

\n
\n
\n faq-img\n
\n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}>\n 공통 FAQ\n \n \n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}\n >\n 병원 동행 Pro FAQ\n \n \n
\n
\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })}>\n 병원 동행 Basic FAQ\n \n \n
\n
\n
\n
\n
\n
\n
\n

공통 FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 현재 위드메이트는 적격 자격을 갖춘 인원들을 선별하고 세밀한 채용 단계를 거친 후, 영업 배상 책임 보험 가입과 함께\n 엄격한 자체 교육을 실시하며 서비스 인력을 모집하고 있습니다.\n
\n 이와 동시에 위드메이트가 진행하는 주기적인 교육과 점검을 통해 서비스를 제공하는 인력 모두가 건강한 긴장감을 놓치지\n 않도록 철저하게 관리하고 있습니다.\n

\n
\n \n\n }\n >\n \n

\n 위드메이트 서비스는 웹사이트를 통해 신청이 가능합니다. 웹사이트 내 서비스 신청 모듈을 통해 서비스 신청을 해주시면\n 됩니다. 회원 가입 진행을 완료하신 분이라면 전화 상담을 통한 예약 신청 또한 가능합니다.\n

\n
\n \n }\n >\n \n

\n 예약 접수가 완료되면, 위드메이트 소속의 전문 동행인들은 예약 발생 알림을 받고 검토를 진행하게 됩니다. 이후 동행인이\n 예약을 접수하면 고객님께 ‘예약 완료’ 알림이 가고, 고객님께서 해당 동행인의 접수를 수락하시면 최종 ‘매칭’이\n 이루어집니다. 이후 예약 일정에 맞춰 동행인과 함께 병원에 방문하시면 됩니다. 고객님께서 동행인의 접수를 거절하시면\n 처음 단계로 돌아가 다른 동행인의 접수를 대기하게 됩니다.\n
\n 만약 동행인 접수가 불가한 경우 고객님께 예약 불가 알림이 가고, 추후 서비스 재신청을 통해 서비스를 받을 수 있습니다.\n

\n
\n \n }\n >\n \n

\n 위드메이트의 서비스는 현재 수도권 내에서 이용 가능합니다. 빠른 시일 내 경기도를 포함한 타 지역 서비스 확장을 계획\n 중에 있습니다.\n

\n
\n \n }\n >\n \n

고객님께서 정상적으로 매칭된 병원 동행 서비스 계약을 취소 및 변경하는 경우에는 아래와 같이 수수료가 발생합니다.

\n
\n
\n

서비스 예약 날짜 기준 48시간 이내 변경 및 취소

\n

수수료 없이 변경 & 취소 가능

\n
\n
\n
\n

서비스 예약 전날 18:00 이전 변경 및 취소

\n

\n 취소 시 수수료 10,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

당일 예약 변경 및 취소

\n

\n 취소 시 수수료 15,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

서비스 시작 2시간 전 이내 변경 및 취소

\n

\n 취소 시 수수료 20,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과 X\n

\n
\n
\n
\n

노쇼(No-Show)의 경우

\n

회원 자격 정지 및 민/형사상 책임 소지를 물을 수 있음

\n
\n
\n
\n \n \n }\n >\n \n

\n 회사측의 과실로 예약된 서비스를 이용하지 못한 경우 서비스 요금을 전액 배상해드리며, 상황에 따라 서비스 무료 이용권\n 등의 추가 배상을 진행합니다.\n

\n
\n \n }\n >\n \n

\n 예약 접수 후 동행인 매칭이 완료되면 ‘마이페이지’ 내에서 동행인의 정보를 확인하실 수 있으며, 해당 정보를 통해\n 동행인과 서비스 관련 소통을 진행하시면 됩니다.\n

\n
\n \n\n }\n >\n \n

\n 위드메이트 서비스는 후불제이기 때문에 예약한 서비스 시간을 넘어 추가 서비스가 이루어지는 경우, 해당 시간만큼의 추가\n 비용이 발생합니다. 서비스 종료 후 추가된 금액이 포함된 최종 요금을 결제하시면 됩니다. 추가 비용은 서비스 시간 15분\n 미만 초과 시 발생하지 않으며, 15분을 초과할 시 30분 단위의 요금이 발생합니다.\n
\n (Ex. 2시간 예약 서비스가 최종 2시간 14분으로 종료 > 추가 요금 발생 X)\n
\n (Ex. 2시간 예약 서비스가 최종 2시간 16분으로 종료 > 추가 요금 발생 O)\n

\n
\n \n\n }\n >\n \n

\n 위드메이트의 모든 서비스는 주 5일 (월~금), 1일 10시간 (오전 9시 ~ 오후 7시) 동안 이용 가능합니다. 주말 및 공휴일에는\n 서비스 제공을 하지 않습니다. 하지만 특수 예약에 대해서는 해당 시간 외에도 서비스를 제공할 수 있습니다.\n

\n
\n \n \n
\n

병원 동행 Pro FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 병원 동행 Pro는 응급 상황에 처하지는 않았으나 정기적, 혹은 비정기적으로 의료 기관에 방문해 의료 조치를 받아야 하는\n 경우에 신청 가능합니다.\n

\n
\n \n }\n >\n \n

\n 병원 동행 Pro 서비스 요금은 시간 당 25,000원입니다. 또, 고객 소유의 차량을 메이트가 운행하여 동행할 경우 20,000원이\n 추가됩니다 (택시 등 대중 교통을 이용할 경우 추가 요금은 없으나 해당 교통비 개별 부담). 모든 서비스 비용은 VAT 포함\n 가격입니다.\n
\n (Ex. 2시간 예약 + 고객 소유 차량 운행 선택 시 > 기본 요금 50,000원 + 차량 운행비 20,000원 = 70,000원)\n

\n
\n \n\n }\n >\n \n

남성과 여성 인력이 모두 대기 중입니다.

\n
\n \n }\n >\n \n

\n 예약일과 시간에 맞춰 위드메이트 소속의 동행인이 병원 출발지(고객님 자택 등)로 도착합니다. 이후 서비스 신청에 따라\n 고객 소유의 차량을 통해 이동할 경우 동행인이 차량을 운행하고 병원까지 이동하며(택시 등의 대중 교통 이용 시 해당 비용\n 자가 부담), 병원 내에서 이루어지는 모든 활동에 동행합니다.\n

\n
\n \n\n }\n >\n \n

\n 동행인은 철저하게 선별되고 영업배상책임보험에 가입되어 있으며, 위드메이트가 자체적으로 실시하는 엄격한 서비스 교육을\n 모두 이수하고 통과한 전문가입니다. 또, 위드메이트의 동행인은 국립 암센터에서 실시하는 주기적인 암 환자 관리 교육 및\n 세미나에 지속적으로 참여해 서비스 품질과 전문성이 보장된 인력들입니다.\n

\n
\n \n }\n >\n \n

\n 중증 또는 휠체어 등의 의료 기구 대동이 필요한 환자에 대한 비응급 의료 동행 서비스는 준비 중에 있습니다. 현\n 서비스로는 해당 인원과의 동행은 불가하며, 예약이 접수된 경우 개별적인 연락을 통해 예약 불가를 알려드립니다.\n

\n
\n \n \n }\n >\n \n

\n 방사선이나 암 치료와 같이 주기적으로 내원이 필요한 경우 개별 상담을 통해 예약이 가능합니다. 위드메이트 서비스를 장기\n 예약할 경우 특별 할인 혜택 또한 제공되고 있습니다. 서비스 센터로 문의 주실 경우 위드메이트의 전문 상담원이\n 안내해드립니다.\n

\n
\n \n \n
\n

병원 동행 Basic FAQ

\n
\n (\n \n )}\n >\n }\n >\n \n

\n 병원 동행 Basic은 주로 수술의 범주에는 속하지 않지만 마취 혹은 단순 보호자가 필요한 수면 내시경 등을 포함한 모든\n 종류의 시술을 해야 할 경우에 신청합니다. 물론 Pro 서비스를 받아야 하지만 자택에서 병원, 다시 병원에서 자택까지의\n 동행 과정을 필요로 하지 않는 상황에서도 신청이 가능합니다.\n

\n
\n \n }\n >\n \n

\n 병원 동행 Basic 요금은 시간 당 15,000원입니다. (Ex. 2시간 예약 시 30,000원)\n
모든 서비스 비용은 VAT 포함 가격입니다.\n

\n
\n \n }\n >\n \n

병원 동행 Basic 서비스 동행인은 Pro 서비스와 동일한 인력으로 구성되어 있습니다.

\n
\n \n }\n >\n \n

남성과 여성 인력이 모두 대기 중입니다.

\n
\n \n }\n >\n \n

\n 고객님께서 지정하신 병원에서 동행자와 접선 후, 동행자는 예약자의 진료 접수부터 종료 시점까지 병원 내부에서\n 대기합니다. 진료 종료 후, 동행자는 예약자의 의사를 확인한 후 업무를 마치고 복귀합니다.\n

\n
\n \n \n
\n
\n
\n
\n );\n }\n}\n\nconst PanelHeader = ({ rowIndex, title }) => {\n return (\n
\n

{rowIndex}

\n

{title}

\n
\n );\n};\n\nconst PanelContent = ({ children }) => {\n return
{children}
;\n};\n","import React from 'react';\nimport StyledFaqContainer from './faq.styled';\nimport FAQ from './faq';\n\nclass FAQContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\nexport default FAQContainer;\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\nconst PrivacyStyledContainer = styled.div`\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .medium-bold {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n\n .in {\n font-size: ${sizeHandler(13)};\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n text-indent: -20px;\n padding-left: 40px;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default PrivacyStyledContainer;\n","import React from 'react';\n\nclass PrivacyComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

㈜ 블루카멜 개인정보처리방침

\n

\n 병원동행서비스 위드메이트(www.withmate.kr, 이하 “서비스\")를 운영하는 (주)블루카멜(이하 “회사”)은 「개인정보보호법」 제30조에 따라\n 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 다음과 같이 개인정보처리방침(이하 \"방침\")을\n 수립 및 공개합니다. 개인정보처리방침은 관련 법령 또는 지침, 회사의 약관 또는 정책에 따라 변경될 수 있습니다. 회사는 해당 변경 사항을\n 온라인 게시 등의 방법으로 이용자에게 알립니다.\n
\n
이 개인정보처리방침은 2023년 7월 25일부터 적용됩니다.\n

\n
\n
\n
\n\n

\n \n ✅ 개인정보처리방침 2차(2023.07.22)\n \n

\n

\n \n ✅ 개인정보처리방침 1차(2021.12.20)\n \n

\n
\n
\n
\n );\n }\n}\nexport default PrivacyComponent;\n","import React from 'react';\n\n// component\nimport PrivacyStyledContainer from './privacy.styled';\nimport Privacy from './privacy';\n\nclass PrivacyContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default PrivacyContainer;\n","import styled from 'styled-components';\nimport { sizeHandler, mainColor } from '../../../../theme';\nconst TermsStyledContainer = styled.div`\n .inner-container {\n ${props => props.component && `padding: 0px !important;`}\n }\n .main-context {\n width: ${props => (props.component ? '100%' : '60%')};\n\n h2 {\n ${props => props.component && `display: none;`}\n font-size: ${sizeHandler(44)};\n font-weight: bold;\n letter-spacing: -0.6px;\n color: #000000;\n margin-bottom: 24px;\n }\n\n p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n padding: 0px;\n margin: 0px;\n }\n }\n\n .context-block {\n margin-top: ${props => (props.component ? '24px' : '100px')};\n padding-top: 24px;\n border-top: 1px solid #e6e6e6;\n width: ${props => (props.component ? '100%' : '60%')};\n\n > h3 {\n font-size: ${sizeHandler(24)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 16px;\n }\n\n > h6 {\n font-size: ${sizeHandler(16)};\n font-weight: normal;\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 24px;\n }\n\n > h5 {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-top: 20px;\n margin-bottom: 12px;\n }\n\n > p {\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n\n > .privacy-justify {\n display: flex;\n align-items: center;\n ${props => props.component && `display: block;`}\n\n p {\n flex: 1;\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n ${props => props.component && `text-align: left;`}\n }\n }\n }\n\n > .info {\n margin-top: 8px;\n .title {\n border-bottom: 1px solid #e6e6e6;\n padding: 24px 0px;\n font-size: ${sizeHandler(14)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n\n .bold {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n margin: 0px;\n padding: 0px;\n margin-bottom: 4px;\n display: block;\n }\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.7);\n padding: 20px 0px;\n border-bottom: 1px solid #e6e6e6;\n }\n }\n\n > .info-block {\n margin-top: 68px;\n\n .title {\n font-size: ${sizeHandler(18)};\n font-weight: bold;\n color: rgba(0, 0, 0, 0.8);\n margin-bottom: 8px;\n }\n\n .content {\n font-size: ${sizeHandler(14)};\n line-height: ${sizeHandler(24)};\n letter-spacing: -0.3px;\n color: rgba(0, 0, 0, 0.7);\n }\n }\n }\n\n @media (max-width: 1120px) {\n .inner-container {\n padding-left: 16px;\n padding-right: 16px;\n }\n }\n\n @media (max-width: 768px) {\n .main-context {\n width: 100%;\n\n h2 {\n font-size: ${sizeHandler(38)};\n }\n }\n\n .context-block {\n width: 100%;\n }\n\n .privacy-justify {\n flex-direction: column;\n\n p {\n &:first-child {\n text-align: center;\n }\n &:last-child {\n text-align: center;\n }\n }\n }\n }\n`;\nexport default TermsStyledContainer;\n","import React from 'react';\n\nclass TermsComponent extends React.PureComponent {\n render() {\n return (\n
\n
\n
\n

위드메이트 서비스 이용약관

\n
\n\n
\n

제 1조(목적)

\n

\n 본 약관은 ㈜블루카멜(이하 “회사”라 한다)가 제공하는 위드메이트 병원 동행 서비스와 관련하여 회사와 회원과의 권리, \n
의무 및 책임 사항, 그리고 기타 필요한 사항을 규정함을 목적으로 합니다.\n

\n
\n

\n 본 서비스 이용약관은 2021년 12월 20일부터 시행됩니다.\n

\n
\n\n
\n

제 2조(정의)

\n
1. 본 약관에서 사용하는 용어의 정의는 다음과 같습니다.
\n\n
\n

“위드메이트 서비스” 혹은 “서비스”라 함은 당사가 제공하는 ‘병원 동행 서비스’를 의미합니다.

\n

\n “회원”이라 함은 회사가 제공하는 서비스를 이용하기 위하여 본 약관에 동의하고 회사의 회원으로 가입하는 자를 말합니다. (단,\n 메이트와 관련된 사실 관계에 한하여, 메이트도 본 약관에서 “회원”에 포함될 수 있습니다)\n

\n

\n “메이트”라 함은 회사가 회원에게 서비스를 제공하기 위해 직접 선별하고 교육하여 ‘프리랜서’의 형태로 간접 고용한 인원을 말합니다.\n

\n

\n “운송사업자\"라 함은 여객자동차 운수사업법 제4조에 따른 면허를 받은 여객자동차 운송사업자로서, 회사(메이트 인력)의 중개 또는 회원\n 스스로를 통해 택시 등 그 면허를 받은 운송 수단을 이용하여 운송서비스를 제공하는 자를 의미합니다.\n

\n

\n “매칭”이라 함은 회원이 플랫폼(웹사이트 포함)에서 출발지와 목적지를 입력하고, “예약하기\" 버튼을 통해 서비스 이용을 요청(이하\n “이용 요청”이라고 합니다)하면, 요청 시점에 서비스 제공이 가능한 메이트가 플랫폼(웹사이트 포함)을 통하여\n 수락함으로써(매칭됨으로써), 회원과 회사 사이의 메이트 알선 계약 및 회원과 운송사업자 간의 운송 계약이 각 체결된 상태를\n 의미합니다.\n

\n

\n “플랫폼(웹사이트 포함)”이라 함은 회사가 회원에게 서비스를 제공하기 위하여 개발한 위드메이트 애플리케이션과 웹사이트를\n 의미합니다.\n

\n

\n “이용요금”이라 함은\n
\n (i) 메이트가 제공하는 의료 동행 서비스에 대한 비용\n
\n (ii) 회원이 택시 등 운송사업자의 운송 수단을 예약하거나 호출하여 이동하는 비용,\n
\n (iii) 기타 비용(고객 소유 자가용 대리 운전 비용, 예약 취소 및 변경 수수료 등)을 총칭하여 의미합니다.\n

\n
\n\n
\n 2. 본 약관에서 사용하는 용어의 정의는 본 조제 1항에서 정하는 것을 제외하고는 관계 법령에서 정하는 바에 의합니다. 관계 법령에서\n 정하지 않는 것은 일반적인 상 관례에 의합니다.\n
\n
\n\n
\n

제 3조(약관의 효력 및 변경)

\n
1.
\n
\n 약관은 애플리케이션 소프트웨어 및 해당 애플리케이션과 웹사이트의 모든 패치, 업데이트, 업그레이드 또는 새로운 버전에 적용되며, 가장\n 최신 버전이 모든 기존 버전에 우선합니다.\n
\n
2.
\n
\n 본 약관은 서비스 이용계약의 성격상 회사의 웹사이트 또는 서비스 이용을 위한 애플리케이션 내에 본 약관을 명시하고, 이용자가\n 애플리케이션을 설치 및 실행 혹은 웹사이트 열람과 동시에 효력이 발생합니다.\n
\n
3.
\n
회사는 관계 법령 또는 상관습에 위배되지 않는 범위에서 본 약관을 개정할 수 있습니다.
\n
4.
\n
\n 회사는 관련 법령의 변경이나 이용자의 권리 및 의무사항, 서비스 등을 개선하기 위해 본 약관을 변경할 수 있으며, 변경된 경우에 약관의\n 내용과 적용일을 정하여, 적용일 7일 전 회사 공식 홈페이지나 공식 블로그, 제공하는 애플리케이션 등을 통해 이용자에게 고지하고\n 적용일부터 효력이 발생합니다.\n
\n
5.
\n
\n 이용자는 변경된 약관에 대해 거부할 권리가 있습니다. 본 약관의 변경에 대해 이의가 있는 이용자는 서비스 이용을 중단하고 이용을\n 해지(탈퇴 및 삭제)할 수 있습니다.\n
\n
6.
\n
\n 회사가 본 조 4항에 따라 변경된 약관을 공시 또는 고지하면서 이용자가 기간 내의 의사표시를 하지 않으면 변경된 약관에 동의한 것으로\n 간주합니다.\n
\n
\n\n
\n

제 4조(약관 외 준칙)

\n
1.
\n
\n 회사는 필요한 경우 특정 서비스에 관하여 적용될 사항을 위해 개별 약관이나 이용 정책을 정하여 운영할 수 있으며, 해당 내용은 홈페이지\n 등을 통해 공지합니다.\n
\n
2.
\n
\n 본 약관에 규정되지 않은 사항에 대해서는 관련 법령 또는 개별 약관, 이용 정책, 서비스 이용 화면을 통하여 제시된 개별 이용 조건(이용\n 요금 등, 이하 “개별계약“이라고 합니다)에서 정한 바에 따릅니다.\n
\n
3.
\n
\n 본 약관과 개별 약관, 개별 계약의 내용이 충돌할 경우 본 약관에 별도의 규정이 없는 한 개별 계약 또는 개별 약관에서 정한 바에 따릅니다.\n
\n
4.
\n
\n 회원은 서비스 이용 시 개별 계약 또는 개별 약관의 내용을 확인하여야 하며, 이를 확인하지 않아 발생한 손해에 대해 회사는 책임을\n 부담하지 않습니다.\n
\n
\n\n
\n

제 5조(이용 계약의 성립)

\n
1.
\n
\n 이용 계약은 이용자가 본 이용 약관에 대한 동의 또는 회사의 애플리케이션을 다운로드 받거나 실행하여 이용하는 경우, 그리고 웹사이트\n 회원 가입을 완료한 경우 이 약관에 동의한 것으로 간주합니다.\n
\n
2.
\n
이용자는 동의하지 않는 경우 애플리케이션이나 웹사이트 계정 로그아웃 및 삭제와 함께 이를 철회할 수 있습니다.
\n
3.
\n
\n 회사는 제 1항에 따른 회원 가입 신청에 대해 승낙함을 원칙으로 합니다. 다만, 다음 각 호의 경우 회사는 회원 가입 신청을 승낙하지 않거나\n 사후에 회원 계약을 해지할 수 있습니다.\n
\n\n
\n

신청자가 본 약관 위반 등의 사유로 이전에 회원 자격이 상실 또는 회원 계약이 해지되었던 경우

\n

자신의 귀책으로 이용 정지를 당한 회원이 그 이용 정지 기간 중에 이용 계약을 임의 해지하고 재신청을 하는 경우

\n

본 약관에 위배되거나 위법 또는 사회상규상 부당한 가입 신청임이 확인된 경우

\n

허위의 정보를 기재한 경우, 회사가 제시하는 내용을 기재하지 않은 경우 또는 오기 등이 있는 경우

\n

미성년자 등 법령상 행위 무능력자인 경우

\n

기타 신청자의 귀책 사유로 인하여 승낙이 불가능하거나 기타 회사가 정한 제반 사항을 위반한 자의 신청

\n
\n
\n\n
\n

제 6조(회원 계약의 해제 및 해지 등)

\n
1.
\n
\n 회원은 언제든지 회원 계약의 해지를 신청할 수 있으며, 회사는 관련 법령에서 정하는 바에 따라 이를 즉시 처리하여야 합니다. 다만,\n 회원에게 미수금이 있을 경우에는 미수금에 대한 결제를 완료한 이후에 해지 신청이 가능합니다.\n
\n
2.
\n
\n 회원이 회원 계약을 해지할 경우, 회사는 관련 법령 개인정보처리방침 또는 내부관리 계획 등에 따라 회원 정보를 보유하는 경우를\n 제외하고는 해지 즉시 회원의 모든 정보를 삭제합니다.\n
\n
3.
\n
\n 회원 계약 해지로 인해 발생한 불이익에 대한 책임은 회원 본인이 부담해야 하며, 회사는 회원에게 부가적으로 제공한 각종 무상 혜택을\n 회수할 수 있습니다.\n
\n
4.
\n
\n 회사가 회원 계약을 해지하는 경우 회사는 회원에게 해지 사유를 밝혀 해지 의사를 통지합니다. 이 경우 회사는 해지를 하기 전에 상당한\n 기간을 정하여 회원에게 이의 신청의 기회를 부여합니다.\n
\n
5.
\n
회원 계약이 회사에 의해 해지되는 경우 회원의 재이용 신청에 대해 회사는 승낙을 거절할 수 있습니다.
\n
6.
\n
\n 회원의 귀책 사유로 인해 회원 계약이 해지됨으로써 발생한 손해는 당해 회원이 부담하여야 하며, 회사는 관련 법령에 규정이 없는 한 책임을\n 부담하지 않습니다.\n
\n
\n\n
\n

제 7조(서비스 내용)

\n
1.
\n
회사가 제공하는 병원 동행 서비스의 내용은 다음과 같습니다.
\n
\n

\n 병원 동행 Pro 서비스 : 응급 상황에 처하지는 않았으나 정기적, 혹은 비정기적으로 의료 기관에 방문해\n 적절한 조치를 받아야 하는 고객을 위한 서비스.\n

\n

\n 병원 동행 Basic 서비스 & 수면내시경 보호자 서비스 :보호자 동행이 법적 의무는 아니나 보호자가 없을 경우 시술이 어려운 수면\n 내시경 등과 같은 의료 조치를 받아야 하는 고객을 위한 보호자 대행 서비스.\n

\n

\n 병원 동행 서비스 제공을 위한 메이트 알선 서비스 : 회원의 요청에 따라 적격 자격을 갖춘 인원을\n 회사가 직접 선별하고 교육한 후, 프리랜서 형태로 간접 고용하여 회원이 병원 동행 서비스를 위한 동행자를 알선 받을 수 있도록\n 중개해주는 서비스.\n

\n\n

\n 고객 소유 자가용 대리 운전 서비스 : 회원의 요청에 따라 알선된 메이트가 고객 소유의 자가용을 운행해\n 병원과 자택을 이동하는 서비스\n

\n

\n 택시 등 여객자동차 운송 중개 서비스 :회원의 요청에 따라 알선된 메이트가 택시 등 여객자동차\n 운송사업자의 운송 수단을 호출하여 동행할 수 있도록 중개해주는 서비스.\n

\n
\n\n
2.
\n
회사는 제1항의 각 호의 서비스 이외에도 추가적인 서비스를 개발하여 회원에게 제공할 수 있습니다.
\n
3.
\n
\n 회사가 제공하는 서비스와 플랫폼(웹사이트 포함)의 사용은 무료입니다. 단, 회사가 제공한 서비스를 통해 메이트 알선을 포함한 병원 동행\n 서비스가 제공되는 경우 사용자는 해당 서비스에 대한 이용 요금을 지불할 의무를 가집니다.\n
\n
4.
\n
\n 회사는 회원과 메이트 사이의 병원 동행 서비스 혹은 메이트 알선 계약 및 회원과 여객자동차 운송사업자 사이의 운송 계약 체결을 중개하고\n 제 8조 1항에 명시된 ‘병원 동행 서비스 비용’을 수취하는 회사입니다.\n
\n
5.
\n
회사의 메이트는 고객에게 어떠한 형태의 의료 서비스나 치료, 구급차 등의 의료 운송 서비스를 제공하지 않습니다.
\n
\n\n
\n

제 8조(이용 요금 등)

\n
1.
\n
\n 위드메이트 서비스 이용 요금은 ‘병원 동행 서비스 비용’으로 구성되어 있습니다. 단, 상황에 따라 이동 중에 발생하는 운송 교통 비용이\n 고객 본인 부담으로 발생할 수 있습니다.\n
\n
2.
\n
\n 회사는 이용 요금을 애플리케이션 혹은 웹사이트 내의 예약하기 페이지에 게시하거나, 예약 완료 시에 별도로 회원에게 안내합니다. 다만\n 최종 이용 요금은 다양한 변수에 따라서 서비스 종료 후 추가 부과가 될 수 있습니다.\n
\n
3.
\n
\n 메이트가 회원이 지정한 출발지에 도착하여 회원에게 도착을 안내하였음에도 회원이 사전 연락 없이 일정 시간(20분) 이내에 나타나지\n 아니하거나 계약을 취소하는 경우 회사는 제 9조에 명시된 취소 수수료를 회원에게 부과할 수 있습니다.\n
\n\n
4.
\n
\n [병원 동행 Pro] 서비스 이용 옵션 중 ‘고객 소유의 자차 운행’을 선택한 경우 예약일에 맞춰 본인의 차량 보험사가 제공하는 ‘임시 운전자\n 특약’에 가입을 해야 합니다. 이때 발생하는 보험 비용은 고객 본인 부담이며, 임시 운전자 특약에 가입을 하지 않고 메이트에게 운전을\n 위임하여 사고가 발생한 경우 모든 책임은 고객 본인에게 있습니다.\n
\n\n
5.
\n
\n 서비스와 관련하여 발생한 미납경비, 손해배상 등 회원의 회사에 대한 채무가 모두 정산될 때까지 해당 회원의 서비스 사용이 중지되며, 그\n 채무가 일정기간 계속하여 변제되지 않을 경우에는 해당 회원의 회원자격이 박탈될 수 있습니다. 서비스 사용 중지 또는 회원자격 박탈에\n 대한 판단 기준은 회사의 약관 및 이용정책에 근거합니다.\n
\n
6.
\n
\n 회원이 본 약관 및 위 각 조항을 준수하지 않았을 경우, 회사는 본 약관 및 이용 정책에 따라 손해배상 금액 등 각종 수수료를 부과하는 것\n 외에 계약을 해지할 수 있는 권리를 가집니다.\n
\n
7.
\n
\n 회사는 본 서비스와 관련하여 발생한 미납경비, 손해배상 등 회원의 회사에 대한 채무가 정산되지 않을 경우 회원을 상대로 보전처분,\n 본안소송제기, 강제집행절차의 착수 등 채무 변제를 위한 법적 조치에 들어갈 수 있습니다.\n
\n
\n\n
\n

제 9조(계약 등의 취소)

\n
1. 회원이 정상적으로 매칭된 병원 동행 서비스 계약을 취소 및 변경하는 경우에는 아래와 같이 수수료가 발생합니다.
\n\n
\n

\n 서비스 예약 날짜 기준 48시간 이내 변경 및 취소수수료 없이 변경 & 취소 가능\n

\n

\n 서비스 예약 전날 18:00 이전 변경 및 취소취소 시 수수료 10,000원 발생. 단, 메이트와 변경 협의 성공\n 시에는 수수료 부과 X 수수료 부과 X\n

\n

\n 당일 예약 변경 및 취소취소 시 수수료 15,000원 발생. 단, 메이트와 변경 협의 성공 시에는 수수료 부과\n X\n

\n

\n 서비스 시작 2시간 전 이내 변경 및 취소서비스 수수료 20,000원 발생. 단, 메이트와 변경 협의 성공\n 시에는 수수료 부과 X 수수료 부과 X\n

\n

\n 노쇼(No-Show)의 경우회원 자격 정지 및 민/형사상 책임 소지를 물을 수 있음\n

\n
\n\n
\n 2. 회사가 서비스 계약을 취소하는 경우 회원에게 사유를 설명하고 이용요금 전액을 청구하지 아니하며, 회원이 입은 피해에 대한 보상을\n 협의하고 지급합니다.\n
\n
\n\n
\n

제 10조(서비스 제공 밎 중단)

\n\n
1.
\n
\n 회사는 서비스를 주 5일 (월~금), 1일 10시간 (오전 9시~오후 7시) 제공함을 원칙으로 합니다. 특수 예약에 대해서는 검토 후 해당 시간\n 외에도 서비스를 제공할 수 있습니다.\n
\n
2.
\n
\n 회사는 서비스의 제공에 필요한 경우 정기 점검을 실시할 수 있으며, 정기 점검 시간은 플랫폼(웹사이트 포함)의 서비스 제공 화면에 공지한\n 바에 따릅니다.\n
\n
3.
\n
\n 회사는 파산 또는 회생 절차 개시 등 정상적인 영업 활동이 곤란한 경우 또는 회사의 영업상 필요한 경우 서비스 내용을 변경하거나 서비스를\n 종료할 수 있습니다.\n
\n
4.
\n
회사는 다음 각 호의 경우 당해 서비스의 전부 또는 일부의 제공을 중단하거나 제한할 수 있습니다.
\n\n
\n

\n 천재지변, 전쟁, 폭동, 화재, 파업 등 쟁의행위, 정부기관의 통제, 테러, 해킹, DDOS, 기타 회사의 합리적인 노력으로 제어할 수 없는\n 사유가 발생하거나 발생할 우려가 있는 경우\n

\n

기간통신사업자로부터 전기통신서비스가 제공되지 않은 경우

\n

서비스용 설비의 장애 및 정기 점검, 보수점검, 교체 또는 고장, 통신의 두절 등의 사유가 발생한 경우

\n

서비스가 제3자와의 제휴를 통하여 제공되는 경우에 당해 제휴사업자의 사정에 따라 변경되거나 중지되는 경우

\n

기타 서비스의 원활한 운영을 현저히 저해하는 사유가 발생한 경우

\n
\n\n
5.
\n
\n 본 조 제3항, 제4항의 사유로 서비스 내용이 변경 또는 중단되는 경우, 회사는 그로 인해 회원이 입은 손해에 대하여 고의 또는 중과실이\n 없는 한 배상하지 않습니다.\n
\n
6.
\n
회사는 본 조 상기된 사유가 발생한 경우 최대한 빠른 시간 내에 서비스를 재개하도록 최선의 노력을 다합니다.
\n
\n\n
\n

제 11조(서비스의 변경)

\n\n
1.
\n
\n 회사는 상당한 이유가 있는 경우에 운영상, 기술상의 필요에 따라 제공하고 있는 전부 또는 일부의 서비스를 변경할 수 있습니다. 다만,\n 변경된 내용이 중대하거나 회원에게 불리한 경우에는 회사가 해당 서비스를 제공받는 회원에게 통지합니다.\n
\n
2.
\n
\n 회사는 전항에 따른 서비스 변경에 대한 동의를 거절한 회원에 대하여는 해당 서비스의 제공을 중지하거나 회원 이용 계약을 해지할 수\n 있습니다. 이 때 회원 역시 회원 계약을 종료할 권한을 가집니다.\n
\n
\n\n
\n

제 12조(회원에 대한 서비스 이용 제한 등)

\n\n
1.
\n
회사는 다음 각 호에 해당하는 경우 회원에 대하여 서비스 제공을 제한하거나 중지할 수 있습니다.
\n
\n

폭언, 폭행, 그 밖에 적정 범위를 벗어난 신체적ㆍ정신적 고통을 유발하는 행위를 통해, 회원이 서비스의 정상적인 운영을 방해한 경우

\n

법정 감염병 환자, 법정 감염병 의사 환자, 감염병 병원체보유자 등, 환자가 각종 매개체를 통해 메이트에게 질병을 전염 및 유발할 것으로 우려되는 경우

\n

회원이 타인의 명의를 도용하여 회원가입을 한 경우

\n

\n 이용 요금을 지급하지 아니하거나 이용 요금을 결제함에 있어서 타인 명의 결제 도용, 전화번호 도용 등 불법적인 방법을 사용한 경우\n

\n

\n 불법프로그램의 제공 및 운영 방해, 정보통신망법을 위반한 불법 통신 및 해킹, 악성프로그램의 배포, 접속 권한 초과 행위 등과 같이\n 회원이 관련 법령을 위반한 경우\n

\n

회원이 계속해서 1년 이상 로그인하지 않는 경우

\n
\n\n
2.
\n
\n 본 조에 따라 서비스 이용을 제한하거나 중지하는 경우에는 회사는 사전에 이를 회원에게 통지하거나 공지합니다. 다만 부득이한 경우 사후에\n 통지하거나 공지할 수 있습니다.\n
\n
\n\n
\n

제 13조(개인정보의 관리 및 변경)

\n\n
\n 이용자는 본 서비스의 이용을 위해 자신의 개인 정보를 성실히 관리해야 하며, 개인정보에 변동사항이 있을 경우 이를 변경해야 합니다. 본\n 서비스를 이용하면서 이용자의 개인정보 변경이 지연되거나 누락, 이용자에 의해 유출되어 발생하는 손해는 이용자의 책임으로 합니다.\n
\n
\n\n
\n

제 14조(정보의 제공 및 광고의 게재)

\n\n
1.
\n
\n 회사는 회원이 서비스 이용 중 필요하다고 인정되는 다양한 정보를 서비스 내 공지사항 또는 서비스 화면, 메시지, 전자우편 등의 방법으로\n 회원에게 제공할 수 있습니다.\n
\n\n
2.
\n
회사는 서비스의 운영과 관련하여 서비스 화면 등에 광고를 게재할 수 있습니다.
\n
\n\n
\n

제 15조(회사의 의무)

\n\n
1.
\n
회사는 관련법과 본 약관의 금지하는 행위를 하지 않으며, 계속적이고 안정적인 서비스를 제공하기 위하여 최선을 다하여 노력합니다.
\n\n
2.
\n
회사는 이용자의 개인정보 보호를 위한 보안 의무에 최선을 다합니다.
\n\n
3.
\n
\n 회사는 이용자로부터 제기되는 의견이나 불만이 정당하고 객관적으로 인정될 경우에는 적절한 절차를 거쳐 즉시 처리하여야 합니다. 다만,\n 즉시 처리가 불가한 경우에는 이용자에게 그 사유와 처리 일정을 통보하여야 합니다.\n
\n\n
4.
\n
\n 회사가 제공하는 서비스로 인하여 회원에게 손해가 발생한 경우 그러한 손해가 회사의 고의나 과실에 기해 발생한 경우에 한하여 회사에서\n 책임을 부담합니다.\n
\n\n
5.
\n
회사는 정보통신망법, 통신비밀보호법, 전기통신사업법 등 서비스의 운영, 유지와 관련 있는 법령을 준수합니다.
\n
\n\n
\n

제 16조(회원의 의무)

\n\n
1.
\n
\n 회원은 최종 요금 등의 서비스 조건을 확인한 후 이용 요청을 하여야 하고, 제 8조 2항에 따라 서비스 종료 이후 추가 요금이 발생할 수\n 있다는 사실을 인지해야 합니다. 서비스 조건을 확인하지 않고 이용 요청을 하여 발생한 손실, 손해에 대한 책임은 회원 본인이 부담하여야\n 합니다.\n
\n\n
2.
\n
\n 회원은 본 약관 및 회사가 서비스와 관련하여 고지하는 내용을 준수하여야 하며, 약관 및 고지 내용을 위반하거나 이행하지 아니하여\n 발생하는 모든 손실, 손해에 대하여 책임을 부담합니다. 이용 요청과 관련하여 회원이 입력한 정보 및 그 정보와 관련하여 발생한 책임과\n 불이익은 전적으로 회원이 부담하여야 합니다.\n
\n\n
3.
\n
\n 회원은 택시 혹은 승합자동차의 대여 및 이동 서비스 이용 시 반드시 본인 명의의 결제수단을 사용하여야 하며, 타인의 결제 수단을 임의로\n 사용해서는 안 됩니다. 타인의 결제수단을 임의로 사용함으로써 발생하는 회사, 결제 수단의 적법한 소유자, 전자결제대행 또는 이동서비스\n 제공자 등의 손실과 손해에 대한 모든 책임은 회원에게 있습니다.\n
\n\n
4.
\n
\n 회원은 회사가 서비스를 안전하게 제공할 수 있도록 회사에 협조하여야 하며, 회사가 회원의 본 약관 위반행위를 발견하여 회원에게 해당\n 위반행위에 대하여 소명을 요청할 경우 회원은 회사의 요청에 적극 응하여야 합니다.\n
\n\n
5.
\n
\n 회원은 분쟁이 발생한 경우 분쟁의 해결을 위하여 성실히 임하여야 하며, 분쟁 해결에 대한 회원의 불성실로 인하여 이동 서비스 제공자 또는\n 회사에 손해가 발생한 경우 회원은 이에 대한 책임을 부담하여야 합니다.\n
\n
\n\n
\n

제 17조(회원의 금지 행위)

\n\n
1.
\n
\n 회사는 서비스의 신뢰성을 제고하고 안전한 거래가 이뤄질 수 있도록 회원에게 특정한 행위를 금지하며 이를 금지 행위로 규정하고 있습니다.\n 금지 행위의 항목은 수시로 갱신될 수 있으며 항목 추가 및 변경 시 별도로 고지하지 않습니다.\n
\n\n
2.
\n
\n 회원이 위드메이트 서비스로 중개 받은 메이트 또는 기타 운송 수단 탑승 중 메이트, 차량, 혹은 제 3자에 대하여 손해를 입혔을 경우 회원은\n 이를 배상하여야 하며 구체적인 금액은 아래와 같습니다. 이에 관하여 제휴사의 기사 알선 포함 승합자동차 대여 서비스 이용약관에서 정한\n 사항이 있다면 그에 따릅니다.\n
\n
\n

\n 메이트를 폭행하거나 정신적인 피해를 끼친 경우 :치료비 전액 배상 및 영업손실비\n

\n

\n 차량을 오염시킨 경우: 30만원 이내에서 세차 실비 및 영업손실비\n

\n

\n 차량 및 차내 기물 파손 비용: 원상 복구 비용 및 영업손실비\n

\n

\n 목적지 도착 후 하차 거부:경찰서 등의 인계 시까지의 운임 및 영업손실비\n

\n

\n 분실물 발견 후 배달 요청 :배차 중지 후 분실물 배달을 위한 영업손실비\n

\n
\n\n
3.
\n
\n 회사는 회원이 본 조의 금지행위를 하는 경우 서비스 이용을 제한할 수 있으며, 이 경우 발생하는 모든 책임은 회원이 부담합니다. 회사는\n 필요한 경우 회원의 금지 행위 사실을 관련 정부기관 또는 사법기관에 통지할 수 있습니다.\n
\n
\n\n
\n

제 18조(책임 제한)

\n\n
1.
\n
\n 회사는 회원과 메이트 간, 회원과 운송사업자 간 거래를 중개하는 시스템의 운영 관리를 제공하며, 회원, 메이트, 운송사업자를 대리하지\n 않습니다. 회원과 메이트, 그리고 운송사업자 사이에 성립된 거래에 따라 회원 또는 메이트, 혹은 운송사업자가 제공한 정보에 대한 책임은\n 회원과 메이트, 그리고 운송사업자가 부담합니다.\n
\n\n
2.
\n
\n 회원이 자신의 개인 정보 및 계정 등을 타인에게 제공하거나, 회원의 관리 소홀로 유출됨으로써 발생하는 피해에 대해서 책임을 부담하지\n 않습니다.\n
\n\n
3.
\n
회사는 회원의 귀책 사유로 인한 서비스 이용의 장애에 대하여는 책임을 지지 않습니다.
\n\n
4.
\n
회사는 회원이 서비스와 관련하여 게재한 정보, 자료, 사실의 신뢰도, 정확성 등의 내용에 관하여는 책임을 부담하지 않습니다.
\n\n
5.
\n
\n 회사는 서비스간 회원의 귀책 사유로 발생한 메이트와의 갈등(물리적 폭행, 언어 폭력, 부적절한 신체 접촉 등)으로 인해 발생한 피해에\n 대해서 책임을 부담하지 않습니다.\n
\n\n
6.
\n
\n 회사는 관계 법령의 변경, 천재지변, 디도스(DDOS)공격, IDC 장애, 기간통신사업자의 회선 장애 또는 이에 준하는 불가항력으로 인하여\n 서비스를 제공할 수 없는 경우에는 서비스 제공에 관한 책임이 면제됩니다.\n
\n\n
7.
\n
\n 회사는 회원의 서비스 이용과 직접적으로 관련이 없는 분쟁에 관여하지 않으며, 회원과 운전용역 제공자 및 운송사업자 또는 회원과 제3자\n 간의 분쟁을 포함하여 도난, 폭행, 성범죄 등에 대해서는 회사의 과실이 없는 한 책임을 부담하지 않습니다.\n
\n\n
8.
\n
\n 회사는 스마트기기 환경으로 인하여 발생하는 제반 문제 또는 회사의 귀책 사유가 없는 네트워크 환경으로 인하여 발생하는 문제에 대해서\n 책임을 지지 않습니다.\n
\n
\n\n
\n

제 19조(분쟁의 해결)

\n\n
1.
\n
본 약관에 명시되지 않은 사항이 관계 법령에 규정되어 있을 경우에는 해당 규정에 따릅니다.
\n\n
2.
\n
서비스 이용으로 발생한 분쟁에 대해 소송이 제기되는 경우 법령에 정한 절차에 따른 법원을 관할 법원으로 합니다.
\n
\n\n
\n
\n

개인정보 처리방법 버전 번호 : v.1.2

\n

제정일자 : 2021년 12월 20일

\n
\n
\n
\n
\n );\n }\n}\nexport default TermsComponent;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\n// component\nimport TermsStyledContainer from './terms.styled';\nimport Terms from './terms';\n\nclass TermsContainer extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = ({}) => ({});\nconst mapDispatchToProps = dispatch => ({});\nexport default connect(mapStateToProps, mapDispatchToProps)(TermsContainer);\n","import React, { useState } from \"react\";\nimport styled from 'styled-components';\nimport { message, Button } from 'antd';\nimport { DivisionLine } from '../../Components/Common/input';\nimport { Checkbox } from 'antd';\n\nconst DepartmentComponent = () => {\n const department_data = [\n { id: 1, name: \"가정의학과\" },\n { id: 2, name: \"내과\" },\n { id: 3, name: \"마취통증의학과\" },\n { id: 4, name: \"방사선종양학과\" },\n { id: 5, name: \"병리과\" },\n { id: 6, name: \"산부인과\" },\n { id: 7, name: \"성형외과\" },\n { id: 8, name: \"신경과\" },\n { id: 9, name: \"신경외과\" },\n { id: 9, name: \"안과\" },\n { id: 9, name: \"영상의학과\" },\n { id: 9, name: \"외과\" },\n { id: 9, name: \"응급의학과\" },\n { id: 9, name: \"이비인후과\" },\n { id: 9, name: \"임상약리학과\" },\n { id: 9, name: \"재할의학과\" },\n { id: 9, name: \"정신건강의학과\" },\n { id: 9, name: \"정형외과\" },\n { id: 9, name: \"중환자의학과\" },\n { id: 9, name: \"진단검사의학과\" },\n { id: 9, name: \"피부과\" },\n { id: 9, name: \"핵의학과\" },\n { id: 9, name: \"흉부외과\" },\n ];\n\n const [isChecked, setIsChecked] = useState(false); //체크 여부\n const [checkedItems, setCheckedItems] = useState(new Set());//체크된 요소들\n\n const checkHandler = ({ target }) => {\n setIsChecked(!isChecked);\n checkedItemHandler(target.parentNode, target.value, target.checked);\n };\n\n const checkedItemHandler = (box, id, isChecked) => {\n if (isChecked) { //체크 되었을때\n checkedItems.add(id); //체크시 삽입\n setCheckedItems(checkedItems); //체크 요소 넣어주기\n\n } else if (!isChecked && checkedItems.has(id)) { //체크가 안되었고, id가 있을때(클릭 2번시)\n checkedItems.delete(id); //체크 두번시 삭제\n setCheckedItems(checkedItems);\n }\n\n console.log(checkedItems);\n return checkedItems;\n };\n\n return (\n
\n
\n
\n
\n

진료(치료) 받는 과 선택

\n
\n \n
\n {department_data.map((item) => (\n \n ))}\n
\n \n
\n\n
\n \n    \n \n
\n \n
\n
\n
\n );\n};\n\nexport default DepartmentComponent;\n\nconst Departments = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n line-height: 44px;\n\n > span {\n display: inline-block;\n cursor: pointer;\n\n flex: 1;\n height: 100%;\n border-radius: 4px;\n border: 1px solid #e9e9e9;\n\n text-align: center;\n color: rgba(0, 0, 0, 0.7);\n font-size: 14px;\n letter-spacing: -0.2px;\n\n margin-right: 8px;\n }\n\n > span.active {\n background-color: #3bc1ff;\n color: white;\n }\n\n > span:last-child {\n margin-right: 0px;\n }\n`;","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { Popover } from 'antd';\n// lib\nimport { USER } from '../../../Lib/variables';\n\nexport default class NavComponent extends React.PureComponent {\n state = {\n menu: false,\n };\n\n onClose = () => {\n const { pathname } = this.props.location;\n if (pathname === '/' && window.innerWidth <= 768) {\n const main = document.querySelector('.order-menu-wrapper');\n main.style.display = 'none';\n }\n };\n\n componentDidUpdate = prevProps => {\n const { pathname: prevPath } = prevProps.location;\n const { pathname } = this.props.location;\n if (prevPath !== pathname) {\n this.setState({ menu: false });\n }\n };\n\n // payment test\n onMobileMenuHandler = () => {\n this.setState({ menu: !this.state.menu });\n };\n\n render() {\n // const { id, name, userType, ticket } = this.props.auth;\n // const { name, userType } = this.props.auth;\n const id = localStorage.getItem('id');\n const userType = localStorage.getItem('userType');\n\n return (\n
\n
\n
\n \n logo\n \n
\n
\n
\n \n \n \n
\n
    \n
  • \n \n 메인\n \n \n
  • \n
  • \n \n 위드메이트 소개\n \n \n
  • \n
  • \n \n 이용후기\n \n \n
  • \n
  • \n \n 소식 보기\n \n \n
  • \n
  • \n \n FAQ\n \n \n
  • \n {!id ? (\n <>\n
  • \n \n 로그인\n \n \n
  • \n
  • \n \n 회원가입\n \n \n
  • \n
  • \n \n 메이트 지원\n \n \n
  • \n \n ) : (\n <>\n
  • \n \n 마이페이지\n \n \n
  • \n\n
  • \n \n 로그아웃\n \n \n
  • \n \n )}\n
\n
\n
\n
\n );\n }\n}\n","import styled from 'styled-components';\nimport { borderColor, mainBoldColor, mainColor, fontSize, sizeHandler } from '../../../theme';\nconst NavStyledContainer = styled.div`\n .nav-container {\n width: 100vw;\n height: 56px;\n background-color: white;\n border-bottom: 1px solid ${borderColor};\n position: fixed;\n top: 0px;\n left: 0px;\n z-index: 10;\n\n .nav-inner {\n display: flex;\n flex-direction: row;\n max-width: 1120px;\n height: 100%;\n margin: 0 auto;\n position: relative;\n\n .logo {\n width: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n img {\n width: 80%;\n }\n }\n\n .nav {\n flex: 1;\n padding-right: 12px;\n\n .mobile-menu {\n display: none;\n }\n\n ul.nav-items {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n padding: 0px;\n padding-left: 32px;\n\n li.item {\n padding-left: 13px;\n padding-right: 13px;\n position: relative;\n \n > a {\n font-size: 13px;\n line-height: 21px;\n }\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.item-apply {\n padding-left: 0px;\n padding-right: 0px;\n\n margin-left: 12px;\n\n .underline {\n bottom: -12px;\n }\n }\n\n &.item-login {\n padding-left: 0px;\n padding-right: 0px;\n margin-left: 12px;\n\n .underline {\n bottom: -12px;\n }\n }\n\n &.item-register {\n padding-left: 0px;\n padding-right: 0px;\n\n margin-left: 12px;\n\n .underline {\n bottom: -12px;\n }\n }\n\n &.item-logout {\n border-left: 1px solid #e6e6e6;\n }\n\n &.item-name {\n border-left: 1px solid #e6e6e6;\n border-right: 1px solid #e6e6e6;\n }\n\n @media (max-width: 1080px) {\n padding-left: 8px;\n padding-right: 8px;\n\n > a {\n font-size: 13px;\n line-height: 18px;\n }\n }\n\n @media (max-width: 900px) {\n padding-left: 6px;\n padding-right: 6px;\n\n > a {\n font-size: 12px;\n line-height: 18px;\n }\n }\n }\n\n .tickets {\n font-size: ${sizeHandler(14)};\n font-weight: bold;\n letter-spacing: -0.18px;\n color: #606060;\n }\n\n .nav-item {\n font-weight: bold;\n font-size: 12px;\n color: #606060;\n\n &.block {\n padding: 9.25px 30px;\n \n line-height: 18px;\n text-align: center;\n border: 1px solid ${mainColor}\n font-weight: bold;\n border-radius: 2px;\n }\n\n &.login, &.register {\n color: ${mainColor};\n }\n\n &.apply {\n background-color: ${mainColor};\n color: white;\n }\n\n @media (max-width: 1080px) {\n &.block {\n padding: 8px 24px;\n }\n }\n\n @media (max-width: 900px) {\n &.block {\n padding: 6px 18px;\n }\n }\n }\n\n .active {\n color: ${mainColor};\n font-weight: bold;\n\n .underline {\n display: inline-block;\n position: absolute;\n bottom: -18.5px;\n left: 0px;\n width: 100%;\n height: 3px;\n background-color: ${mainColor};\n }\n }\n }\n\n \n\n @media (max-width: 768px) {\n padding-right: 0px;\n \n .mobile-menu {\n height: 100%;\n width: 100%;\n display: block;\n position: relative;\n\n span {\n position: absolute;\n right: 32px;\n top: 16px;\n cursor: pointer;\n color: ${mainColor};\n\n svg {\n font-size: ${fontSize.b20};\n }\n }\n }\n\n ul.nav-items {\n display: none;\n\n li.item {\n \n \n &.item-logout {\n border-left: 0px;\n }\n \n &.item-name {\n border-left: 0px;\n border-right: 0px;\n }\n }\n }\n\n ul.nav-items.active {\n position: absolute;\n background-color: white;\n z-index: 9999;\n top: 56px;\n left: 0px;\n width: 100%;\n height: auto;\n display: block;\n padding: 0px;\n padding: 0px 12px;\n\n li.item {\n width: 100%;\n min-height: 40px;\n margin: 0;\n border-bottom: 1px solid ${borderColor};\n background-color: white;\n color: #606060;\n\n &.item-login {\n margin-left: 0px;\n }\n \n &.item-register {\n margin-left: 0px;\n }\n\n a {\n display: inline-block;\n width: 100%;\n text-align: center;\n line-height: 40px;\n // color: #606060;\n }\n }\n\n .nav-item {\n &.block {\n margin: 6px 0px;\n line-height: 32px;\n }\n }\n\n .active .underline {\n height: 0px;\n }\n }\n }\n }\n }\n }\n`;\n\nexport default NavStyledContainer;\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\n\n// component\nimport Nav from './nav';\n\n// styles\nimport NavStyledContainer from './nav.styled';\n\n// actions\n// import {} from '../../Redux/Modules/';\n\nclass NavContainer extends React.PureComponent {\n render() {\n return (\n \n