{"version":3,"file":"static/js/AppMembers.c199e989358440a389c43a6bd9ce28b423c5ceff.chunk.js","mappings":"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","sources":["Members/View/Molecules/BaseContentBlocks/ContentTitle.tsx","Members/View/Molecules/BaseContentBlocks/ContentTopMessage.tsx","Members/View/Molecules/BaseContentBlocks/ContentNotes.tsx","Members/View/Molecules/BaseContentBlocks/ContentBlock.tsx","Members/View/Components/CompleteContentBlocks/SendConfirmMailContent.tsx","Members/View/Pages/Signup/MembersInvitationCompletePage.tsx","Members/DTO/MemberRegisterInformationDTO.ts","Members/View/Atoms/Line.tsx","Members/View/Atoms/Lists/MBList.tsx","Members/View/Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock.tsx","Members/View/Molecules/BaseContentBlocks/NoticeListComponents.tsx","Members/View/Molecules/BaseContentBlocks/ConfirmContent.tsx","Members/View/Components/ConfirmContentBlocks/MemberNameConfirms.tsx","Members/View/Components/ConfirmContentBlocks/BasicMemberInfoConfirmContents.tsx","Members/View/Hooks/UseGmo.tsx","Members/View/Hooks/UseScriptElement.tsx","Members/View/Atoms/Icons/MemberFilePenIcon.tsx","Members/View/Atoms/Icons/MemberFileCircleCheckIcon.tsx","Members/View/Atoms/Icons/MemberCheckCircleIcon.tsx","Members/View/Molecules/StepGuide/StepGuide.tsx","Members/View/Molecules/BaseMembersPages/MessageForAction.tsx","Members/View/Molecules/ErrorsAndAlert/ErrorDisplay.tsx","Members/View/Atoms/Icons/MemberMagnifyingGlassIcon.tsx","Members/View/Atoms/Buttons.tsx","Members/View/Components/PaymentsRelations/ConfirmContentBlocks/ContractTermConfirmContent.tsx","Members/Props/ContractInputInfo.tsx","Members/View/Atoms/MBMemberSelect.tsx","Common/Components/MBSelect.tsx","Members/View/Atoms/Labels/Bases/PIMBaseLabel.tsx","Members/View/Atoms/Labels/PIMWarningMessages.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/ConvenienceStoreInputComponent.tsx","Members/View/Components/PaymentsRelations/ConfirmContentBlocks/ContractPaymentMethodConfirm.tsx","Members/DTO/PreMemberRegisterInformationDTO.ts","Members/View/Components/ConfirmContentBlocks/AddressConfirms/AddressConfirms.tsx","Members/Utils/Validations/PhoneInformation.tsx","Members/View/Components/ConfirmContentBlocks/AddressConfirms/ContactAddressConfirmContents.tsx","Members/View/Components/ConfirmContentBlocks/EnrollmentReasonConfirmContentBlock.tsx","Members/View/Pages/Signup/Components/ExtendMetaDataConfirmBlock.tsx","Members/View/Pages/Signup/MembersSignupInputConfirmPage.tsx","Members/View/Atoms/Icons/MemberCircleArrowRightIcon.tsx","Members/View/Molecules/LinkIconText.tsx","Members/View/Components/PaymentsRelations/ConfirmContentBlocks/ConfirmContractDetailContent.tsx","Members/View/Atoms/Buttons/Bases/PIMPrimaryButton.tsx","Members/View/Components/PaymentsRelations/ConfirmContentBlocks/ContractInformationContentBlock.tsx","Members/View/Components/CompleteContentBlocks/RegisteredMemberInfoContents.tsx","Members/View/Components/PaymentsRelations/ConfirmContentBlocks/CvsPaymentInfoContentBlock.tsx","Members/View/Components/RegisterOrganizationContentBlocks/BucketMemberIdContent.tsx","Members/View/Components/RegisterOrganizationContentBlocks/SignedUpServiceListContent.tsx","Members/View/Components/RegisterOrganizationContentBlocks/RegisteredFreeServiceContentBlock.tsx","Members/View/Components/RegisterOrganizationContentBlocks/RegisteredOrganizationContentBlock.tsx","Members/View/Pages/Signup/MembersRegisteredPage.tsx","Members/View/Pages/Signup/MembersSignupRedirectPage.tsx","Members/View/Atoms/Icons/MemberArrowRightIcon.tsx","Members/View/Pages/Account/Components/BucketLinkButton.tsx","Members/View/Pages/Account/Components/FanClubLinkListContentBlock.tsx","Members/View/Pages/Account/MembersAccountTopPage.tsx","Members/View/Atoms/Layouts/PIMCardActions.tsx","Members/View/Molecules/MBDialogs.tsx","Members/View/Molecules/MBLoadingOverlay.tsx","Members/View/Pages/Account/MembersAccountInformationPage.tsx","Members/View/Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary.tsx","Common/Components/MBInput.tsx","Members/View/Atoms/MBMemberInput.tsx","Members/Utils/ConvertOnBlur.ts","Members/View/Components/InputContentBlocks/AddressInputs/AddressInputs.tsx","Members/View/Components/InputContentBlocks/AddressInputs/ContactAddressInputContents.tsx","Members/View/Pages/EditAddress/MembersEditAddressInputPage.tsx","Members/Utils/Validations/ValidateMembersAddressInput.ts","Members/DTO/MemberAddressDTO.ts","Members/View/Pages/EditAddress/MembersEditAddressConfirmPage.tsx","Members/View/Pages/Error/Members404Page.tsx","Members/View/Pages/Error/MembersInvalidOperationPage.tsx","Members/View/Pages/Error/MembersDuplicatedRegisterPage.tsx","Members/View/Pages/EditAddress/MembersEditAddressCompletePage.tsx","Members/View/Components/InputContentBlocks/AgreementCheckBoxContentBlock.tsx","Members/Utils/Validations/PaymentInputInfoValidation.ts","Members/View/Components/InputContentBlocks/MailMagazineSelectContentBlock.tsx","Members/View/Atoms/MBMemberRadio.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/MBMemberRadioListForContractTerm.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/SelectContractTermContents.tsx","Members/View/Pages/Join/Components/AlreadyJoinedContent.tsx","Members/View/Components/MembersPageAuthTemplate.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/CardInformationDiv.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/NewCreditCardInputComponent.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/SelectCreditCardRadioList.tsx","Members/View/Components/PaymentsRelations/InputContentBlocks/MobileCarrierInputComponent.tsx","Members/View/Pages/Join/Components/JoinDisplayPaymentMethodsRadioList.tsx","Members/View/Pages/Join/Components/JoinSelectPaymentMethodContents.tsx","Members/View/Pages/Join/Components/JoinErrorCvsReadyContent.tsx","Members/View/Components/InputContentBlocks/EnrollmentReasonSelectContentBlock.tsx","Members/View/Atoms/Icons/MemberAttentionExclamationIcon.tsx","Members/View/Molecules/ErrorsAndAlert/AttentionSummary/AttentionSummary.tsx","Members/View/Molecules/ErrorsAndAlert/AttentionSummary/TakeoverAttentionSummary.tsx","Members/View/Pages/Join/MembersJoinInputPage.tsx","Members/Utils/Validations/ValidateMembersJoinInput.ts","Members/DTO/MemberMailUpdateDTO.ts","Members/View/Atoms/MBMemberEMailInput.tsx","Members/Utils/Validations/ValidateMembersMailInput.ts","Members/View/Atoms/Icons/MemberCircleArrowDownIcon.tsx","Members/View/Pages/EditMail/MembersEditMailInputPage.tsx","Members/DTO/MemberJoinBucketDTO.ts","Members/View/Components/ConfirmContentBlocks/MailMagazineConfirmContentBlock.tsx","Members/DTO/MemberPreJoinBucketDTO.ts","Members/View/Pages/Join/MembersJoinInputConfirmPage.tsx","Members/View/Pages/EditMail/MembersEditMailSendCompletePage.tsx","Members/View/Pages/EditMail/MembersEditMailUpdatedPage.tsx","Members/View/Pages/EditMail/MembersEditMailRedirectPage.tsx","Members/View/Pages/Join/MembersJoinCompletePage.tsx","Members/View/Pages/Error/MembersInvalidOneTimeUrlPage.tsx","Members/View/Molecules/PasswordRuleText.tsx","Members/View/Components/InputContentBlocks/PasswordForm.tsx","Members/View/Components/InputContentBlocks/PasswordInputContent.tsx","Members/View/Pages/Signup/Components/SignupDisplayPaymentMethodsRadioList.tsx","Members/View/Pages/Signup/Components/SignupSelectPaymentMethodContents.tsx","Members/View/Components/InputContentBlocks/MemberNameInputs.tsx","Members/View/Pages/Signup/Components/GenderInput.tsx","Members/View/Pages/Signup/Components/ExtendMetaDataInputBlock.tsx","Members/View/Pages/Signup/MembersSignupInputPage.tsx","Members/Utils/Validations/ValidateMembersSignupInput.ts","Members/Utils/Validations/ValidateMembersPasswordInput.ts","Members/View/Pages/EditPassword/MembersEditPasswordPage.tsx","Members/View/Pages/EditMailMagazine/MembersEditMailMagazineInfoPage.tsx","Members/View/Pages/EditPassword/MembersEditPasswordCompletePage.tsx","Members/View/Pages/EditMailMagazine/MembersEditMailMagazineInputPage.tsx","Members/View/Pages/EditMailMagazine/MembersEditMailMagazineConfirmPage.tsx","Members/DTO/MemberInvitationDTO.ts","Members/View/Components/InputContentBlocks/MailAddressFormContent.tsx","Members/View/Pages/Signup/MembersInvitationPage.tsx","Members/View/Components/CompleteContentBlocks/CompleteMessageContent.tsx","Members/View/Pages/EditMailMagazine/MembersEditMailMagazineCompletePage.tsx","Members/Utils/Validations/ValidateMembersLeaveBucketInput.ts","Members/Utils/Resources.ts","Members/View/Atoms/MBMemberTextArea.tsx","Members/View/Components/LeavingMessageContent.tsx","Members/View/Molecules/ProcessingErrorMessage.tsx","Members/View/Pages/Error/ProcessingErrorPage.tsx","Members/View/Pages/Error/MembersMobileCarrierMaintenancePage.tsx","Members/View/Pages/Error/MembersBaseErrorPage.tsx","Members/View/Pages/Leave/Components/CvsProcedureOrCompletedErrorPage.tsx","Members/View/Pages/Leave/MembersLeaveBucketInputPage.tsx","Members/View/Molecules/ErrorsAndAlert/AlertList.tsx","Members/View/Pages/Leave/MembersLeaveBucketConfirmPage.tsx","Members/View/Pages/Leave/MembersLeaveBucketCompletePage.tsx","Members/View/Atoms/Buttons/Bases/PIMAccentButton.tsx","Members/View/Pages/EditContractInfo/MembersEditContractInfoPage.tsx","Members/View/Pages/EditContractInfo/Components/ChangeNextContractTermContent.tsx","Members/View/Pages/EditContractInfo/Components/EditDisplayPaymentMethodsRadioList.tsx","Members/View/Pages/EditContractInfo/Components/ChangeNextPaymentMethodContent.tsx","Members/View/Pages/EditContractInfo/MembersEditContractInputPage.tsx","Members/Utils/Validations/ValidateMembersContractInput.ts","Members/DTO/MemberEditContractDTO.ts","Members/View/Pages/EditContractInfo/MembersEditContractConfirmPage.tsx","Members/View/Pages/EditContractInfo/MembersEditContractCompletePage.tsx","Members/View/Pages/Auth/MembersAuthLogoutPage.tsx","Members/DTO/MemberVerifyIdentityDTO.ts","Members/View/Pages/ResetPassword/MembersVerifyIdentityPage.tsx","Members/View/Pages/ResetPassword/MembersSendMailForVerificationIdentityPage.tsx","Members/View/Pages/ResetPassword/MemberResetPasswordRedirectPage.tsx","Members/View/Pages/ResetPassword/Components/ConfirmRegistrationContent.tsx","Members/DTO/MemberResetPasswordDTO.ts","Members/View/Pages/ResetPassword/MemberResetPasswordInputPage.tsx","Members/View/Pages/ResetPassword/MemberResetPasswordCompletePage.tsx","Members/View/Pages/MembersRedirectPage.tsx","Members/View/Hooks/UseQuery.tsx","Members/View/Pages/Signup/MembersSignupResultPage.tsx","Members/View/Pages/MobileCarrierTransition/MembersMobileCarrierTransitionPage.tsx","Members/View/Pages/Join/MembersJoinResultPage.tsx","Members/View/Components/InputContentBlocks/AddressInputs/ShippingAddressInputs.tsx","Members/View/Components/InputContentBlocks/AddressInputs/ShippingAddressInputContents.tsx","Members/Utils/Validations/ValidationShippingAddressInput.ts","Members/View/Pages/ShippingAddress/MembersShippingAddressInputPage.tsx","Members/View/Components/ConfirmContentBlocks/AddressConfirms/ShippingAddressConfirms.tsx","Members/View/Components/ConfirmContentBlocks/AddressConfirms/ShippingAddressConfirmContents.tsx","Members/View/Pages/ShippingAddress/MembersShippingAddressInputConfirmPage.tsx","Members/View/Pages/ShippingAddress/MembersShippingAddressInputCompletePage.tsx","Members/View/Pages/ShippingAddress/MembersEditShippingAddressInputPage.tsx","Members/View/Pages/ShippingAddress/MembersEditShippingAddressConfirmPage.tsx","Members/View/Pages/ShippingAddress/MembersEditShippingAddressCompletePage.tsx","Members/View/Pages/EditContractInfo/MembersEditContractResultPage.tsx","AppMembers.tsx"],"sourcesContent":["import React from 'react'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {MBContentTitleTypography} from '../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../Atoms/Badges'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBContentTitleDivider} from '../../Atoms/Dividers'\nimport {MBLogoImg} from '../../Atoms/MBLogos'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\n\ntype ContentTitleProps = {\n logoUrl?: Optional<string>\n require?: boolean\n noMarginBottom?: boolean\n children: React.ReactNode\n}\nexport const ContentTitle: React.VFC<ContentTitleProps> = (props) => {\n const marginBottom = props.noMarginBottom ? 0 : 24\n return (\n <Spacer mb={`${marginBottom}px`}>\n <PIMStack\n direction={'row'}\n alignItems={'center'}\n justifyContent={'space-between'}\n spacing={1}\n >\n <PIMStack direction={'row'} alignItems={'center'} spacing={2}>\n <MBContentTitleTypography>{props.children}</MBContentTitleTypography>\n {\n props.require && (\n <MBRequiredBadge/>\n )\n }\n </PIMStack>\n {\n props.logoUrl && (\n <MBLogoImg\n data-testid={'content-block-logo'}\n logoImgMaxHeight={'30px'}\n logoImgMaxWidth={'58px'}\n src={props.logoUrl}\n alt={'content-header-log'}\n />\n )\n }\n </PIMStack>\n\n <Spacer mt={'7px'}>\n <MBContentTitleDivider/>\n </Spacer>\n </Spacer>\n )\n}\n","import React from 'react'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {\n MBContentNoteWithMarkTypography,\n MBContentSubTitleTypography,\n} from '../../Atoms/Typographies'\n\ntype ContentTopMessageProps = {\n marginBottom?: string\n note?: string\n children: React.ReactNode\n}\nexport const ContentTopMessage: React.VFC<ContentTopMessageProps> = (props) => {\n return (\n <div>\n <MBContentSubTitleTypography>\n {props.children}\n </MBContentSubTitleTypography>\n {\n props.note &&\n <Spacer mt={'10px'} mb={'16px'}>\n <MBContentNoteWithMarkTypography note={props.note}/>\n </Spacer>\n }\n </div>\n )\n}\n","import React from 'react'\n\ntype Props = {\n notes: string[]\n}\nexport const ContentNotes: React.VFC<Props> = (props) => {\n if (props.notes.length === 0) {\n return null\n }\n return <ul className=\"notes\">\n {\n props.notes.map((note, index) => {\n // TODO 暫定機能\n const note_array = note.split(/\\n/)\n const main = note_array.shift()\n // 改行区切りで残りがなくなったらそのまま返す\n if (note_array.length === 0) {\n return <li className={`note0${index + 1}`} key={index} dangerouslySetInnerHTML={{__html: note}}/>\n }\n // 改行区切りで残りがあれば、それはコメントとして追加情報を残す\n return <li className={`note0${index + 1}`} key={index}>\n <span dangerouslySetInnerHTML={{__html: main ?? ''}}/>\n <ul className=\"note-comment\">\n {\n note_array.map((item, i) => {\n return <li className=\"note-comment-list\"\n key={`note-comment${index}-${i}`}\n dangerouslySetInnerHTML={{__html: item}}/>\n })\n }\n </ul>\n </li>\n })\n }\n </ul>\n}\n","import styled from '@emotion/styled'\nimport {Color} from '../../Styles'\n\nexport const ContentBlock = styled.div`\n padding: 16px 20px 16px 20px;\n border-radius: 6px;\n background: ${Color.White};\n max-width: 600px;\n margin: 0 auto 16px;\n`\n\nexport const BorderedContentBlock = styled.div`\n padding: 20px 16px;\n border: 1px solid ${Color.Grey100};\n max-width: 600px;\n margin: 0 auto;\n`\n","import React from 'react'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentNotes} from '../../Molecules/BaseContentBlocks/ContentNotes'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {Spacer} from '../../../../Common/Components/Spacer'\n\ntype SendConfirmMailContentProps = {\n title: string\n topMessage: string\n note: string[]\n logoImgUrl?: string\n dataTestId?: string\n}\nexport const SendConfirmMailContent: React.VFC<SendConfirmMailContentProps> = (props) => {\n return (\n <ContentBlock data-testid={props.dataTestId ?? 'block-send-confirm-mail'}>\n <ContentTitle logoUrl={props.logoImgUrl}>{props.title}</ContentTitle>\n <ContentTopMessage>{props.topMessage}</ContentTopMessage>\n <Spacer mt={'18px'}>\n <ContentNotes notes={props.note}/>\n </Spacer>\n </ContentBlock>\n )\n}\n","import React from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {SendConfirmMailContent} from '../../Components/CompleteContentBlocks/SendConfirmMailContent'\nimport {useTranslation} from 'react-i18next'\n\ntype LocationState = {\n signboard: Signboard\n}\n\nfunction MembersInvitationCompletePage(): JSX.Element {\n const {t} = useTranslation('member')\n const location = useLocation<LocationState>()\n const locationState: LocationState = location.state\n\n function isInvalidLocationState(locationState: LocationState): boolean {\n if (!locationState) {\n return true\n }\n if (!locationState.signboard) {\n return true\n }\n if (!locationState.signboard.signupName || !locationState.signboard.logoImgUrl) {\n return true\n }\n return false\n }\n\n if (isInvalidLocationState(location.state)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n return (\n <MembersPageTemplate>\n <PageTitle>{`${locationState.signboard.signupName} 新規登録URL発行`}</PageTitle>\n\n <SendConfirmMailContent\n title={'本人確認メール送信完了'}\n topMessage={'ご入力いただいたメールアドレスに本人確認メールを送信しました。\\n' +\n '現在メールによる本人確認待ちです。\\n' +\n '届いたメールに記載されているURLより新規登録を続けてください。\\n' +\n 'メールに記載されているURLの有効期限は3時間となっています。'}\n note={[\n 'ご登録手続きは、まだ完了していませんのでご注意ください。',\n t('新規登録URL発行.注記 メール受信設定'),\n ]}\n logoImgUrl={locationState.signboard.logoImgUrl}\n />\n </MembersPageTemplate>\n )\n}\n\nexport default MembersInvitationCompletePage\n","import {Optional} from '../../Common/TypeHelper'\nimport {MemberRegisterContractInfo, MemberRegisterConvenienceStoreContractInfo, MemberRegisterFreeBucketContractInfo} from '../Props/ContractInputInfo'\nimport {EnrollmentReasonSelectedInfo} from '../View/Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\nimport {ExtendMetaDataInputInfo} from './ExtendMetaDataDTO'\n\nclass MemberRegisterInformationDTO {\n constructor(\n public invitationId: string,\n public familyName: string,\n public firstName: string,\n public familyNameKana: string,\n public firstNameKana: string,\n public gender: string,\n public birthday: string,\n public postCode: string,\n public addressPrefectureCode: string,\n public addressCity: string,\n public addressStreet: string,\n public addressBuilding: Optional<string>,\n public phoneMobile: Optional<string>,\n public phoneTel: Optional<string>,\n public password: string,\n public agreementIdCheckedList: number[],\n public mailMagazineIdCheckedList: number[],\n public contractInfo: MemberRegisterContractInfo\n | MemberRegisterConvenienceStoreContractInfo\n | MemberRegisterFreeBucketContractInfo,\n public enrollmentReason: Optional<EnrollmentReasonSelectedInfo>,\n public extendMetaData?: ExtendMetaDataInputInfo\n ) {\n }\n}\n\nexport default MemberRegisterInformationDTO\n","import React from 'react'\nimport {Color} from '../Styles'\nimport styled from '@emotion/styled'\n\ntype LineProps = {\n children: React.ReactNode\n color?: string\n}\n\nconst StyledSpan = styled.span`\n display: block;\n margin: 0px;\n padding: 0px;\n color: ${({color}: LineProps): string => color ?? Color.Grey800\n};\n`\n\nexport const Line: React.VFC<LineProps> = (props) =>\n <StyledSpan color={props.color}>{props.children}</StyledSpan>\n","import styled from '@emotion/styled'\n\nexport const MBUnorderedList = styled.ul`\n list-style: none;\n`\nexport const MBListItem = styled.li`\n position: relative;\n padding-left: 1.6rem;\n \n &:not(:last-child) { \n margin-bottom: 8px; \n }\n \n &:before{\n position: absolute;\n content: \"\";\n display: inline-block;\n text-align : center;\n vertical-align: middle;\n top: 7px;\n left: 5px;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: #000;\n }\n`\n","import {Signboard} from '../../../DTO/SignboardDTO'\nimport React from 'react'\nimport {Line} from '../../Atoms/Line'\nimport {formatPrice} from '../../../../Common/Formatter'\nimport {ContractTerm} from '../../../Props/ContractInputInfo'\nimport {MBContentFlexWrapTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {BorderedContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBListItem, MBUnorderedList} from '../../Atoms/Lists/MBList'\nimport {SignedUpSignboard} from '../../../DTO/SignedUpSignboardDTO'\nimport {useTranslation} from 'react-i18next'\n\nexport type PaymentInformation = {\n isFreeBucket: boolean\n termName: string\n contractAmount: number\n order: number\n term: ContractTerm\n}\n\nexport type RegisterOrganizationContentBlockProps = {\n signboard: Signboard | SignedUpSignboard\n title: string\n paymentInformationList: PaymentInformation[]\n}\n\nexport const RegisterOrganizationContentBlock: React.VFC<RegisterOrganizationContentBlockProps> = (\n props,\n) => {\n return (\n <PIMCard\n headerProps={{title: props.title, logoUrl: props.signboard.logoImgUrl}}\n testId={'block-register-organization'}\n pb={'24px'}\n >\n <MBUnorderedList data-testid={'block-register-organization-main-service'}>\n <MBListItem>\n <MBContentSubTitleTypography>\n <Line>{props.signboard.mainService.name}</Line>\n <SubTitleContent\n paymentInformationList={props.paymentInformationList}\n />\n </MBContentSubTitleTypography>\n </MBListItem>\n </MBUnorderedList>\n <FreeBucketsBlock signboard={props.signboard}/>\n </PIMCard>\n )\n}\n\nconst getResultContractUnits = (paymentInformationList: PaymentInformation[]): string => {\n paymentInformationList.sort((a, b) => a.order - b.order)\n\n const paymentDisplayStringList = paymentInformationList.map(item => {\n return `${item.termName}:${formatPrice(item.contractAmount)}円(税込)`\n })\n\n return Array.from(new Set(paymentDisplayStringList)).join(' / ')\n}\n\ntype SubTitleContentProps = {\n paymentInformationList: PaymentInformation[]\n}\nconst SubTitleContent: React.VFC<SubTitleContentProps> = (\n {\n paymentInformationList,\n },\n) => {\n if (!paymentInformationList) {\n return <></>\n }\n\n const isFreeBucket = paymentInformationList.some(payInfo => payInfo.isFreeBucket)\n if (isFreeBucket) {\n return <></>\n }\n\n const resultContractUnits = getResultContractUnits(paymentInformationList)\n if (resultContractUnits.length > 0) {\n return <Line>{resultContractUnits}</Line>\n }\n\n return <></>\n}\n\ntype FreeBucketsBlockProps = {\n signboard: Signboard,\n}\nconst FreeBucketsBlock: React.VFC<FreeBucketsBlockProps> = ({signboard}) => {\n const {t} = useTranslation('member')\n const freeServices = signboard.freeServices\n if (freeServices.length === 0) return null\n\n return <Spacer mt={'24px'}>\n <BorderedContentBlock data-testid={'block-register-organization-free-services'}>\n <PIMStack spacing={2}>\n <MBContentSubTitleTypography>\n {t('新規登録情報入力.入会バケット情報.無料付帯バケット.見出し')}\n </MBContentSubTitleTypography>\n <MBUnorderedList>\n {freeServices.map(bucket =>\n <MBListItem key={bucket.id}>\n <MBContentFlexWrapTypography>\n {bucket.name}\n <SignedUpTypography signedUp={bucket.signedUp}/>\n </MBContentFlexWrapTypography>\n </MBListItem>)\n }\n </MBUnorderedList>\n </PIMStack>\n </BorderedContentBlock>\n </Spacer>\n}\n\ntype SignedUpTypographyProps = {\n signedUp: boolean\n}\nconst SignedUpTypography: React.VFC<SignedUpTypographyProps> = (\n {\n signedUp,\n },\n) => {\n if (!signedUp) return <></>\n\n return (\n <span>{' [入会済]'}</span>\n )\n}\n","import React from 'react'\nimport {Nullable} from '../../../../Common/TypeHelper'\n\ntype Props = {\n notices: string[]\n}\n\nexport const NoticeListComponents = (props: Props): Nullable<JSX.Element> => {\n if (props.notices.length === 0) {\n return null\n }\n\n return <ul className=\"list-notice_01 _strong mt_4\" data-testid={'block-notice-list'}>\n {props.notices.map((notice, i) => {\n return <li key={i}><span className=\"mark\">※</span>{notice}</li>\n })}\n </ul>\n}\n","import React from 'react'\nimport {NoticeListComponents} from './NoticeListComponents'\nimport {Line} from '../../Atoms/Line'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\n\ntype ConfirmContentProps = {\n label: string\n values: string[]\n valueColor?: string\n notices?: string[]\n testDataId?: string\n}\n\nexport const ConfirmContent: React.VFC<ConfirmContentProps> = (props) => {\n return (\n <PIMStack spacing={'10px'} testId={props.testDataId}>\n <MBContentSubTitleTypography>{props.label}</MBContentSubTitleTypography>\n <div>\n <MBContentBodyTypography>\n {props.values?.map((value, i) => {\n return (<Line key={i} color={props.valueColor}>{value} </Line>)\n })}\n </MBContentBodyTypography>\n {props.notices && <NoticeListComponents notices={props.notices}/>}\n </div>\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {ConfirmContent} from '../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\n\nexport type MemberNameConfirmsProps = {\n familyName: string\n firstName: string\n familyNameKana: string\n firstNameKana: string\n}\nexport const MemberNameConfirms: React.VFC<MemberNameConfirmsProps> = (\n {\n familyName,\n firstName,\n familyNameKana,\n firstNameKana,\n },\n) => {\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <ConfirmContent\n label={'お名前'} values={[`${familyName} ${firstName}`]}\n testDataId={'confirm-content-full-name'}\n />\n <ConfirmContent\n label={'フリガナ'} values={[familyNameKana + ' ' + firstNameKana]}\n testDataId={'confirm-content-full-name-kana'}\n />\n </PIMStack>\n )\n}\n","import React, {Fragment} from 'react'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {GENDER} from '../../../../Common/Constants'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ConfirmContent} from '../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {MemberNameConfirms, MemberNameConfirmsProps} from './MemberNameConfirms'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {useTranslation} from 'react-i18next'\n\ntype BasicMemberInfoConfirmContentsProps = MemberNameConfirmsProps & {\n topMessage?: string[]\n mail: string\n gender: Nullable<string>\n birthday: Nullable<string>\n}\n\nexport const BasicMemberInfoConfirmContents: React.VFC<BasicMemberInfoConfirmContentsProps> = (\n {\n topMessage,\n mail,\n familyName,\n firstName,\n familyNameKana,\n firstNameKana,\n gender,\n birthday,\n },\n): JSX.Element => {\n const {t} = useTranslation('member')\n\n const displayTopMessage = (): Nullable<JSX.Element> => {\n if (topMessage?.length === 0) {\n return null\n }\n\n return <ContentTopMessage data-testid={'basic-info-top-message'}>\n {topMessage?.map((message, i, array) => {\n if (array.length - 1 === i) {\n return <Fragment key={i}>{message}</Fragment>\n }\n return <Fragment key={i}>{message}<br/></Fragment>\n })}\n </ContentTopMessage>\n }\n\n return (\n <PIMCard\n headerProps={{title: t('新規登録情報確認.基本情報.見出し')}}\n testId={'block-basic-info'}\n >\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n {topMessage && displayTopMessage()}\n <ConfirmContent\n label={'メールアドレス'} values={[mail]}\n testDataId={'confirm-content-mail'}\n />\n <MemberNameConfirms\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n />\n <ConfirmContent\n label={'性別'} values={[gender ? GENDER[gender] : '']}\n testDataId={'confirm-content-gender'}\n />\n <ConfirmContent\n label={'生年月日'} values={[birthday ?? '']}\n testDataId={'confirm-content-birthday'}\n />\n </PIMStack>\n </PIMCard>\n )\n}\n","import {useEffect, useState} from 'react'\nimport {Nullable} from '../../../Common/TypeHelper'\nimport {useScriptElement} from './UseScriptElement'\n\nexport type TokenResponse = {\n resultCode: string\n tokenObject: {\n maskedCardNo: string,\n toBeExpiredAt: string,\n isSecurityCodeSet: boolean,\n token: string[]\n },\n}\n\nexport type CardInfo = {\n tokennumber: number\n cardno: string\n expire: string\n securitycode: string\n holdername: string\n}\n\nexport type Gmo = {\n init: (shopCode: string) => void,\n getToken: (cardInfo: CardInfo, callback: (result: TokenResponse) => void) => void\n}\n\nexport const useGmo = (src: string): [boolean, Nullable<ErrorEvent>, Nullable<Gmo>] => {\n const [multipayment, setMultipayment] = useState<Gmo | null>(null)\n const [loading, error] = useScriptElement(src)\n\n useEffect(() => {\n if (!loading && !error) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setMultipayment(Multipayment)\n }\n }, [loading, error])\n\n return [loading, error, multipayment]\n}\n","import {useCallback, useEffect, useMemo, useState} from 'react'\n\ntype ErrorState = ErrorEvent | null;\n\nexport const useScriptElement = (src: HTMLScriptElement['src']): [boolean, ErrorState] => {\n const isBrowser = useMemo(() =>\n typeof window !== 'undefined' && typeof window.document !== 'undefined',\n [window],\n )\n\n const [loading, setLoading] = useState<boolean>(true)\n const [error, setError] = useState<ErrorState>(null)\n\n const handleLoad = useCallback((): void => {\n setLoading(false)\n }, [])\n const handleError = useCallback((error: ErrorEvent): void => {\n setError(error)\n }, [])\n\n useEffect(() => {\n if (!isBrowser || !src || !loading || error) {\n return\n }\n\n const scriptEl = document.createElement('script')\n scriptEl.src = src\n\n scriptEl.addEventListener('load', handleLoad)\n scriptEl.addEventListener('error', handleError)\n\n document.body.appendChild(scriptEl)\n\n return () => {\n scriptEl.removeEventListener('load', handleLoad)\n scriptEl.removeEventListener('error', handleError)\n }\n }, [src])\n\n return [loading, error]\n}\n","import React from 'react'\nimport {faFilePen} from '@fortawesome/free-solid-svg-icons'\nimport {FontAwesomeIcon, FontAwesomeIconProps} from '@fortawesome/react-fontawesome'\n\ntype MemberFilePenIconProps = Pick<FontAwesomeIconProps, 'color'>\n\nexport const MemberFilePenIcon: React.VFC<MemberFilePenIconProps> = ({color}) => {\n return <FontAwesomeIcon icon={faFilePen} size={'2x'} color={color}/>\n}\n","import React from 'react'\nimport {faFileCircleCheck} from '@fortawesome/free-solid-svg-icons/faFileCircleCheck'\nimport {FontAwesomeIcon, FontAwesomeIconProps} from '@fortawesome/react-fontawesome'\n\ntype MemberFileCircleCheckIconProps = Pick<FontAwesomeIconProps, 'color'>\n\nexport const MemberFileCircleCheckIcon: React.VFC<MemberFileCircleCheckIconProps> = ({color}) => {\n return <FontAwesomeIcon icon={faFileCircleCheck} size={'2x'} color={color}/>\n}\n","import React from 'react'\nimport {faCircleCheck} from '@fortawesome/free-solid-svg-icons/faCircleCheck'\nimport {FontAwesomeIcon, FontAwesomeIconProps} from '@fortawesome/react-fontawesome'\n\ntype MemberCircleCheckIconProps = Pick<FontAwesomeIconProps, 'color'>\n\nexport const MemberCircleCheckIcon: React.VFC<MemberCircleCheckIconProps> = ({color}) => {\n return <FontAwesomeIcon icon={faCircleCheck} size={'2x'} color={color}/>\n}\n","import React from 'react'\nimport {FlexContainer} from '../../Atoms/Containers'\nimport {MBContentBodyItemDisabledTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBStepDivider} from '../../Atoms/Dividers'\nimport {Color} from '../../Styles'\nimport {MemberFilePenIcon} from '../../Atoms/Icons/MemberFilePenIcon'\nimport {MemberFileCircleCheckIcon} from '../../Atoms/Icons/MemberFileCircleCheckIcon'\nimport {MemberCircleCheckIcon} from '../../Atoms/Icons/MemberCheckCircleIcon'\n\ntype Steps =\n 'enter'\n | 'confirm'\n | 'complete'\n\ntype Activity =\n 'signup'\n | 'edit'\n | 'leave'\n\ninterface StepGuideProps {\n activity: Activity\n current: Steps\n}\n\nconst STEP_LISTS: { [activityKey: string]: StepListItemProps[] } = {\n 'signup': [\n {type: 'enter', name: '入力', className: 'step-enter'},\n {type: 'confirm', name: '確認', className: 'step-confirm'},\n {type: 'complete', name: '完了', className: 'step-complete'},\n ],\n 'edit': [\n {type: 'enter', name: '変更', className: 'step-enter'},\n {type: 'confirm', name: '確認', className: 'step-confirm'},\n {type: 'complete', name: '完了', className: 'step-complete'},\n ],\n 'leave': [\n {type: 'enter', name: '入力', className: 'step-enter'},\n {type: 'confirm', name: '確認', className: 'step-confirm'},\n {type: 'complete', name: '完了', className: 'step-complete'},\n ],\n}\n\nconst StepGuide: React.VFC<StepGuideProps> = (props) => {\n\n const stepPropList: StepListItemProps[] = STEP_LISTS[props.activity]\n\n return (\n <Spacer mb={'14px'}>\n <FlexContainer data-testid={'step-guide'} justifyContent={'center'} gap={'12px'}>\n {stepPropList.map((item, idx) =>\n <FlexContainer key={idx} alignItems={'center'} gap={'12px'}>\n {idx !== 0 && <MBStepDivider/>}\n <StepItem\n stepType={item.type}\n label={item.name}\n disable={props.current !== item.type}\n />\n </FlexContainer>,\n )}\n </FlexContainer>\n </Spacer>\n )\n}\n\n\ninterface StepListItemProps {\n type: Steps\n name: string\n className: string\n isCurrent?: boolean\n}\n\ntype StepItemProps = {\n stepType: Steps\n label: string\n disable: boolean\n}\nconst StepItem: React.VFC<StepItemProps> = (props) => {\n return (\n <FlexContainer alignItems={'center'} gap={'5px'}>\n {props.disable ? getDisabledIcon(props.stepType) : getIcon(props.stepType)}\n {props.disable ? (\n <MBContentBodyItemDisabledTypography>{props.label}</MBContentBodyItemDisabledTypography>\n ) : (\n <MBContentSubTitleTypography>{props.label}</MBContentSubTitleTypography>\n )}\n </FlexContainer>\n )\n}\n\nconst getIcon = (stepType: Steps): JSX.Element => {\n if (stepType === 'enter') {\n return <div data-testid={'file-pen-icon'}>\n <MemberFilePenIcon/>\n </div>\n }\n if (stepType === 'confirm') {\n return <div data-testid={'file-circle-check-icon'}>\n <MemberFileCircleCheckIcon/>\n </div>\n }\n return <div data-testid={'circle-check-icon'}>\n <MemberCircleCheckIcon/>\n </div>\n}\nconst getDisabledIcon = (stepType: Steps): JSX.Element => {\n if (stepType === 'enter') {\n return <div data-testid={'file-pen-disable-icon'}>\n <MemberFilePenIcon color={Color.Grey600}/>\n </div>\n }\n if (stepType === 'confirm') {\n return <div data-testid={'file-circle-check-disable-icon'}>\n <MemberFileCircleCheckIcon color={Color.Grey600}/>\n </div>\n }\n return <div data-testid={'circle-check-disable-icon'}>\n <MemberCircleCheckIcon color={Color.Grey600}/>\n </div>\n}\n\nexport default StepGuide\n","import React from 'react'\n\ntype Props = JSX.IntrinsicElements['p'] & {\n className?: never\n}\nexport const MessageForAction: React.VFC<Props> = (props) => {\n return <p {...props} className=\"text-em_01\">{props.children}</p>\n}\n","import React, {Fragment} from 'react'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {Spacer} from '../../../../Common/Components/Spacer'\n\ntype Props = {\n errors: string[]\n newLineByBr?: boolean\n style?: Record<string, unknown>\n}\n\nexport function ErrorDisplay(props: Props): Nullable<JSX.Element> {\n if (props.errors.length === 0) {\n return null\n }\n\n if (props.newLineByBr) {\n return (\n <Spacer mt={'10px'}>\n <span className=\"form-error-text\" style={props.style}>\n {props.errors.map((error, i, array) => {\n if (array.length - 1 === i) {\n return <Fragment key={i}>{error}</Fragment>\n }\n return <Fragment key={i}>{error}<br/></Fragment>\n })}\n </span>\n </Spacer>\n )\n }\n\n return <Spacer mt={'10px'}>\n {props.errors.map((error, i) => (\n <span key={i} className=\"form-error-text\" style={props.style}>\n {error}\n </span>\n ))}\n </Spacer>\n}\n","import React from 'react'\nimport {faMagnifyingGlass} from '@fortawesome/free-solid-svg-icons'\nimport {Color} from '../../Styles'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\n\nexport const MemberMagnifyingGlassIcon: React.VFC = () => {\n return <FontAwesomeIcon icon={faMagnifyingGlass} color={Color.Black}/>\n}\n","import React, {useCallback} from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../Styles'\nimport {FlexContainer} from './Containers'\nimport {MemberMagnifyingGlassIcon} from './Icons/MemberMagnifyingGlassIcon'\n\ntype MBSecondaryMiniBaseButtonProps = {\n label: string\n onClick: () => void\n testId?: string\n}\nconst StyledSecondaryMiniBaseButton = styled.button`\n padding: 4px 8px 4px 8px;\n box-sizing: border-box;\n font-size: 1.3rem;\n color: ${Color.Grey800};\n background: ${Color.White};\n border: solid 1px ${Color.Grey100};\n border-radius: 3px;\n box-shadow: 0 2px 3px 0 rgb(0 0 0 / 5%);\n @media (min-width: 769px) {\n &:focus {\n opacity: 0.6;\n }\n &:hover {\n opacity: 0.6;\n }\n }\n`\nconst MBSecondaryMiniBaseButton: React.VFC<MBSecondaryMiniBaseButtonProps> = (props) => {\n const handleClick = useCallback((e: React.MouseEvent): void => {\n const eventTarget = e.target as HTMLElement\n eventTarget.blur()\n props.onClick()\n }, [props.onClick])\n\n return (\n <StyledSecondaryMiniBaseButton\n data-testid={props.testId}\n onClick={(e): void => {handleClick(e)}}>\n {props.label}\n </StyledSecondaryMiniBaseButton>\n )\n}\n\nexport type MBDeleteButtonProps = Pick<MBSecondaryMiniBaseButtonProps, 'onClick' | 'testId'>\nexport const MBDeleteButton: React.VFC<MBDeleteButtonProps> = (props) => {\n return (<MBSecondaryMiniBaseButton testId={props.testId} label={'削除'} onClick={props.onClick}/>)\n}\n\nconst StyledExternalLinkButton = styled.a`\n cursor: pointer;\n font-size: 1.4rem;\n display: inline-block;\n text-decoration: none;\n width: 100%;\n max-width: 305px;\n padding: 14px 5px 13px;\n text-align: center;\n vertical-align: middle;\n color: ${Color.Grey800};\n border: solid 1px ${Color.Grey100};\n border-radius: 6px;\n background: ${Color.White};\n box-shadow: 0 2px 3px 0 rgba(0, 0, 0, .05);\n @media (min-width: 769px) {\n &:hover {\n opacity: 0.6;\n }\n }\n`\n\nexport type ExternalLinkButtonProps = {\n label: string\n url?: string\n}\nexport const ExternalLinkButton: React.VFC<ExternalLinkButtonProps> = (props) => {\n return <StyledExternalLinkButton href={props.url}>{props.label}</StyledExternalLinkButton>\n}\n\ntype LinkButtonProps = {\n fontSize?: number\n lineHeight?: number\n color?: string\n}\nexport const LinkButton = styled.a`\n font-size: ${({fontSize}: LinkButtonProps): number => fontSize ?? 1.3}rem;\n color: ${({color}: LinkButtonProps): string => color ?? Color.Grey800};\n line-height: ${({lineHeight}: LinkButtonProps): number => lineHeight ?? 1.8}rem;\n display: inline-block;\n text-decoration-line: underline;\n cursor: pointer;\n @media (min-width: 769px) {\n &:hover {\n opacity: 0.6;\n }\n }\n`\n\ntype MBSearchButtonProps = {\n testId?: string\n label: string\n onClick: () => void\n}\nconst StyledSearchButton = styled.button`\n margin-top: 0 !important;\n padding: 6px 23px 5px 14px;\n box-sizing: border-box;\n font-size: 1.3rem;\n color: ${Color.Grey800};\n background: ${Color.White};\n border: solid 1px ${Color.Grey100};\n border-radius: 3px;\n box-shadow: 0 2px 3px 0 rgb(0 0 0 / 5%);\n @media (min-width: 769px) {\n &:focus {\n opacity: 0.6;\n }\n &:hover {\n opacity: 0.6;\n }\n }\n`\nconst MBSearchButton: React.VFC<MBSearchButtonProps> = (props) => {\n return (\n <StyledSearchButton\n data-testid={props.testId ?? 'mb-search-button'}\n onClick={props.onClick}\n >\n <FlexContainer alignItems={'center'} justifyContent={'center'} gap={'9px'}>\n <MemberMagnifyingGlassIcon/>\n {props.label}\n </FlexContainer>\n </StyledSearchButton>\n )\n}\n\nexport type MBAddressSearchButtonProps = Pick<MBSearchButtonProps, 'onClick'>\nexport const MBAddressSearchButton: React.VFC<MBAddressSearchButtonProps> = (props) => {\n return (\n <MBSearchButton\n testId={'mb-address-search-button'}\n label={'住所検索'}\n onClick={props.onClick}\n />\n )\n}\n","import React from 'react'\nimport {ContractMethod, ContractTerm} from '../../../../Props/ContractInputInfo'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport dayjs from 'dayjs'\nimport {MBContentBodyTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {LinkButton} from '../../../Atoms/Buttons'\nimport {ColumnFlexContainer} from '../../../Atoms/Containers'\nimport {useTranslation} from 'react-i18next'\n\ntype ContractTermConfirmContentProps = {\n title: string\n term: ContractTerm\n contractMethod?: ContractMethod\n nextContractStartDate?: string\n}\n\nexport const ContractTermConfirmContent: React.VFC<ContractTermConfirmContentProps> = (\n {\n title,\n term,\n contractMethod,\n nextContractStartDate,\n },\n) => {\n return (\n <ContentBlock data-testid=\"block-contract-term-confirm\">\n <ContentTitle noMarginBottom={true}>{title}</ContentTitle>\n <Spacer my={'18px'}>\n <ColumnFlexContainer gap={'10px'}>\n <MBContentSubTitleTypography>契約期間</MBContentSubTitleTypography>\n <ContractTermContent\n term={term}\n contractMethod={contractMethod}\n nextContractStartDate={nextContractStartDate}\n />\n </ColumnFlexContainer>\n </Spacer>\n <MBContentBodyDivider/>\n </ContentBlock>\n )\n}\n\ntype ContractTermContentProps = Omit<ContractTermConfirmContentProps, 'title'>\nconst ContractTermContent: React.VFC<ContractTermContentProps> = (\n {\n term,\n contractMethod,\n nextContractStartDate,\n },\n) => {\n if (nextContractStartDate) {\n return (\n <ColumnFlexContainer gap={'6px'}>\n <ContractTermLabel term={term} contractMethod={contractMethod}/>\n <ContractDurationContent\n startDate={nextContractStartDate}\n endDate={nextContractEndDate(nextContractStartDate, term)}\n />\n </ColumnFlexContainer>\n )\n }\n\n const now: Date = new Date()\n return <div>\n <ColumnFlexContainer gap={'6px'}>\n <div>\n <ContractTermLabel term={term} contractMethod={contractMethod}/>\n <ContractDurationContent\n startDate={dayjs(now).format('YYYY/MM/DD')}\n endDate={nextContractEndDate(dayjs(now).format('YYYY/MM/DD'), term)}\n />\n </div>\n <ContractTermNoteContent contractMethod={contractMethod}/>\n </ColumnFlexContainer>\n </div>\n}\n\ntype ContractTermLabelProps = Pick<ContractTermContentProps, 'term' | 'contractMethod'>\nconst ContractTermLabel: React.VFC<ContractTermLabelProps> = (\n {\n term,\n contractMethod,\n },\n) => {\n return (\n <MBContentBodyTypography>\n {`${PAYMENT.TERMS[term].displayLabel}${getSubscriptionLabel(contractMethod)}`}\n </MBContentBodyTypography>\n )\n}\n\nconst getSubscriptionLabel = (method?: ContractMethod): string => {\n if (!method || method === 'none') {\n return ''\n }\n return method && PAYMENT.SUBSCRIPTION_LABEL[method]\n}\n\ntype ContractDurationContentProps = {\n startDate: string,\n endDate: string\n}\nconst ContractDurationContent: React.VFC<ContractDurationContentProps> = (\n {\n startDate,\n endDate,\n },\n) => {\n return <MBContentBodyTypography>{`${startDate} 〜 ${endDate}`}</MBContentBodyTypography>\n}\n\nconst nextContractEndDate = (nextContractStartDate: string, term: ContractTerm): string => {\n if (term === 'monthly') {\n return dayjs(nextContractStartDate).endOf('month').format('YYYY/MM/DD')\n }\n\n return dayjs(nextContractStartDate).add(11, 'month').endOf('month').format('YYYY/MM/DD')\n}\n\ntype ContractTermNoteContentProps = Pick<ContractTermContentProps, 'contractMethod'>\nconst ContractTermNoteContent: React.VFC<ContractTermNoteContentProps> = (\n {contractMethod},\n) => {\n const {t} = useTranslation('member')\n\n const cmsDomain: string = process.env.REACT_APP_CMS_DOMAIN ?? ''\n\n switch (contractMethod) {\n case 'credit_card':\n return (\n <ColumnFlexContainer gap={'4px'} data-testid={'credit-card-note-content'}>\n <MBContentNoteWithMarkTypography\n note={'実際の契約期間は、登録完了画面でご確認ください。'}\n />\n <MBContentNoteWithMarkTypography\n note={\n <>\n <span>{t('新規登録情報確認.契約単位.注記 バケット退会')}に関しては </span>\n <LinkButton\n href={t('新規登録情報確認.契約単位.注記リンク 有料バケット退会のFAQ', {cmsDomain})}\n target={'_blank'}\n fontSize={1.0}\n lineHeight={1.5}\n >\n こちら\n </LinkButton>\n <span> をご確認ください。</span>\n </>\n }\n />\n </ColumnFlexContainer>\n )\n case 'mobile_carrier':\n return (\n <ColumnFlexContainer gap={'4px'} data-testid={'mobile-carrier-note-content'}>\n <MBContentNoteWithMarkTypography note={'実際の契約期間は、登録完了画面でご確認ください。'}/>\n <MBContentNoteWithMarkTypography\n note={\n <>\n <span>{t('新規登録情報確認.契約単位.注記 バケット退会')}に関しては </span>\n <LinkButton\n href={t('新規登録情報確認.契約単位.注記リンク 有料バケット退会のFAQ', {cmsDomain})}\n target={'_blank'}\n fontSize={1.0}\n lineHeight={1.5}\n >\n こちら\n </LinkButton>\n <span> をご確認ください。</span>\n </>\n }\n />\n <div>\n <MBContentNoteWithMarkTypography\n note={'キャリア決済の場合、サービスメンテナンスのため以下の時間帯に退会および決済方法変更のお手続きできませんのでご注意ください。'}\n subNotes={[\n '月末日19:00 ~ 翌月1日23:59:59 ',\n '入会(キャリア決済へ支払い変更)日当日 〜 翌日1:00',\n ]}\n />\n </div>\n </ColumnFlexContainer>\n )\n case 'convenience_store':\n return (\n <ColumnFlexContainer gap={'4px'} data-testid={'convenience-store-note-content'}>\n <MBContentNoteWithMarkTypography\n note={'上記契約期間は本日中にお支払いの確認が完了した場合で、実際の契約期間はコンビニでお支払いいただいた月から11ヶ月後の月末日までとなります。'}\n />\n <MBContentNoteWithMarkTypography\n note={\n <>\n <span>{t('新規登録情報確認.契約単位.注記 バケット退会')}に関しては </span>\n <LinkButton\n href={t('新規登録情報確認.契約単位.注記リンク 有料バケット退会のFAQ', {cmsDomain})}\n target={'_blank'}\n fontSize={1.0}\n lineHeight={1.5}\n >\n こちら\n </LinkButton>\n <span> をご確認ください。</span>\n </>\n }\n />\n </ColumnFlexContainer>\n )\n default:\n return (\n <></>\n )\n }\n}\n","import {Nullable, Optional} from '../../Common/TypeHelper'\nimport {PaymentMethod} from '../DTO/PaymentMethodDTO'\nimport React from 'react'\nimport {LabelAndValue} from '../View/Components/PaymentsRelations/InputContentBlocks/MBMemberRadioListForContractTerm'\nimport {formatPrice} from '../../Common/Formatter'\nimport {PaymentInformation} from '../View/Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {MBMemberError} from '../Common/MBMemberError'\nimport {MBContentNoteTypography} from '../View/Atoms/Typographies'\n\nexport type NewCreditCardInputInfo = {\n cardNumber: string\n expireMonth: string\n expireYear: string\n holderName: string\n securityCode: string\n}\n\nexport type SecurityCodeForMyCreditCard = {\n cardId: string\n securityCode: string\n}\n\nexport type MyCreditCardInputInfo = {\n selectedCardId: string\n securityCodeMap: SecurityCodeForMyCreditCard[]\n}\n\nexport type CreditCardType = 'newCard' | 'myCard' | ''\n\nexport type CreditCardInfo = {\n creditCardType: CreditCardType\n newCreditCardInfo: NewCreditCardInputInfo\n myCreditCardInfo: MyCreditCardInputInfo\n}\n\nexport type MyCreditCardInfo = {\n cardId: string\n cardNumber: string\n expireDate: string\n}\n\nexport type UsingMyCreditCardInfo = MyCreditCardInfo & {\n isInUse: boolean\n}\n\nexport type MobileCarrierKey = 'docomo' | 'softbank' | 'au' | ''\n\nexport type MobileCarrierInfo = {\n carrierKey: MobileCarrierKey\n}\n\nexport type MobileCarrierNextInfo = MobileCarrierInfo & {\n isUnableToCancelContract: boolean\n}\n\nexport type ConvenienceStoreKey =\n 'lawson' |\n 'familymart' |\n 'ministop' |\n 'seicomart' |\n ''\n\nexport type ConvenienceStoreInfo = {\n convenienceStoreKey: ConvenienceStoreKey\n}\n\nexport type CvsContractInfo = {\n convenienceStoreKey: ConvenienceStoreKey\n paymentNumber: Nullable<string>\n paymentNumberLabel: Nullable<string>\n confirmationNumber: Nullable<string>\n confirmationNumberLabel: Nullable<string>\n paymentTerm: Nullable<string>\n paymentDetailUrl: Nullable<string>\n isPaymentAvailableTerm: boolean\n paymentAvailableOn: Nullable<string>\n}\n\nexport type PaymentInputDetail = {\n creditCard: CreditCardInfo\n mobileCarrier: MobileCarrierInfo\n convenienceStore: ConvenienceStoreInfo\n}\n\nexport type ContractTerm = 'monthly' | 'yearly' | 'permanent' | ''\n\nexport type ContractMethod = 'credit_card' | 'mobile_carrier' | 'convenience_store' | 'none'\n\nexport type ContractMethodInputInfo =\n CreditCardInputInfo\n | MobileCarrierInputInfo\n | ConvenienceStoreInputInfo\ntype CreditCardInputInfo = {\n method: 'credit_card'\n info: CreditCardInfo\n}\ntype MobileCarrierInputInfo = {\n method: 'mobile_carrier'\n info: MobileCarrierInfo\n}\ntype ConvenienceStoreInputInfo = {\n method: 'convenience_store'\n info: ConvenienceStoreInfo\n}\n\nexport type ContractInputInfo = {\n term: ContractTerm\n method: Optional<ContractMethod>\n amount: number\n} & PaymentInputDetail\n\nexport type ContractDate = {\n contractDate: string\n contractEndDate: string\n}\n\nexport type ContractInfoWithContractDate = Pick<ContractInputInfo,\n 'term' | 'method' | 'amount'> & {\n contractDate: ContractDate\n}\n\nexport interface MemberRegisterContractInfo {\n contractTerm: ContractTerm\n paymentMethod: ContractMethod\n creditCardExpireDate: string\n tokenList?: string[]\n}\n\nexport type MemberRegisterConvenienceStoreContractInfo = Pick<MemberRegisterContractInfo,\n 'contractTerm' | 'paymentMethod'> & {\n paymentMethodDetail: ConvenienceStoreKey\n}\n\nexport type MemberPreRegisterContractInfo = Pick<MemberRegisterContractInfo,\n 'contractTerm' | 'paymentMethod'> & {\n paymentMethodDetail: MobileCarrierKey\n}\n\nexport type MemberRegisterFreeBucketContractInfo = Pick<MemberRegisterContractInfo,\n 'paymentMethod' | 'contractTerm'>\n\nexport type PaymentInputDetailWithMethod = {\n method: Optional<ContractMethod>\n} & PaymentInputDetail\n\nexport type ContractInputInfoAll = {\n term: ContractTerm\n amount: number\n} & PaymentInputDetailWithMethod\n\nexport type ErrorMessagesBaseForContractInput = {\n invalidCardErrors: string[]\n paymentInputTermErrors: string[]\n paymentInputMethodErrors: string[]\n creditCardTypeErrors: string[]\n creditCardNumberErrors: string[]\n creditCardExpireMonthErrors: string[]\n creditCardExpireYearErrors: string[]\n creditCardFutureExpireDateErrors: string[]\n creditCardHolderNameErrors: string[]\n creditCardSecurityCodeErrors: string[]\n errorMyCreditCardId: string,\n myCreditCardSecurityCodeErrors: string[]\n convenienceStoreErrors: string[]\n mobileCarrierErrors: string[]\n}\n\nexport type ErrorMessagesBaseForContractInputExcludePaymentTerm =\n Omit<ErrorMessagesBaseForContractInput, 'paymentInputTermErrors'>\n\nexport type ErrorMessagesForPaymentMethodInput =\n Omit<ErrorMessagesBaseForContractInputExcludePaymentTerm, 'paymentInputMethodErrors'>\n\nexport type ErrorMessagesForSignupContract = Omit<ErrorMessagesBaseForContractInput,\n 'creditCardTypeErrors' |\n 'errorMyCreditCardId' |\n 'myCreditCardSecurityCodeErrors'>\n\nexport type ErrorMessagesForNewCreditCardInput = Pick<ErrorMessagesForPaymentMethodInput,\n 'invalidCardErrors' |\n 'creditCardNumberErrors' |\n 'creditCardExpireMonthErrors' |\n 'creditCardExpireYearErrors' |\n 'creditCardFutureExpireDateErrors' |\n 'creditCardHolderNameErrors' |\n 'creditCardSecurityCodeErrors'>\n\nexport type ErrorMessagesForContractEdit = ErrorMessagesBaseForContractInput & {\n isInputError: boolean\n}\n\nexport const findAmountByTermAndMethod = (\n paymentMethodList: Optional<PaymentMethod[]>, term: Optional<string>, method: Optional<string>,\n): number => {\n\n if (!paymentMethodList) {\n return 0\n }\n const foundPaymentMethod = paymentMethodList.find(\n item => item.method === method && item.term === term,\n )\n\n return foundPaymentMethod?.amount || 0\n}\n\nexport const DisplayCreditCardExpireDate = (props: { expireDate: string }): JSX.Element => {\n if (props.expireDate === '') return <></>\n\n return (\n <MBContentNoteTypography>\n {makeStringCreditCardExpireDate(props.expireDate)}\n </MBContentNoteTypography>\n )\n}\n\nexport const makeStringCreditCardExpireDate = (expireDate: string): string => {\n const expireMonth = expireDate.split('/')[0]\n const expireYear = expireDate.split('/')[1]\n\n if (!expireMonth || !expireYear) return ''\n\n return `(有効期限:${Number(expireMonth)}月/${expireYear}年)`\n}\n\nexport const getDefaultSecurityCodeMapForMyCreditCard = (\n myCreditCardInfoList: UsingMyCreditCardInfo[],\n): SecurityCodeForMyCreditCard[] => {\n if (!myCreditCardInfoList) {\n return []\n }\n\n return myCreditCardInfoList.map((myCreditCardInfo) => {\n return {cardId: myCreditCardInfo.cardId, securityCode: ''}\n })\n}\n\nexport const findSecurityCodeByCardIdForValidation = (\n myCreditCardInputInfo: MyCreditCardInputInfo,\n): Optional<string> => {\n\n return myCreditCardInputInfo.securityCodeMap\n .find(item => item.cardId === myCreditCardInputInfo.selectedCardId)?.securityCode\n}\n\nexport const generateContractTermLabelAndValueList =\n (\n paymentInformationList: PaymentInformation[],\n ): LabelAndValue[] => {\n if (paymentInformationList.length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n const sortedPaymentInformationList =\n [...paymentInformationList].sort((a, b) => a.order - b.order)\n\n const emptyArray: LabelAndValue[] = []\n return sortedPaymentInformationList\n .map(item => {\n return {\n label: `${item.termName}:${formatPrice(item.contractAmount)}円(税込)`,\n value: item.term,\n }\n })\n .reduce((accumulator, current) => {\n const alreadyExist =\n accumulator.some(item => (item.label === current.label && item.value === current.value))\n\n if (!alreadyExist) {\n accumulator.push(current)\n }\n return accumulator\n }, emptyArray)\n }\n\nexport const displayCardNumber = (\n selectedMyCardId: string,\n myCreditCardInfoList?: UsingMyCreditCardInfo[],\n tokenResponseCardNumber?: string,\n): string => {\n if (tokenResponseCardNumber) {\n return tokenResponseCardNumber\n }\n\n const selectedMyCardInfo = myCreditCardInfoList?.find(item => item.cardId === selectedMyCardId)\n if (!selectedMyCardInfo) {\n throw new MBMemberError('SystemError')\n }\n return selectedMyCardInfo.cardNumber\n}\n\nexport const findSelectedCardExpireDate = (\n cardType: CreditCardType,\n newCardExpireDate: string,\n selectedMyCardId: string,\n myCreditCardInfoList?: UsingMyCreditCardInfo[],\n): string => {\n if (cardType === 'newCard') {\n return newCardExpireDate\n }\n\n const selectedMyCardInfo = myCreditCardInfoList?.find(item => item.cardId === selectedMyCardId)\n if (!selectedMyCardInfo) {\n throw new MBMemberError('SystemError')\n }\n return selectedMyCardInfo.expireDate\n}\n\nexport const ErrorMessageForInvalidCard = (\n cardType: CreditCardType,\n isInvalidCardError?: boolean,\n): string[] => {\n if (isInvalidCardError) {\n if (cardType === 'newCard') {\n return ['入力いただいたクレジットカードは利用できません。']\n }\n\n return ['セキュリティーコードが誤っているか、選択いただいたクレジットカードは利用できません。']\n }\n\n return []\n}\n\nexport const getContractMethodsByTerm = (\n paymentList: PaymentMethod[],\n term: ContractTerm,\n): ContractMethod[] => Array.from(new Set(term === ''\n ? paymentList.map(payment => payment.method)\n : paymentList.filter(payment => payment.term === term).map(payment => payment.method),\n))\n\nexport const isFreeBucket = (paymentMethodList: Optional<PaymentMethod[]>): boolean => {\n if (!paymentMethodList) {\n return false\n }\n return paymentMethodList.some(payMethod => payMethod.method === 'none')\n}\n","import React from 'react'\nimport {MBSelect, MBSelectProps} from '../../../Common/Components/MBSelect'\nimport styled from '@emotion/styled'\nimport {Color} from '../Styles'\nimport selectorArrowIcon from '../../../img/bg-select.png'\n\nconst borderColor = ({hasError}: MBMemberSelectProps): string =>\n hasError ? Color.ErrorInputBorderColor : Color.Grey100\nconst focusBorderColor = ({hasError}: MBMemberSelectProps): string =>\n hasError ? Color.ErrorInputBorderColor : Color.Grey750\nconst backgroundColor = ({hasError}: MBMemberSelectProps): string =>\n hasError ? Color.ErrorInputBackgroundColor : Color.Grey40\nconst fontSize = ({fontSize}: MBMemberSelectProps): string => fontSize ? `${fontSize}` : '1.6'\nconst width = ({width}: MBMemberSelectProps): string => width ?? '100%'\n\nconst StyledSelect = styled(MBSelect)`\n font-size: ${fontSize}rem;\n line-height: inherit;\n padding: 4px 10px;\n margin: 0 5px 0;\n color: ${Color.Grey800};\n border: solid 1px ${borderColor};\n border-radius: 3px;\n background: url(${selectorArrowIcon}) right 5px top 15px no-repeat;\n background-color: ${backgroundColor};\n background-size: 10px 6px;\n width: ${width};\n\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n &:focus {\n border-color: ${focusBorderColor};\n outline: none;\n }\n\n &:first-of-type {\n margin-left: 0;\n }\n\n @media screen and (min-width: 769px) {\n font-size: 1.3rem;\n }\n`\n\ntype MBMemberSelectProps = MBSelectProps & {\n fontSize?: number\n width?: string\n}\nexport const MBMemberSelect: React.VFC<MBMemberSelectProps> = (props) => {\n return <StyledSelect {...props}>{props.children}</StyledSelect>\n}\n","import React from 'react'\n\nexport type MBSelectProps = JSX.IntrinsicElements['select'] & {\n hasError: boolean\n}\nexport const MBSelect: React.VFC<MBSelectProps> = (props) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {hasError, ...rest} = props\n return (\n <select{...rest}>{props.children}</select>\n )\n}\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../../../Styles'\n\nconst DEFAULT_COLOR = Color.Grey800\n\nexport type PIMBaseLabelProps = {\n children: React.ReactNode\n fontRemSize: number\n bold?: boolean\n color?: string\n lineHeight?: number\n}\n\nconst StyledDiv = styled.div`\n font-size: ${({fontRemSize}: PIMBaseLabelProps): number => fontRemSize}rem;\n font-weight: ${({bold}: PIMBaseLabelProps): string => bold ? 'bold' : 'normal'};\n color: ${({color}: PIMBaseLabelProps): string => color ?? DEFAULT_COLOR};\n line-height: ${({lineHeight}: PIMBaseLabelProps): number => lineHeight ?? 1};\n`\n\nexport const PIMBaseLabel: React.VFC<PIMBaseLabelProps> = (props) => {\n const {children, ...rest} = props\n\n return (\n <StyledDiv {...rest}>{children}</StyledDiv>\n )\n}\n","import React from 'react'\nimport {PIMBaseLabel} from './Bases/PIMBaseLabel'\nimport {Color} from '../../Styles'\n\nexport type PIMWarningMessagesProps = {\n messages: string[]\n}\n\nexport const PIMWarningMessages: React.VFC<PIMWarningMessagesProps> = (props) => {\n return (\n <>\n {props.messages.map((message, idx) => (\n <PIMBaseLabel\n key={`warning-message-${idx}`}\n fontRemSize={1.3}\n color={Color.Red500}\n lineHeight={1.5}\n >\n {message}\n </PIMBaseLabel>\n ))}\n </>\n )\n}\n","import {ConvenienceStoreInfo, ConvenienceStoreKey, ErrorMessagesForPaymentMethodInput} from '../../../../Props/ContractInputInfo'\nimport React from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBMemberSelect} from '../../../Atoms/MBMemberSelect'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {MBContentNoteWithMarkTypography} from '../../../Atoms/Typographies'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\n\nexport type ErrorMessageForConvenienceStoreInput =\n Pick<ErrorMessagesForPaymentMethodInput, 'convenienceStoreErrors'>\n\ntype ConvenienceStoreInputComponentForProps = {\n convenienceStoreInputInfo: ConvenienceStoreInfo\n errorMessage: ErrorMessageForConvenienceStoreInput\n onChangeInputDetailInfo: (changeInputDetailInfo: ConvenienceStoreInfo) => void\n}\n\n// noinspection SpellCheckingInspection\nexport const convenienceStoreList: { convenienceStoreKey: ConvenienceStoreKey, name: string }[] = [\n {convenienceStoreKey: 'lawson', name: 'ローソン'},\n {convenienceStoreKey: 'familymart', name: 'ファミリーマート'},\n {convenienceStoreKey: 'ministop', name: 'ミニストップ'},\n {convenienceStoreKey: 'seicomart', name: 'セイコーマート'},\n]\n\nexport const convenienceStoreKeyToName = (key: ConvenienceStoreKey): string => {\n return convenienceStoreList.find(cvs => cvs.convenienceStoreKey === key)?.name ?? ''\n}\n\nexport const ConvenienceStoreInputComponent: React.VFC<ConvenienceStoreInputComponentForProps>\n = (props) => {\n const convenienceStoreInfoState = props.convenienceStoreInputInfo\n || {\n convenienceStoreKey: '',\n } as ConvenienceStoreInfo\n\n function updateConvenienceStoreInfo(\n name: string, value: string, convenienceStoreInfo: ConvenienceStoreInfo,\n ): ConvenienceStoreInfo {\n return {\n ...convenienceStoreInfo,\n [name]: value,\n }\n }\n\n function handleChangeSelect(\n e: React.ChangeEvent<HTMLSelectElement>, convenienceStoreInfo: ConvenienceStoreInfo,\n ): ConvenienceStoreInfo {\n const {name, value} = e.target\n return updateConvenienceStoreInfo(name, value, convenienceStoreInfo)\n }\n\n return (\n <Spacer ml={'10%'} dataTestId={'block-input-convenience-store-information'}>\n <PIMStack spacing={'10px'}>\n <Spacer mt={'18px'}>\n <label htmlFor=\"payment-04\">お支払い先コンビニ</label>\n </Spacer>\n <div style={{maxWidth: '300px'}}>\n <MBMemberSelect\n id=\"payment-04\"\n name=\"convenienceStoreKey\"\n value={convenienceStoreInfoState.convenienceStoreKey}\n hasError={props.errorMessage.convenienceStoreErrors.length > 0}\n onChange={(e): void => {\n props.onChangeInputDetailInfo(\n handleChangeSelect(e, convenienceStoreInfoState),\n )\n }}\n >\n <option value=\"\" hidden disabled>選択してください</option>\n {convenienceStoreList.map((item) => (\n <option key={item.convenienceStoreKey} value={item.convenienceStoreKey}>\n {item.name}\n </option>\n ))}\n </MBMemberSelect>\n </div>\n {props.errorMessage.convenienceStoreErrors.length > 0 && (\n <Spacer mt={'12px'}>\n <PIMWarningMessages messages={props.errorMessage.convenienceStoreErrors}/>\n </Spacer>\n )}\n <PIMStack spacing={'4px'}>\n <MBContentNoteWithMarkTypography note={'コンビニ店頭でのお支払い後、入会が完了します。'}/>\n <MBContentNoteWithMarkTypography note={'お支払い完了から入会が完了するまでに時間がかかる場合があります。'}/>\n </PIMStack>\n </PIMStack>\n <Spacer mb={'18px'}/>\n </Spacer>\n )\n}\n","import React from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {formatDateTime, formatPrice} from '../../../../../Common/Formatter'\nimport {FlexContainer} from '../../../Atoms/Containers'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {MBContentBodyTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {Optional} from '../../../../../Common/TypeHelper'\nimport {ContractMethod, displayCardNumber, DisplayCreditCardExpireDate, findSelectedCardExpireDate, PaymentInputDetailWithMethod, UsingMyCreditCardInfo} from '../../../../Props/ContractInputInfo'\nimport {convenienceStoreKeyToName} from '../InputContentBlocks/ConvenienceStoreInputComponent'\nimport dayjs from 'dayjs'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\n\ntype ContractPaymentMethodConfirmContentProps = {\n title: string\n amount: number\n method: Optional<ContractMethod>\n methodDetail: MethodDetailProps\n isTakeover?: boolean\n}\n\nexport const ContractPaymentMethodConfirm:\n React.VFC<ContractPaymentMethodConfirmContentProps> = (\n {\n title,\n amount,\n method,\n methodDetail,\n isTakeover,\n },\n) => {\n const isEditContractToCvs = method === 'convenience_store'\n && methodDetail.paymentInputDetailWithMethod.convenienceStore.convenienceStoreKey === ''\n\n return (\n <ContentBlock data-testid=\"block-contract-payment-method-confirm\">\n <ContentTitle noMarginBottom={true}>{title}</ContentTitle>\n <Spacer mt={'18px'} mb={'10px'}>\n <MBContentSubTitleTypography>お支払い金額</MBContentSubTitleTypography>\n </Spacer>\n <Spacer mb={'18px'}>\n <MBContentBodyTypography>{`${formatPrice(amount)}円(税込)`}</MBContentBodyTypography>\n </Spacer>\n <MBContentBodyDivider/>\n <Spacer mt={'18px'} mb={'10px'}>\n <MBContentSubTitleTypography>お支払い方法</MBContentSubTitleTypography>\n </Spacer>\n <Spacer mb={'18px'}>\n {\n method &&\n <MBContentBodyTypography>\n {PAYMENT.METHODS_FOR_RADIO_LABEL[method]}\n </MBContentBodyTypography>\n }\n {\n !isEditContractToCvs &&\n <FlexContainer alignItems={'baseline'}>\n <MethodDetail\n paymentInputDetailWithMethod={methodDetail.paymentInputDetailWithMethod}\n myCreditCardInfoList={methodDetail.myCreditCardInfoList}\n maskedCardNo={methodDetail.maskedCardNo}\n />\n </FlexContainer>\n }\n </Spacer>\n {(method === 'convenience_store' && !isEditContractToCvs)\n && <CvsDetail isTakeover={isTakeover}/>}\n <MBContentBodyDivider/>\n </ContentBlock>\n )\n}\n\nexport type MethodDetailProps = {\n paymentInputDetailWithMethod: PaymentInputDetailWithMethod,\n myCreditCardInfoList: UsingMyCreditCardInfo[],\n maskedCardNo?: string,\n}\n\nconst MethodDetail: React.VFC<MethodDetailProps> = (props) => {\n const {method, creditCard, mobileCarrier, convenienceStore} = props.paymentInputDetailWithMethod\n switch (method) {\n case 'credit_card':\n return (\n <>\n <MBContentBodyTypography>{\n displayCardNumber(\n creditCard.myCreditCardInfo.selectedCardId,\n props.myCreditCardInfoList,\n props.maskedCardNo,\n )\n }</MBContentBodyTypography>\n <DisplayCreditCardExpireDate expireDate={\n findSelectedCardExpireDate(\n creditCard.creditCardType,\n creditCard.newCreditCardInfo.expireMonth +\n '/' + creditCard.newCreditCardInfo.expireYear,\n creditCard.myCreditCardInfo.selectedCardId,\n props.myCreditCardInfoList,\n )}/>\n </>\n )\n case 'mobile_carrier':\n return (<>\n <MBContentBodyTypography>決済キャリア:{mobileCarrier.carrierKey}</MBContentBodyTypography>\n </>)\n case 'convenience_store':\n return (<MBContentBodyTypography>\n お支払い先コンビニ:{convenienceStoreKeyToName(convenienceStore.convenienceStoreKey)}\n </MBContentBodyTypography>)\n default:\n return (<></>)\n }\n}\n\nexport type CvsDetailProps = { isTakeover?: boolean }\nconst CvsDetail: React.VFC<CvsDetailProps> = (props) => {\n const paymentDue = calculatePaymentDue(props.isTakeover)\n\n return (<>\n <MBContentBodyDivider/>\n <PIMStack spacing={'10px'}>\n <Spacer mt={'18px'}>\n <MBContentSubTitleTypography>お支払い期限</MBContentSubTitleTypography>\n </Spacer>\n <MBContentBodyTypography>{formatDateTime(paymentDue)}</MBContentBodyTypography>\n <MBContentNoteWithMarkTypography note={\n 'お申し込みの時間によってはお支払い期限が変わる場合がありますので、実際のお支払い期限は登録完了画面でご確認ください。'\n }/>\n </PIMStack>\n <Spacer mb={'18px'}/>\n </>)\n}\nconst calculatePaymentDue = (isTakeover?: boolean): dayjs.Dayjs => {\n // この値はサーバ側の GmoApiClientForConvenienceStore.DEFAULT_PAYMENT_TERM_DAY と協調して修正する\n const DEFAULT_PAYMENT_TERM_DAY = 2\n\n const now = dayjs()\n const termDaysLater\n = now.add(DEFAULT_PAYMENT_TERM_DAY, 'd').set('h', 23).set('m', 59)\n\n return (isTakeover && now.month() !== termDaysLater.month())\n ? now.endOf('month').set('h', 23).set('m', 59)\n : termDaysLater\n}\n","import {Optional} from '../../Common/TypeHelper'\nimport {MemberPreRegisterContractInfo} from '../Props/ContractInputInfo'\nimport {EnrollmentReasonSelectedInfo} from '../View/Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\nimport {ExtendMetaDataInputInfo} from './ExtendMetaDataDTO'\n\nexport interface PreMemberRegisterInformation {\n invitationId: string\n familyName: string\n firstName: string\n familyNameKana: string\n firstNameKana: string\n gender: string\n birthday: string\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding?: string\n phoneMobile?: string\n phoneTel?: string\n password: string\n agreementIdCheckedList: number[]\n mailMagazineIdCheckedList: number[]\n contractInfo: MemberPreRegisterContractInfo\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>,\n extendMetaData?: ExtendMetaDataInputInfo\n}\n\nexport class PreMemberRegisterInformationDTO implements PreMemberRegisterInformation {\n invitationId: string\n familyName: string\n firstName: string\n familyNameKana: string\n firstNameKana: string\n gender: string\n birthday: string\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding?: string\n phoneMobile?: string\n phoneTel?: string\n password: string\n agreementIdCheckedList: number[]\n mailMagazineIdCheckedList: number[]\n contractInfo: MemberPreRegisterContractInfo\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>\n extendMetaData?: ExtendMetaDataInputInfo\n\n constructor(\n invitationId: string,\n familyName: string, firstName: string,\n familyNameKana: string, firstNameKana: string,\n gender: string,\n birthday: string,\n postCode: string,\n addressPrefectureCode: string,\n addressCity: string, addressStreet: string, addressBuilding: Optional<string>,\n phoneMobile: Optional<string>, phoneTel: Optional<string>,\n password: string,\n agreementIdCheckedList: number[],\n mailMagazineIdCheckedList: number[],\n contractInfo: MemberPreRegisterContractInfo,\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>,\n extendMetaData?: ExtendMetaDataInputInfo,\n ) {\n this.invitationId = invitationId\n this.familyName = familyName\n this.firstName = firstName\n this.familyNameKana = familyNameKana\n this.firstNameKana = firstNameKana\n this.gender = gender\n this.birthday = birthday\n this.postCode = postCode\n this.addressPrefectureCode = addressPrefectureCode\n this.addressCity = addressCity\n this.addressStreet = addressStreet\n this.addressBuilding = addressBuilding\n this.phoneMobile = phoneMobile\n this.phoneTel = phoneTel\n this.password = password\n this.agreementIdCheckedList = agreementIdCheckedList\n this.mailMagazineIdCheckedList = mailMagazineIdCheckedList\n this.contractInfo = contractInfo\n this.enrollmentReason = enrollmentReason\n this.extendMetaData = extendMetaData\n }\n}\n","import React from 'react'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {formatPostCode} from '../../../../../Common/Components/PostCodeInformation'\nimport {ADDRESS} from '../../../../../Common/Constants'\nimport {Address} from '../../../../DTO/MemberAddressDTO'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\n\nexport const AddressConfirms: React.VFC<Address> = (\n {\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n },\n) => {\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <ConfirmContent\n label={'郵便番号'} values={[formatPostCode(postCode) || '']}\n testDataId={'confirm-content-post-code'}\n />\n <ConfirmContent\n label={'都道府県'} values={[ADDRESS.PREFECTURES[addressPrefectureCode ?? '']]}\n testDataId={'confirm-content-address-prefecture'}\n />\n <ConfirmContent\n label={'市区町村'} values={[addressCity ?? '']}\n testDataId={'confirm-content-address-city'}\n />\n <ConfirmContent\n label={'以降の住所'} values={[addressStreet ?? '']}\n testDataId={'confirm-content-address-street'}\n />\n <ConfirmContent\n label={'建物・部屋'} values={[addressBuilding ?? '']}\n testDataId={'confirm-content-address-building'}\n />\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {Nullable} from '../../../Common/TypeHelper'\n\ntype PhoneInformationProps = {\n mobile?: Nullable<string>\n home?: Nullable<string>\n}\n\nexport const PhoneInformation: React.VFC<PhoneInformationProps> = ({mobile, home}) => {\n if (mobile && home) {\n return <>(携帯) {mobile}<br/>(固定) {home}</>\n }\n if (mobile) {\n return <>(携帯) {mobile}</>\n }\n if (home) {\n return <>(固定) {home}</>\n }\n\n return <></>\n}\n","import React from 'react'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {AddressConfirms} from './AddressConfirms'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {PhoneInformation} from '../../../../Utils/Validations/PhoneInformation'\nimport {ContactAddress} from '../../../../DTO/MemberAddressDTO'\n\nexport const ContactAddressConfirmContents: React.VFC<ContactAddress> = (\n {\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n phoneMobile,\n phoneTel,\n },\n): JSX.Element => (\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n <AddressConfirms\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n />\n <div data-testid={'confirm-content-phone'}>\n <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>電話番号</MBContentSubTitleTypography>\n <div>\n <MBContentBodyTypography>\n <PhoneInformation mobile={phoneMobile} home={phoneTel}/>\n </MBContentBodyTypography>\n </div>\n </PIMStack>\n </div>\n </PIMStack>\n)\n","import React from 'react'\nimport {EnrollmentReasonInfo} from '../../../DTO/BucketHeader'\nimport {EnrollmentReasonSelectedInfo} from '../InputContentBlocks/EnrollmentReasonSelectContentBlock'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {MBListItem, MBUnorderedList} from '../../Atoms/Lists/MBList'\nimport {MBContentBodyTypography} from '../../Atoms/Typographies'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {useTranslation} from 'react-i18next'\n\ntype EnrollmentReasonConfirmContentBlockProps = {\n enrollmentReasonInfoList: Optional<EnrollmentReasonInfo[]>\n enrollmentReasonSelectedInfo: Optional<EnrollmentReasonSelectedInfo>\n}\nexport const EnrollmentReasonConfirmContentBlock:\n React.VFC<EnrollmentReasonConfirmContentBlockProps> = (\n {\n enrollmentReasonInfoList,\n enrollmentReasonSelectedInfo,\n },\n) => {\n const {t} = useTranslation('member')\n\n if (!enrollmentReasonInfoList\n || enrollmentReasonInfoList.length === 0\n || !enrollmentReasonSelectedInfo) {\n return <></>\n }\n\n const getEnrollmentReasonInfo = enrollmentReasonInfoList.find(enrollmentReasonInfo =>\n enrollmentReasonInfo.id ===\n enrollmentReasonSelectedInfo.enrollmentReasonId,\n )\n\n return (\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: t('新規登録情報確認.入会動機.見出し')}}\n testId={'block-enrollment-reason-confirm'}\n pb={'20px'}\n >\n <MBUnorderedList>\n <MBListItem>\n <MBContentBodyTypography>\n {getEnrollmentReasonInfo?.label ?? ''}\n </MBContentBodyTypography>\n </MBListItem>\n </MBUnorderedList>\n </PIMCard>\n </PIMStack>\n </Spacer>\n )\n}\n","import React from 'react'\nimport {ExtendMetaData, ExtendMetaDataInputInfo, ExtendMetaDataItem} from '../../../../DTO/ExtendMetaDataDTO'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\n\ntype ExtendMetaDataConfirmBlockProps = {\n extendMetaData: ExtendMetaData[]\n extendMetaDataInputInfo: ExtendMetaDataInputInfo\n}\nexport const ExtendMetaDataConfirmBlock: React.VFC<ExtendMetaDataConfirmBlockProps> = (\n {extendMetaData, extendMetaDataInputInfo},\n) => {\n return (<>\n {extendMetaData.map((block, idx) =>\n <PIMCard\n headerProps={{title: block.header}}\n key={idx}\n testId={`block-confirm-extend-meta-data-${idx}`}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n {block.items.map(item =>\n <PIMStack spacing={'10px'} key={`confirm-area-${item.id}`}>\n {block.items.length > 1 &&\n <MBContentSubTitleTypography>{item.label}</MBContentSubTitleTypography>}\n <MBContentBodyTypography>\n {getDisplayText(item, extendMetaDataInputInfo[item.id])}\n </MBContentBodyTypography>\n </PIMStack>,\n )}\n </PIMStack>\n </PIMCard>,\n )}\n </>)\n}\n\nconst getDisplayText = (\n extendMetaDataItem: ExtendMetaDataItem,\n inputValue: number | string | undefined,\n): string => {\n switch (extendMetaDataItem.type) {\n case 'singleSelect':\n return extendMetaDataItem.options.find(option => option.id === inputValue)?.label ?? ''\n case 'singleText':\n return inputValue?.toString() ?? ''\n default:\n return ''\n }\n}\n","import React, {useCallback, useEffect, useState} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport MemberRegisterInformationDTO from '../../../DTO/MemberRegisterInformationDTO'\nimport {MemberInfoForConfirmPage} from '../../../Props/MemberRegisterPageLocationStates'\nimport {MailMagazine} from '../../../DTO/MailMagazineDTO'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {RegisterOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {BasicMemberInfoConfirmContents} from '../../Components/ConfirmContentBlocks/BasicMemberInfoConfirmContents'\nimport {ContractInfoWithContractDate, ContractInputInfo, ContractMethod, ContractTerm, ConvenienceStoreInfo, CreditCardInfo, MemberRegisterContractInfo, MemberRegisterConvenienceStoreContractInfo, MemberRegisterFreeBucketContractInfo} from '../../../Props/ContractInputInfo'\nimport {PAYMENT} from '../../../../Common/Constants'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {TokenResponse, useGmo} from '../../Hooks/UseGmo'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {ContractTermConfirmContent} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractTermConfirmContent'\nimport {ContractPaymentMethodConfirm} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractPaymentMethodConfirm'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PreMemberRegisterInformationDTO} from '../../../DTO/PreMemberRegisterInformationDTO'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {BucketRegisterResponseDataDTO, FreeBucketRegisterResponseDataDTO, isFreeBucketContract} from '../../../DTO/BucketRegisterResponseDataDTO'\nimport {CvsContractDTO, isCvsContract} from '../../../DTO/CvsContractDTO'\nimport {ContactAddressConfirmContents} from '../../Components/ConfirmContentBlocks/AddressConfirms/ContactAddressConfirmContents'\nimport {EnrollmentReasonConfirmContentBlock} from '../../Components/ConfirmContentBlocks/EnrollmentReasonConfirmContentBlock'\nimport {useTranslation} from 'react-i18next'\nimport {ExtendMetaData, ExtendMetaDataInputInfo} from '../../../DTO/ExtendMetaDataDTO'\nimport {ExtendMetaDataConfirmBlock} from './Components/ExtendMetaDataConfirmBlock'\n\ntype MembersSignupInputConfirmPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport type SignupInputConfirmPageLocationState = {\n memberInfo: MemberInfoForConfirmPage,\n signboard: Signboard,\n paymentMethodList: PaymentMethod[],\n contractInputInfo: ContractInputInfo\n extendMetaData: ExtendMetaData[]\n extendMetaDataInputInfo?: ExtendMetaDataInputInfo\n}\n\nexport const MembersSignupInputConfirmPage: React.VFC<MembersSignupInputConfirmPageProps> =\n (props) => {\n const {t} = useTranslation('member')\n\n const scriptUrl: Optional<string> = process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_URL\n const timeout: Optional<number> =\n parseInt(process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_TIMEOUT ?? '5000', 10)\n\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n\n const [tokenResponse, setTokenResponse] = useState<TokenResponse>()\n\n if (!scriptUrl) {\n throw new MBMemberError('SystemError')\n }\n const [loading, error, gmo] = useGmo(scriptUrl)\n\n const location = useLocation<SignupInputConfirmPageLocationState>()\n const locationState: SignupInputConfirmPageLocationState = location.state\n\n const [gmoTimeoutErrorFlg, setGmoTimeoutErrorFlg] = useState(false)\n\n const throwMBMemberError = useMBMemberError()\n\n useEffect(() => {\n if (!locationState?.contractInputInfo) {\n return\n }\n\n if (gmo) {\n if (locationState.contractInputInfo.method !== 'credit_card') {\n return\n }\n if (!locationState.contractInputInfo.creditCard) {\n return\n }\n\n const shopCode = locationState.signboard.shopId\n if (!shopCode) {\n throw new MBMemberError('SystemError')\n }\n\n const {cardNumber, expireMonth, expireYear, holderName, securityCode} =\n locationState.contractInputInfo.creditCard.newCreditCardInfo\n\n gmo.init(shopCode)\n\n const timeoutId = setTimeout(() => {\n setGmoTimeoutErrorFlg(true)\n }, timeout)\n\n gmo.getToken({\n tokennumber: 2,\n cardno: cardNumber,\n expire: expireYear.slice(-2) + expireMonth,\n securitycode: securityCode,\n holdername: holderName,\n }, (result: TokenResponse) => {\n clearTimeout(timeoutId)\n setTokenResponse(result)\n })\n }\n }, [gmo])\n\n const goToMembersRegisteredPage = useCallback(async (): Promise<void> => {\n setProcessing(true)\n const {term, method, amount, creditCard, mobileCarrier, convenienceStore}\n = locationState.contractInputInfo\n\n if (method === 'credit_card' || method === 'convenience_store' || method === 'none') {\n await props.memberRepo.postCreateMember(new MemberRegisterInformationDTO(\n locationState.memberInfo.invitationId,\n locationState.memberInfo.familyName,\n locationState.memberInfo.firstName,\n locationState.memberInfo.familyNameKana,\n locationState.memberInfo.firstNameKana,\n locationState.memberInfo.gender,\n locationState.memberInfo.birthday,\n locationState.memberInfo.postCode,\n locationState.memberInfo.addressPrefectureCode,\n locationState.memberInfo.addressCity,\n locationState.memberInfo.addressStreet,\n locationState.memberInfo.addressBuilding,\n locationState.memberInfo.phoneMobile,\n locationState.memberInfo.phoneTel,\n locationState.memberInfo.password,\n locationState.memberInfo.agreedIdList,\n locationState.memberInfo.mailMagazineIdCheckedList,\n getRegisterContractInfo(method, term, creditCard, tokenResponse, convenienceStore),\n locationState.memberInfo.enrollmentReasonSelectedInfo,\n locationState.extendMetaDataInputInfo,\n )).then((resultCreateMember) => {\n switch (resultCreateMember.status) {\n case CommonResponseStatus.Created:\n setErrorMessages([])\n if (!resultCreateMember.data) {\n throw new MBMemberError('SystemError')\n }\n gotoMembersRegisteredPage(\n props, locationState, resultCreateMember.data, term, method, amount)\n break\n case CommonResponseStatus.BadRequest:\n if (resultCreateMember.errorMessageList !== null &&\n resultCreateMember.errorMessageList.length !== 0) {\n setProcessing(false)\n setErrorMessages(resultCreateMember.errorMessageList)\n }\n break\n case CommonResponseStatus.Conflict:\n throw new MBMemberError('Conflict')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.InvalidCreditCard:\n props.navigator.backToMembersSignupInputPageCauseCreditCardError(\n locationState.memberInfo,\n locationState.signboard,\n locationState.paymentMethodList,\n locationState.contractInputInfo,\n locationState.extendMetaData,\n locationState.extendMetaDataInputInfo,\n )\n break\n case CommonResponseStatus.PaymentSystemError:\n throw new MBMemberError('SystemError')\n default:\n throw new MBMemberError('ServerError')\n }\n }).catch((e) => {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n })\n }\n\n if (method === 'mobile_carrier') {\n await props.memberRepo.postCreatePreMember(\n new PreMemberRegisterInformationDTO(\n locationState.memberInfo.invitationId,\n locationState.memberInfo.familyName,\n locationState.memberInfo.firstName,\n locationState.memberInfo.familyNameKana,\n locationState.memberInfo.firstNameKana,\n locationState.memberInfo.gender,\n locationState.memberInfo.birthday,\n locationState.memberInfo.postCode,\n locationState.memberInfo.addressPrefectureCode,\n locationState.memberInfo.addressCity,\n locationState.memberInfo.addressStreet,\n locationState.memberInfo.addressBuilding,\n locationState.memberInfo.phoneMobile,\n locationState.memberInfo.phoneTel,\n locationState.memberInfo.password,\n locationState.memberInfo.agreedIdList,\n locationState.memberInfo.mailMagazineIdCheckedList,\n {\n contractTerm: term,\n paymentMethod: method,\n paymentMethodDetail: mobileCarrier.carrierKey,\n },\n locationState.memberInfo.enrollmentReasonSelectedInfo,\n locationState.extendMetaDataInputInfo,\n )).then((resultCreatePreMember) => {\n switch (resultCreatePreMember.status) {\n case CommonResponseStatus.Created:\n setErrorMessages([])\n if (!resultCreatePreMember.data) {\n throw new MBMemberError('SystemError')\n }\n\n props.navigator.goToMembersSignupMobileCarrierTransitionPage({\n ...resultCreatePreMember.data,\n })\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(resultCreatePreMember.errorMessageList)\n break\n case CommonResponseStatus.Conflict:\n throw new MBMemberError('Conflict')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.PaymentSystemError:\n throw new MBMemberError('SystemError')\n default:\n throw new MBMemberError('ServerError')\n }\n }).catch((e) => {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n })\n\n }\n }, [\n props.memberRepo,\n locationState.memberInfo,\n locationState.contractInputInfo,\n locationState.extendMetaDataInputInfo,\n tokenResponse,\n ])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n if (locationState.contractInputInfo.method === 'credit_card') {\n if (gmoTimeoutErrorFlg) {\n throw new MBMemberError('SystemError')\n }\n\n if (error) {\n throw new MBMemberError('SystemError')\n }\n if (loading) {\n return null\n }\n if (!gmo) {\n return null\n }\n\n if (!tokenResponse) {\n return null\n }\n }\n\n const {\n memberInfo, signboard, contractInputInfo,\n extendMetaData, extendMetaDataInputInfo,\n } = locationState\n const {\n mail, familyName, familyNameKana, firstName, firstNameKana,\n postCode, addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n gender, birthday, phoneTel, phoneMobile, mailMagazineIdCheckedList,\n enrollmentReasonSelectedInfo,\n } = memberInfo\n const {term, amount, method} = contractInputInfo\n\n const registerButtonLabel = locationState.contractInputInfo.method === 'mobile_carrier' ?\n '決済に進む' : '確定・登録する'\n\n return (\n <MembersPageTemplate hideFooterNavi={true}>\n <PageTitle>{`${signboard.signupName} 新規登録情報確認`}</PageTitle>\n\n <StepGuide activity={'signup'} current={'confirm'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisterOrganizationContentBlock\n signboard={signboard}\n title={t('新規登録情報確認.入会バケット情報.見出し')}\n paymentInformationList={[{\n isFreeBucket: method === 'none',\n termName: PAYMENT.TERMS[term].displayLabel,\n contractAmount: amount,\n order: PAYMENT.TERMS[term].order,\n term: term,\n }]}\n />\n </PIMStack>\n </Spacer>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <BasicMemberInfoConfirmContents\n topMessage={\n ['登録はまだ完了していません。', '下記内容を確認してください。']\n }\n mail={mail}\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n gender={gender}\n birthday={birthday}\n />\n </PIMStack>\n </Spacer>\n\n <ContentBlock data-testid={'block-confirms'}>\n <ContentTitle>{t('新規登録情報確認.連絡先情報.見出し')}</ContentTitle>\n <PIMStack spacing={'18px'}>\n <ContentTopMessage>\n 登録はまだ完了していません。<br/>下記内容を確認してください。\n </ContentTopMessage>\n <MBContentBodyDivider/>\n <ContactAddressConfirmContents\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n phoneMobile={phoneMobile}\n phoneTel={phoneTel}\n />\n </PIMStack>\n </ContentBlock>\n\n {(extendMetaData.length > 0 && extendMetaDataInputInfo !== undefined) &&\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <ExtendMetaDataConfirmBlock\n extendMetaData={extendMetaData}\n extendMetaDataInputInfo={extendMetaDataInputInfo}\n />\n </PIMStack>\n </Spacer>\n }\n\n <MailMagazineSelectedList\n mailMagazineIdCheckedList={mailMagazineIdCheckedList}\n mailMagazineList={signboard.mailMagazineList}\n />\n\n <EnrollmentReasonConfirmContentBlock\n enrollmentReasonInfoList={signboard.mainService.enrollmentReasonList}\n enrollmentReasonSelectedInfo={enrollmentReasonSelectedInfo}\n />\n\n {method !== 'none' && (<>\n <ContractTermConfirmContent title={'契約単位'} term={term} contractMethod={method}/>\n\n <ContractPaymentMethodConfirm\n title={'お支払い方法'}\n amount={amount}\n method={method}\n methodDetail={{\n paymentInputDetailWithMethod: contractInputInfo,\n myCreditCardInfoList: [],\n maskedCardNo: tokenResponse?.tokenObject.maskedCardNo,\n }}\n />\n </>)}\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n {`『${registerButtonLabel}』ボタンを押してください。`}\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-register-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToMembersRegisteredPage()}\n >\n {registerButtonLabel}\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => {\n props.navigator.goBack()\n }}>\n 登録情報入力に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n }\n\nconst MailMagazineSelectedList = (\n props:\n {\n mailMagazineIdCheckedList: number[],\n mailMagazineList: MailMagazine[]\n },\n): JSX.Element => {\n if (props.mailMagazineList.length === 0) {\n return <></>\n }\n\n const selectedMailMagazineNames = props.mailMagazineList\n .filter((item) => props.mailMagazineIdCheckedList.includes(item.id))\n\n return <ContentBlock data-testid={'block-mail-magazine'}>\n <ContentTitle>メルマガ</ContentTitle>\n {\n props.mailMagazineIdCheckedList.length === 0\n ? <p className=\"\">メルマガのご希望はありません</p>\n : <ul className=\"list-disc_01 fts15\">\n {selectedMailMagazineNames.map(item => <li key={item.id}>{item.name}</li>)}\n </ul>\n }\n </ContentBlock>\n}\n\nconst isInvalidLocationState = (\n locationState: SignupInputConfirmPageLocationState,\n): boolean => {\n if (!locationState) {\n return true\n }\n if (!locationState?.memberInfo) {\n return true\n }\n if (!locationState?.signboard) {\n return true\n }\n if (!locationState?.contractInputInfo) {\n return true\n }\n\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n addressBuilding, phoneMobile, phoneTel, enrollmentReasonSelectedInfo,\n ...rest\n } = locationState.memberInfo\n return Object.values(rest).some(value => value === undefined)\n}\n\nconst getRegisterContractInfo = (\n method: ContractMethod,\n term: ContractTerm,\n creditCard?: CreditCardInfo,\n tokenResponse?: TokenResponse,\n convenienceStore?: ConvenienceStoreInfo,\n): MemberRegisterContractInfo\n | MemberRegisterConvenienceStoreContractInfo\n | MemberRegisterFreeBucketContractInfo => {\n if (method === 'convenience_store') {\n return {\n contractTerm: term,\n paymentMethod: 'convenience_store',\n paymentMethodDetail: convenienceStore!.convenienceStoreKey,\n }\n } else if (method === 'none') {\n return {\n contractTerm: term,\n paymentMethod: 'none',\n }\n } else {\n return {\n contractTerm: term,\n paymentMethod: 'credit_card',\n creditCardExpireDate:\n `${creditCard?.newCreditCardInfo.expireMonth}/${creditCard?.newCreditCardInfo.expireYear}`,\n tokenList: tokenResponse?.tokenObject.token,\n }\n }\n}\n\nconst gotoMembersRegisteredPage = (\n props: MembersSignupInputConfirmPageProps,\n locationState: SignupInputConfirmPageLocationState,\n data: BucketRegisterResponseDataDTO | CvsContractDTO | FreeBucketRegisterResponseDataDTO,\n term: string,\n method: string,\n amount: number,\n): void => {\n if (isCvsContract(data)) {\n props.navigator.goToMembersRegisteredPageForConvenienceStore(\n locationState.memberInfo,\n locationState.signboard,\n data,\n {\n term: term,\n method: method,\n amount: amount,\n contractDate: {\n contractDate: data.contractDate,\n contractEndDate: data.contractEndDate,\n },\n } as ContractInfoWithContractDate,\n )\n } else if (isFreeBucketContract(data)) {\n props.navigator.goToMembersRegisteredPageForFreeBucket(\n locationState.memberInfo,\n locationState.signboard,\n data.bucketMemberIdList,\n )\n } else {\n props.navigator.goToMembersRegisteredPageForCreditCard(\n locationState.memberInfo,\n locationState.signboard,\n data.bucketMemberIdList, {\n term: term,\n method: method,\n amount: amount,\n contractDate: {\n contractDate: data.contractDate,\n contractEndDate: data.contractEndDate,\n },\n } as ContractInfoWithContractDate,\n )\n }\n}\n","import React from 'react'\nimport {faCircleArrowRight} from '@fortawesome/free-solid-svg-icons/faCircleArrowRight'\nimport {Color} from '../../Styles'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport Black = Color.Black\n\nexport const MemberCircleArrowRightIcon: React.VFC = () => {\n return <FontAwesomeIcon icon={faCircleArrowRight} size={'lg'} color={Black}/>\n}\n","import {FlexContainer} from '../Atoms/Containers'\nimport {LinkButton} from '../Atoms/Buttons'\nimport React from 'react'\nimport {MemberCircleArrowRightIcon} from '../Atoms/Icons/MemberCircleArrowRightIcon'\n\nexport type LinkIconTextProps = {\n href?: string\n onClick?: () => void\n children: React.ReactNode\n dataTestId?: string\n}\n\nexport const LinkIconText: React.VFC<LinkIconTextProps> = (props) => (\n <FlexContainer alignItems={'center'} justifyContent={'center'} gap={'5px'}>\n <MemberCircleArrowRightIcon/>\n <LinkButton data-testid={props.dataTestId} href={props.href} onClick={props.onClick}>\n {props.children}\n </LinkButton>\n </FlexContainer>\n)\n","import React from 'react'\nimport {ContractMethod, CvsContractInfo, DisplayCreditCardExpireDate, MobileCarrierKey} from '../../../../Props/ContractInputInfo'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {Optional} from '../../../../../Common/TypeHelper'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {convenienceStoreKeyToName} from '../InputContentBlocks/ConvenienceStoreInputComponent'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {LinkIconText} from '../../../Molecules/LinkIconText'\nimport {ColumnFlexContainer} from '../../../Atoms/Containers'\n\ntype ConfirmContractDetailContentProps = {\n label: string\n method: Optional<ContractMethod>\n cardNumber?: string\n cardExpireDate?: string\n carrierKey?: MobileCarrierKey\n cvsInfo?: CvsContractInfo\n testDataId?: string\n}\n\nexport const ConfirmContractDetailContent: React.VFC<ConfirmContractDetailContentProps> =\n (props: ConfirmContractDetailContentProps) => {\n const {cvsInfo} = props\n const showCvsPaymentInfo = isShowCvsPaymentInfo(cvsInfo)\n\n return (\n <PIMStack spacing={'10px'} testId={props.testDataId}>\n <MBContentSubTitleTypography>{props.label}</MBContentSubTitleTypography>\n {props.method && (\n <div>\n <MBContentBodyTypography>\n {PAYMENT.METHODS_FOR_RADIO_LABEL[props.method]}\n </MBContentBodyTypography>\n {(props.cardNumber !== undefined && props.cardExpireDate !== undefined) && (\n <PIMStack direction={'row'} alignItems={'baseline'}>\n <MBContentBodyTypography>{props.cardNumber}</MBContentBodyTypography>\n <DisplayCreditCardExpireDate expireDate={props.cardExpireDate}/>\n </PIMStack>\n )}\n {props.carrierKey && (\n <MBContentBodyTypography>{`決済キャリア:${props.carrierKey}`}</MBContentBodyTypography>\n )}\n {cvsInfo &&\n <div>\n {cvsInfo.convenienceStoreKey !== '' &&\n <MBContentBodyTypography>\n {`お支払い先コンビニ:${convenienceStoreKeyToName(cvsInfo.convenienceStoreKey)}`}\n </MBContentBodyTypography>\n }\n {showCvsPaymentInfo && <>\n <MBContentBodyTypography>\n {`${cvsInfo.paymentNumberLabel}:${cvsInfo.paymentNumber}`}\n </MBContentBodyTypography>\n <MBContentBodyTypography>\n {`${cvsInfo.confirmationNumberLabel}:${cvsInfo.confirmationNumber}`}\n </MBContentBodyTypography>\n <MBContentBodyTypography>\n {`お支払い期限:${cvsInfo.paymentTerm}`}\n </MBContentBodyTypography>\n {cvsInfo.paymentDetailUrl !== null &&\n <ColumnFlexContainer alignItems={'center'} gap={'10px'}>\n <ConfirmContent\n label={''}\n values={['下記リンクよりお支払い方法をご確認ください。']}\n />\n <LinkIconText\n href={cvsInfo.paymentDetailUrl}\n dataTestId={'confirm-content-cvs-payment-detail'}\n >\n {`${convenienceStoreKeyToName(cvsInfo.convenienceStoreKey)}でのお支払い方法について`}\n </LinkIconText>\n </ColumnFlexContainer>\n }\n </>}\n </div>\n }\n </div>\n )}\n </PIMStack>\n )\n }\n\nconst isShowCvsPaymentInfo = (cvsInfo?: CvsContractInfo): boolean =>\n cvsInfo !== undefined\n && cvsInfo.paymentNumber !== null\n && cvsInfo.paymentNumberLabel !== null\n && cvsInfo.confirmationNumber !== null\n && cvsInfo.confirmationNumberLabel !== null\n && cvsInfo.paymentTerm !== null\n && cvsInfo.paymentDetailUrl !== null\n","import React, {useCallback} from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../../../Styles'\n\nexport type PIMPrimaryButtonProps = {\n children: React.ReactNode\n onClick: React.MouseEventHandler<HTMLButtonElement>\n disabled?: boolean\n testId?: string\n}\n\nconst getBackgroundStyle = ({disabled}: PIMPrimaryButtonProps): string => (\n disabled ? `${Color.PrimaryButtonDisabledColor}` : `${Color.PrimaryButtonColor}`\n)\nconst getBorderStyle = ({disabled}: PIMPrimaryButtonProps): string => (\n disabled ? `solid 1px ${Color.PrimaryButtonDisabledColor}` : `solid 1px ${Color.PrimaryButtonColor}`\n)\nconst getColorStyle = ({disabled}: PIMPrimaryButtonProps): string => (\n disabled ? `rgba(255, 255, 255, 0.4)` : `${Color.White}`\n)\nconst getOpacityStyle = ({disabled}: PIMPrimaryButtonProps): number => disabled ? 0.4 : 1\nconst getPointerEventsStyle = ({disabled}: PIMPrimaryButtonProps): string => (\n disabled ? 'none' : 'auto'\n)\n\nconst StyledButton = styled.button`\n width: 100%;\n max-width: 305px;\n height: 47px;\n background: ${getBackgroundStyle};\n border: ${getBorderStyle};\n border-radius: 6px;\n box-shadow: 0 2px 3px 0 rgba(0, 0, 0, .05);\n padding: 0 16px;\n font-size: 1.6rem;\n font-weight: bold;\n color: ${getColorStyle};\n opacity: ${getOpacityStyle};\n pointer-events: ${getPointerEventsStyle};\n @media (min-width: 769px) {\n &:focus {\n opacity: 0.6;\n }\n &:hover {\n opacity: 0.6;\n }\n }\n`\n\nexport const PIMPrimaryButton: React.VFC<PIMPrimaryButtonProps> = (props) => {\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n const eventTarget = e.target as HTMLElement\n eventTarget.blur()\n props.onClick(e)\n }, [props.onClick],\n )\n\n return (\n <StyledButton\n data-testid={props.testId}\n onClick={handleClick}\n disabled={props.disabled}\n >\n {props.children}\n </StyledButton>\n )\n}\n","import React from 'react'\nimport {formatPrice} from '../../../../../Common/Formatter'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {ContractInfoWithContractDate, CvsContractInfo, MobileCarrierInfo, MyCreditCardInfo} from '../../../../Props/ContractInputInfo'\nimport {ConfirmContractDetailContent} from './ConfirmContractDetailContent'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PIMPrimaryButton} from '../../../Atoms/Buttons/Bases/PIMPrimaryButton'\nimport {PIMPageActions} from '../../../Atoms/Layouts/PIMPageActions'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyItemWarningMessageTypography} from '../../../Atoms/Typographies'\n\ninterface ContractInformationContentBlockProps {\n title: string\n contractInfoWithContractDate: ContractInfoWithContractDate\n cardInfo?: MyCreditCardInfo\n carrierInfo?: MobileCarrierInfo\n cvsInfo?: CvsContractInfo\n editButtonProps?: { buttonName: string, onClick: () => void, disabled?: boolean }\n cvsPaymentButton?: React.ReactNode\n dataTestId?: string\n}\n\nexport const ContractInformationContentBlock: React.VFC<ContractInformationContentBlockProps> = (\n props,\n) => {\n const {term, amount, contractDate, method} = props.contractInfoWithContractDate\n const isCvs = props.contractInfoWithContractDate.method === 'convenience_store'\n\n return (\n <ContentBlock data-testid={props.dataTestId}>\n <PIMStack spacing={'18px'}>\n <ContentTitle noMarginBottom={true}>{props.title}</ContentTitle>\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n <ConfirmContent\n label={'契約期間'}\n values={[\n `${PAYMENT.TERMS[term].displayLabel}${isCvs ? '' : '(自動課金継続)'}`,\n `${contractDate.contractDate} 〜 ${contractDate.contractEndDate}`,\n ]}\n />\n <ConfirmContent\n label={'お支払い金額'}\n values={\n [`${formatPrice(amount)}円(税込)`]\n }\n />\n <ConfirmContractDetailContent\n label={'お支払い方法'}\n method={method}\n cardNumber={props.cardInfo?.cardNumber}\n cardExpireDate={props.cardInfo?.expireDate}\n carrierKey={props.carrierInfo?.carrierKey}\n cvsInfo={props.cvsInfo}\n testDataId={'block-card-info'}\n />\n </PIMStack>\n </PIMStack>\n\n {\n (props.carrierInfo && props.editButtonProps) &&\n <Spacer mt={'25px'} dataTestId={'carrier-notice-message'}>\n <PIMStack alignItems={'center'} justifyContent={'center'} spacing={'10px'}>\n <MBContentBodyItemWarningMessageTypography>\n {'※以下の時間帯はサービスメンテナンスのため、契約変更のお手続きできませんのでご注意ください。'}\n </MBContentBodyItemWarningMessageTypography>\n <MBContentBodyItemWarningMessageTypography>\n {'月末日19:00 ~ 翌月1日23:59:59\\n入会(キャリア決済へ支払い変更)日当日 〜 翌日1:00'}\n </MBContentBodyItemWarningMessageTypography>\n </PIMStack>\n </Spacer>\n }\n\n {props.cvsPaymentButton}\n\n {(props.editButtonProps) && (\n <Spacer mt={'25px'}>\n <PIMPageActions>\n <PIMPrimaryButton\n testId={'contract-edit-button'}\n disabled={props.editButtonProps?.disabled}\n onClick={(): void => {\n if (props.editButtonProps?.onClick) props.editButtonProps.onClick()\n }}\n >\n {props.editButtonProps.buttonName}\n </PIMPrimaryButton>\n </PIMPageActions>\n </Spacer>\n )}\n </ContentBlock>\n )\n}\n","import React, {Fragment} from 'react'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ConfirmContent} from '../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {useTranslation} from 'react-i18next'\n\n\ntype Props = {\n title: string\n topMessage: string[]\n mail: string\n familyName: string\n firstName: string\n}\n\nexport function RegisteredMemberInfoContents(props: Props): JSX.Element {\n const {t} = useTranslation('member')\n\n const displayTopMessage = (): Nullable<JSX.Element> => {\n if (props.topMessage.length === 0) {\n return null\n }\n\n return <ContentTopMessage data-testid={'basic-info-top-message'}>\n {props.topMessage?.map((message, i) => {\n return <Fragment key={i}>{message}<br/></Fragment>\n })}\n </ContentTopMessage>\n }\n\n return (\n <ContentBlock data-testid={'block-registered-information'}>\n <PIMStack spacing={'18px'}>\n <ContentTitle noMarginBottom={true}>{props.title}</ContentTitle>\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n {displayTopMessage()}\n <ConfirmContent\n label={'お名前'} values={[`${props.familyName} ${props.firstName} さん`]}\n />\n <ConfirmContent\n label={t('新規登録完了.登録情報.ラベル メールアドレス')} values={[props.mail]}\n />\n </PIMStack>\n </PIMStack>\n </ContentBlock>\n )\n}\n","import React from 'react'\nimport {formatPrice} from '../../../../../Common/Formatter'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {ContractInfoWithContractDate} from '../../../../Props/ContractInputInfo'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {CvsContract} from '../../../../DTO/CvsContractDTO'\nimport {Signboard} from '../../../../DTO/SignboardDTO'\nimport {MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {convenienceStoreKeyToName} from '../InputContentBlocks/ConvenienceStoreInputComponent'\nimport {Color} from '../../../Styles'\nimport {LinkIconText} from '../../../Molecules/LinkIconText'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\n\ninterface CvsPaymentInfoContentBlockProps {\n title: string\n contractInfoWithContractDate: ContractInfoWithContractDate\n cvsContract: CvsContract\n signboard: Signboard\n dataTestId?: string\n}\n\nexport const CvsPaymentInfoContentBlock: React.VFC<CvsPaymentInfoContentBlockProps> = (\n props\n) => {\n const {term, amount, contractDate} = props.contractInfoWithContractDate\n const {\n convenienceStoreKey,\n paymentNumberLabel,\n paymentNumber,\n confirmationNumber,\n confirmationNumberLabel,\n paymentTerm,\n paymentDetailUrl\n } = props.cvsContract\n const {signupName} = props.signboard\n\n const cvsName = convenienceStoreKeyToName(convenienceStoreKey)\n\n return (\n <ContentBlock data-testid={props.dataTestId}>\n <PIMStack spacing={'18px'}>\n <ContentTitle noMarginBottom={true}>{props.title}</ContentTitle>\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>\n {signupName}への入会手続きありがとうございます!\n </MBContentSubTitleTypography>\n <MBContentSubTitleTypography>\n お支払いいただく際に下記の情報が必要となりますので、お控えください。\n </MBContentSubTitleTypography>\n </PIMStack>\n <ConfirmContent\n label={'お支払い先コンビニ'}\n values={[cvsName]}\n />\n <ConfirmContent\n label={paymentNumberLabel}\n values={[paymentNumber]}\n />\n <ConfirmContent\n label={confirmationNumberLabel}\n values={[confirmationNumber]}\n />\n <ConfirmContent\n label={'お支払い金額'}\n values={[`${formatPrice(amount)}円(税込)`]}\n />\n <ConfirmContent\n label={'お支払い期限'}\n values={[paymentTerm]}\n valueColor={Color.Red500}\n />\n <PIMStack spacing={'10px'}>\n <ConfirmContent\n label={'契約期間'}\n values={[\n `${PAYMENT.TERMS[term].displayLabel}(更新する場合は手続きが必要です)`,\n `${contractDate.contractDate} 〜 ${contractDate.contractEndDate}`,\n ]}\n />\n <MBContentNoteWithMarkTypography note={'実際の契約期間はコンビニでお支払いいただいた月から11ヶ月後の月末日までとなります。'}/>\n </PIMStack>\n <PIMStack spacing={'10px'}>\n <ConfirmContent\n label={'お支払い方法'}\n values={['下記リンクよりお支払い方法をご確認ください。']}\n />\n <LinkIconText href={paymentDetailUrl}>\n {`${cvsName}でのお支払い方法について`}\n </LinkIconText>\n <Spacer mt={'0'}/>\n </PIMStack>\n </PIMStack>\n </PIMStack>\n </ContentBlock>\n )\n}\n","import BucketHeader from '../../../DTO/BucketHeader'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport React from 'react'\nimport {Line} from '../../Atoms/Line'\n\ntype BucketMemberIdContentProps = {\n bucketHeader: BucketHeader\n bucketMemberIdList: BucketMemberId[]\n}\nexport const BucketMemberIdContent: React.VFC<BucketMemberIdContentProps> = (\n {\n bucketHeader,\n bucketMemberIdList,\n },\n) => {\n const bucketMemberId = bucketMemberIdList.find(\n bucketMemberId => bucketMemberId.bucketId === bucketHeader.id)\n\n return !bucketMemberId || !bucketMemberId.bucketMemberId\n ? <></>\n : (\n <Line data-test-id={`bucket-member-id${bucketMemberId.bucketId}`}>\n 会員番号:{bucketMemberId.bucketMemberId}\n </Line>\n )\n}\n","import React from 'react'\nimport {MBListItem, MBUnorderedList} from '../../Atoms/Lists/MBList'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {Line} from '../../Atoms/Line'\nimport BucketHeader from '../../../DTO/BucketHeader'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport {BucketMemberIdContent} from './BucketMemberIdContent'\n\ntype SignedUpServiceListContentProps = {\n signedUpBucketHeaderList: BucketHeader[]\n bucketMemberIdList: BucketMemberId[]\n testId?: string\n}\n\nexport const SignedUpServiceListContent: React.VFC<SignedUpServiceListContentProps> = (\n {\n signedUpBucketHeaderList,\n bucketMemberIdList,\n testId,\n },\n) => {\n return (\n <MBUnorderedList data-testid={testId}>\n {signedUpBucketHeaderList.map(bucketHeader =>\n <MBListItem key={bucketHeader.id}>\n <MBContentSubTitleTypography>\n <Line>{bucketHeader.name}</Line>\n <BucketMemberIdContent\n bucketHeader={bucketHeader}\n bucketMemberIdList={bucketMemberIdList}\n />\n </MBContentSubTitleTypography>\n </MBListItem>,\n )}\n </MBUnorderedList>\n )\n}\n","import React from 'react'\nimport BucketHeader from '../../../DTO/BucketHeader'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {SignedUpServiceListContent} from './SignedUpServiceListContent'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {useTranslation} from 'react-i18next'\n\ntype RegisteredFreeServiceContentBlockProps = {\n freeServices: BucketHeader[],\n bucketMemberIdList: BucketMemberId[]\n}\nexport const RegisteredFreeServiceContentBlock:\n React.VFC<RegisteredFreeServiceContentBlockProps> = (\n {\n freeServices,\n bucketMemberIdList,\n },\n) => {\n const {t} = useTranslation('member')\n if (freeServices.length === 0 || bucketMemberIdList.length === 0) return null\n\n const signedUpFreeServiceList = getSignupFreeBucketList(freeServices, bucketMemberIdList)\n if (signedUpFreeServiceList.length === 0) return null\n\n return (\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: t('新規登録完了.入会バケット情報.無料バケット情報.見出し')}}\n testId={'block-registered-free-services-content'}\n pb={'24px'}\n >\n <SignedUpServiceListContent\n signedUpBucketHeaderList={signedUpFreeServiceList}\n bucketMemberIdList={bucketMemberIdList}\n testId={'signed-up-free-service-list-content'}\n />\n </PIMCard>\n </PIMStack>\n </Spacer>)\n}\n\n\nexport const getSignupFreeBucketList = (\n freeServices: BucketHeader[],\n bucketMemberIdList: BucketMemberId[],\n): BucketHeader[] => {\n return freeServices.filter(bucketHeader =>\n bucketMemberIdList.find(bucketMemberId => bucketHeader.id === bucketMemberId.bucketId))\n}\n","import React from 'react'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {MBContentBodyItemWarningMessageTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {BorderedContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport BucketHeader from '../../../DTO/BucketHeader'\nimport {RegisterOrganizationContentBlockProps} from './RegisterOrganizationContentBlock'\nimport {SignedUpServiceListContent} from './SignedUpServiceListContent'\nimport {getSignupFreeBucketList} from './RegisteredFreeServiceContentBlock'\nimport {useTranslation} from 'react-i18next'\n\ntype RegisteredOrganizationContentBlockProps =\n Pick<RegisterOrganizationContentBlockProps, 'signboard' | 'title'> & {\n bucketMemberIdList: BucketMemberId[]\n isCvsPayment?: boolean\n}\n\nexport const RegisteredOrganizationContentBlock:\n React.VFC<RegisteredOrganizationContentBlockProps> = (\n {\n signboard,\n title,\n bucketMemberIdList,\n isCvsPayment,\n },\n) => {\n return (\n <PIMCard\n headerProps={{title: title, logoUrl: signboard.logoImgUrl}}\n testId={'block-registered-organization'}\n pb={'24px'}\n >\n <SignedUpServiceListContent\n signedUpBucketHeaderList={[signboard.mainService]}\n bucketMemberIdList={bucketMemberIdList}\n testId={'block-registered-organization-main-service'}\n />\n <CvsPaymentBlock signboard={signboard} isCvsPayment={isCvsPayment}/>\n <FreeBucketsBlock\n freeServices={signboard.freeServices}\n bucketMemberIdList={bucketMemberIdList}\n isCvsPayment={isCvsPayment}\n />\n </PIMCard>\n )\n}\n\ntype CvsPaymentBlockProps = {\n signboard: Signboard,\n isCvsPayment?: boolean\n}\n\nconst CvsPaymentBlock: React.VFC<CvsPaymentBlockProps> = (\n props,\n) => {\n const {signboard, isCvsPayment = false} = props\n\n return isCvsPayment ? (\n <Spacer mt={'10px'}>\n <MBContentBodyItemWarningMessageTypography>\n コンビニ店頭で年会費をお支払い完了後、{signboard.mainService.name}への入会が完了します。\n </MBContentBodyItemWarningMessageTypography>\n <Spacer mt={'10px'}>\n <MBContentNoteWithMarkTypography note={'決済確認には最大1日程度お時間がかかる場合があります。'}/>\n </Spacer>\n </Spacer>\n ) : null\n}\n\ntype FreeBucketsBlockProps = {\n freeServices: BucketHeader[],\n bucketMemberIdList: BucketMemberId[]\n isCvsPayment?: boolean\n}\nconst FreeBucketsBlock: React.VFC<FreeBucketsBlockProps> = (\n {\n freeServices,\n bucketMemberIdList,\n isCvsPayment,\n },\n) => {\n const {t} = useTranslation('member')\n\n if (freeServices.length === 0 || bucketMemberIdList.length === 0 || isCvsPayment) return null\n\n const signupFreeBucketList = getSignupFreeBucketList(freeServices, bucketMemberIdList)\n\n if (signupFreeBucketList.length === 0) return null\n\n return <Spacer mt={'24px'}>\n <BorderedContentBlock data-testid={'block-registered-organization-free-services'}>\n <PIMStack spacing={2}>\n <MBContentSubTitleTypography>\n {t('新規登録情報確認.入会バケット情報.無料付帯バケット.見出し')}\n </MBContentSubTitleTypography>\n <SignedUpServiceListContent\n signedUpBucketHeaderList={signupFreeBucketList}\n bucketMemberIdList={bucketMemberIdList}\n />\n </PIMStack>\n </BorderedContentBlock>\n </Spacer>\n}\n","import React from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {MemberInfoForCompletePage} from '../../../Props/MemberRegisterPageLocationStates'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {ContractInfoWithContractDate, ContractMethod} from '../../../Props/ContractInputInfo'\nimport {ContractInformationContentBlock} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractInformationContentBlock'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {RegisteredMemberInfoContents} from '../../Components/CompleteContentBlocks/RegisteredMemberInfoContents'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {CvsContract} from '../../../DTO/CvsContractDTO'\nimport {CvsPaymentInfoContentBlock} from '../../Components/PaymentsRelations/ConfirmContentBlocks/CvsPaymentInfoContentBlock'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport {RegisteredOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisteredOrganizationContentBlock'\nimport {RegisteredFreeServiceContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisteredFreeServiceContentBlock'\nimport {useTranslation} from 'react-i18next'\n\ntype LocationStateCommon = {\n contractMethod?: ContractMethod\n memberInfo: MemberInfoForCompletePage\n signboard: Signboard\n contractInfoForCompletePage: ContractInfoWithContractDate\n bucketMemberIdList: BucketMemberId[]\n}\n\nexport type MembersRegisteredPageLocationState = LocationStateCommon & {\n contractMethod: 'credit_card' | 'mobile_carrier'\n}\n\nexport type MembersRegisteredPageCvsLocationState = LocationStateCommon & {\n contractMethod: 'convenience_store'\n cvsContract: CvsContract\n}\n\nexport type MembersRegisteredPageFreeBucketLocationState =\n Omit<LocationStateCommon, 'contractInfoForCompletePage'> & {\n contractMethod: 'none'\n}\n\nexport const MembersRegisteredPage: React.VFC = () => {\n const location = useLocation<MembersRegisteredPageLocationState\n | MembersRegisteredPageCvsLocationState\n | MembersRegisteredPageFreeBucketLocationState>()\n if (!location?.state?.contractMethod) throw new MBMemberError('InvalidOperation')\n\n const locationState = location.state\n switch (locationState.contractMethod) {\n case 'credit_card':\n case 'mobile_carrier':\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n return <MembersRegisteredPageInner locationState={locationState}/>\n case 'convenience_store':\n return <MembersRegisteredPageForCvs locationState={locationState}/>\n case 'none':\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n return <MembersRegisteredPageForFreeBucket locationState={locationState}/>\n default:\n throw new MBMemberError('InvalidOperation')\n }\n}\n\ntype MembersRegisteredPageInnerProps = {\n locationState: MembersRegisteredPageLocationState\n}\n\nconst MembersRegisteredPageInner: React.VFC<MembersRegisteredPageInnerProps> = (\n props,\n) => {\n const {locationState} = props\n const {t} = useTranslation('member')\n\n const {memberInfo, signboard, bucketMemberIdList, contractInfoForCompletePage} = locationState\n return (\n <MembersPageTemplate>\n <PageTitle>{signboard.signupName + ' 新規登録完了'}</PageTitle>\n\n <StepGuide activity={'signup'} current={'complete'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisteredOrganizationContentBlock\n signboard={signboard}\n title={t('新規登録完了.入会バケット情報.見出し')}\n bucketMemberIdList={bucketMemberIdList}\n />\n </PIMStack>\n </Spacer>\n\n <ContractInformationContentBlock\n title={'契約情報'}\n contractInfoWithContractDate={contractInfoForCompletePage}\n dataTestId={'block-contract-info'}\n />\n\n <RegisteredMemberInfoContents\n title={t('新規登録完了.登録情報.見出し')}\n topMessage={[t('新規登録完了.登録情報.説明'), '以下の内容で登録しました。']}\n mail={memberInfo.mail}\n familyName={memberInfo.familyName}\n firstName={memberInfo.firstName}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${signboard.signupReturnPageInfo.name}に移動する`}\n url={signboard.signupReturnPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (\n locationState: MembersRegisteredPageLocationState | MembersRegisteredPageFreeBucketLocationState,\n): boolean => {\n if (!locationState?.signboard?.signupName) {\n return true\n }\n if (!locationState?.memberInfo?.mail) {\n return true\n }\n if (!locationState?.memberInfo?.familyName) {\n return true\n }\n if (!locationState?.memberInfo?.firstName) {\n return true\n }\n if (!(locationState.contractMethod === 'none')) {\n if (!locationState.bucketMemberIdList) {\n return true\n }\n // noinspection RedundantIfStatementJS\n if (!locationState?.contractInfoForCompletePage) {\n return true\n }\n }\n return false\n}\n\ntype MembersRegisteredPageForCvsProps = {\n locationState: MembersRegisteredPageCvsLocationState\n}\n\nconst MembersRegisteredPageForCvs: React.VFC<MembersRegisteredPageForCvsProps> = (\n props,\n) => {\n const {locationState} = props\n const {t} = useTranslation('member')\n\n if (!locationState.cvsContract\n || !locationState.memberInfo?.mail\n || !locationState.memberInfo?.familyName\n || !locationState.memberInfo?.firstName\n || !locationState.contractInfoForCompletePage\n || !locationState.signboard?.signupName\n || !locationState.signboard?.signupReturnPageInfo?.name\n || !locationState.signboard?.signupReturnPageInfo?.url\n ) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {\n memberInfo,\n signboard,\n contractInfoForCompletePage,\n cvsContract,\n bucketMemberIdList,\n } = locationState\n\n return (\n <MembersPageTemplate>\n <PageTitle>{signboard.signupName + ' 新規登録完了'}</PageTitle>\n\n <StepGuide activity={'signup'} current={'complete'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisteredOrganizationContentBlock\n signboard={signboard}\n title={t('新規登録完了.入会バケット情報.見出し コンビニ')}\n bucketMemberIdList={bucketMemberIdList}\n isCvsPayment={true}\n />\n </PIMStack>\n </Spacer>\n\n <CvsPaymentInfoContentBlock\n title={'お支払い情報'}\n contractInfoWithContractDate={contractInfoForCompletePage}\n dataTestId={'block-contract-info'}\n cvsContract={cvsContract}\n signboard={signboard}\n />\n\n <RegisteredFreeServiceContentBlock\n freeServices={signboard.freeServices}\n bucketMemberIdList={bucketMemberIdList}\n />\n\n <RegisteredMemberInfoContents\n title={t('新規登録完了.登録情報.見出し')}\n topMessage={[t('新規登録完了.登録情報.説明'), '以下の内容で登録しました。']}\n mail={memberInfo.mail}\n familyName={memberInfo.familyName}\n firstName={memberInfo.firstName}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${signboard.signupReturnPageInfo.name}に移動する`}\n url={signboard.signupReturnPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n\ntype MembersRegisteredPageForFreeBucketProps = {\n locationState: MembersRegisteredPageFreeBucketLocationState\n}\nconst MembersRegisteredPageForFreeBucket: React.VFC<MembersRegisteredPageForFreeBucketProps> = (\n {\n locationState,\n },\n) => {\n const {memberInfo, signboard, bucketMemberIdList} = locationState\n const {t} = useTranslation('member')\n return (\n <MembersPageTemplate>\n <PageTitle>{signboard.signupName + ' 新規登録完了'}</PageTitle>\n\n <StepGuide activity={'signup'} current={'complete'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisteredOrganizationContentBlock\n signboard={signboard}\n title={t('新規登録完了.入会バケット情報.見出し')}\n bucketMemberIdList={bucketMemberIdList}\n />\n </PIMStack>\n </Spacer>\n\n <RegisteredMemberInfoContents\n title={t('新規登録完了.登録情報.見出し')}\n topMessage={[t('新規登録完了.登録情報.説明'), '以下の内容で登録しました。']}\n mail={memberInfo.mail}\n familyName={memberInfo.familyName}\n firstName={memberInfo.firstName}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${signboard.signupReturnPageInfo.name}に移動する`}\n url={signboard.signupReturnPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useEffect} from 'react'\nimport {useParams} from 'react-router-dom'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {CommonResponseDTO, CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {InvitationInfoDTO} from '../../../DTO/InvitationInfoDTO'\nimport BucketHeader from '../../../DTO/BucketHeader'\n\ntype MembersSignupRedirectPageProps = {\n navigator: NavigatorForMemberPage\n repo: MemberRepo\n}\n\nconst MembersSignupRedirectPage: React.VFC<MembersSignupRedirectPageProps> = (\n {\n navigator,\n repo,\n },\n) => {\n const {invitationId} = useParams<{ invitationId: string }>()\n\n useEffect(() => {\n const fetchData = async (): Promise<CommonResponseDTO<Nullable<InvitationInfoDTO>>> => {\n const memberSignupInfoDTO: CommonResponseDTO<Nullable<InvitationInfoDTO>>\n = await repo.getInvitationInfo(invitationId)\n\n if (memberSignupInfoDTO.status !== 'OK') {\n throw new Error(memberSignupInfoDTO.status)\n }\n return memberSignupInfoDTO\n }\n\n fetchData()\n .then((response: CommonResponseDTO<Nullable<InvitationInfoDTO>>) => {\n navigator.goToMembersSignupInputPage({\n mail: response.data?.mail || '',\n invitationId: invitationId,\n }, response.data?.signboard || {\n id: null,\n signupKey: '',\n shopId: '',\n logoImgUrl: '',\n signupReturnPageInfo: {url: '', name: ''},\n signupName: '',\n mailMagazineList: [],\n mainService: {name: ''} as jest.Mocked<BucketHeader>,\n freeServices: [],\n }, response.data?.paymentMethodList || [],\n response.data?.extendMetaData || [],\n )\n })\n .catch((e: Error) => {\n switch (e.message) {\n case CommonResponseStatus.NotFound:\n navigator.goToMembersInvalidUrlPage()\n break\n case CommonResponseStatus.Conflict:\n navigator.goToMembersInvalidOneTimeUrlPage()\n break\n case CommonResponseStatus.Forbidden:\n navigator.goToMembersInvalidOneTimeUrlPage()\n break\n default:\n navigator.goToMembersServerErrorPage()\n }\n })\n }, [repo, navigator, invitationId])\n\n return null\n}\n\nexport default MembersSignupRedirectPage\n","import React from 'react'\nimport {faChevronRight} from '@fortawesome/free-solid-svg-icons'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\n\nexport const MemberArrowRightIcon: React.VFC = () => {\n return <FontAwesomeIcon icon={faChevronRight}/>\n}\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../../../Styles'\nimport {ColumnFlexContainer, FlexContainer} from '../../../Atoms/Containers'\nimport {MBCvsReadyBadge} from '../../../Atoms/Badges'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PageUrlInfo} from '../../../../Models/Types'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport {MemberArrowRightIcon} from '../../../Atoms/Icons/MemberArrowRightIcon'\n\nconst BucketLink = styled.a`\n color: ${Color.Grey800};\n padding: 23px 10px;\n cursor: pointer;\n display: block;\n position: relative;\n`\n\ntype BucketLinkButtonProps = {\n pageUrlInfo: PageUrlInfo\n}\n\nexport const BucketLinkButton: React.VFC<BucketLinkButtonProps> = ({pageUrlInfo}) => {\n if (!pageUrlInfo.url) {\n throw new MBMemberError('SystemError')\n }\n\n return (\n <BucketLink href={pageUrlInfo.url}>\n <FlexContainer alignItems={'center'} gap={'23px'}>\n <ColumnFlexContainer alignItems={'flex-start'} gap={'4px'}>\n <SignedUpStatusBadge signedUpStates={pageUrlInfo.signedUpStates}/>\n <div>{pageUrlInfo.name}</div>\n </ColumnFlexContainer>\n <Spacer ml={'auto'}>\n <MemberArrowRightIcon/>\n </Spacer>\n </FlexContainer>\n </BucketLink>\n )\n}\n\ntype StatusBudgesProps = Pick<PageUrlInfo, 'signedUpStates'>\nconst SignedUpStatusBadge: React.VFC<StatusBudgesProps> = (props) =>\n props.signedUpStates?.includes('convenience_store_ready') ? <MBCvsReadyBadge/> : null\n","import React from 'react'\nimport {BucketLinkButton} from './BucketLinkButton'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PageUrlInfo} from '../../../../Models/Types'\nimport {MBContentBodyItemTypography} from '../../../Atoms/Typographies'\n\ntype Props = {\n title: string\n pageUrlInfoList: PageUrlInfo[]\n noSignboardListMessage: string\n testId?: string\n}\n\nexport const FanClubLinkListContentBlock: React.VFC<Props> = (props) => {\n const content = (): JSX.Element => {\n if (props.pageUrlInfoList.length === 0) {\n return <>\n <ContentTitle>{props.title}</ContentTitle>\n <MBContentBodyItemTypography>\n {props.noSignboardListMessage}\n </MBContentBodyItemTypography>\n </>\n }\n\n return <>\n <ContentTitle noMarginBottom={true}>{props.title}</ContentTitle>\n <div className=\"useful-info\">\n {\n props.pageUrlInfoList?.map((pageUrlInfo, idx) =>\n <div key={idx}>\n <BucketLinkButton pageUrlInfo={pageUrlInfo}/>\n </div>\n )\n }\n </div>\n </>\n }\n\n return <ContentBlock data-testid={props.testId}>\n {content()}\n </ContentBlock>\n}\n","import MemberRepo from '../../../Repo/MemberRepo'\nimport React from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {FanClubLinkListContentBlock} from './Components/FanClubLinkListContentBlock'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PageUrlInfo} from '../../../Models/Types'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPrimaryButton} from '../../Atoms/Buttons/Bases/PIMPrimaryButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {checkAsyncStateAndGetData, memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {useTranslation} from 'react-i18next'\n\nexport type MembersAccountTopPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport const MembersAccountTopPage: React.VFC<MembersAccountTopPageProps> = (\n {\n navigator,\n memberRepo,\n },\n) => {\n const {t} = useTranslation('member')\n\n const getSelfResult = useAsync(async () => {\n return await memberRepo.getSelf()\n })\n\n const getSignedUpSignboardsResult = useAsync(async () =>\n await memberRepo.getSignedUpBucketInfoList())\n\n if (getSelfResult.loading) {\n return null\n }\n\n if (getSelfResult.error) {\n throw new MBMemberError(getSelfResult.error.message)\n }\n\n if (!getSelfResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getSelfResult.value.status)\n\n if (getSignedUpSignboardsResult.loading) {\n return null\n }\n\n if (getSignedUpSignboardsResult.error) {\n throw new MBMemberError(getSignedUpSignboardsResult.error.message)\n }\n\n if (!getSignedUpSignboardsResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getSignedUpSignboardsResult.value.status)\n\n function goToAccountInformationPage(): void {\n navigator.goToAccountInformationPage()\n }\n\n const {member} = getSelfResult.value.data\n const allSignboards = checkAsyncStateAndGetData(getSignedUpSignboardsResult)\n const signedUpSignboards = allSignboards.filter(signboard => signboard.signedUp)\n const notSignedUpSignboards = allSignboards.filter(signboard => !signboard.signedUp)\n\n const enteredSignboardPageUrlInfoList: PageUrlInfo[] = signedUpSignboards.map((item) => {\n return {\n url: item.bucketTopPageInfo.url,\n name: item.bucketName,\n signedUpStates: item.signedUpStates,\n }\n })\n const noEnteredSignboardPageUrlInfoList: PageUrlInfo[] = notSignedUpSignboards.map((item) => {\n return {\n url: item.bucketGuidancePageUrl,\n name: item.bucketName,\n signedUpStates: item.signedUpStates,\n }\n })\n\n return (\n <MembersPageTemplate>\n <PageTitle>{t('MYアカウント.ページ名')}</PageTitle>\n <ContentBlock data-testid={'block-member-info'}>\n <div className=\"table_02 mb0\">\n <table>\n <colgroup>\n <col className=\"w_20\"/>\n <col className=\"w_80\"/>\n </colgroup>\n <tbody>\n <tr>\n <th>{`${t('MYアカウント.会員基本情報テーブル.テーブルヘッダー 名前')}`}</th>\n <td>\n <div className=\"form-textgroup\">\n {`${member?.familyName} ${member?.firstName}`} \n </div>\n </td>\n </tr>\n <tr>\n <th>{`${t('MYアカウント.会員基本情報テーブル.テーブルヘッダー メールアドレス')}`}</th>\n <td>\n <div className=\"form-textgroup\">\n {member?.mail} \n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <Spacer mt={'25px'}>\n <PIMPageActions>\n <PIMPrimaryButton onClick={goToAccountInformationPage}>\n {`${t('MYアカウント.会員基本情報テーブル.ボタン 会員基本情報変更')}`}\n </PIMPrimaryButton>\n </PIMPageActions>\n </Spacer>\n </ContentBlock>\n\n <FanClubLinkListContentBlock\n title={t('MYアカウント.入会済みバケットリスト.タイトル')}\n pageUrlInfoList={enteredSignboardPageUrlInfoList}\n noSignboardListMessage={t('MYアカウント.入会済みバケットリスト.メッセージ 入会済みバケットなし')}\n testId={'block-entered-fan-club'}\n />\n {noEnteredSignboardPageUrlInfoList.length > 0 && <FanClubLinkListContentBlock\n title={t('MYアカウント.未入会バケットリスト.タイトル')}\n pageUrlInfoList={noEnteredSignboardPageUrlInfoList}\n noSignboardListMessage={''}\n testId={'block-no-entered-fan-club'}\n />}\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {PIMStack, PIMStackProps} from './Bases/PIMStack'\n\nexport type PIMCardActionsProps = Pick<PIMStackProps, 'children'>\n\nexport const PIMCardActions: React.VFC<PIMCardActionsProps> = (props) => {\n return (\n <PIMStack alignItems={'center'} spacing={3}>\n {props.children}\n </PIMStack>\n )\n}\n","import React, {useEffect, useState} from 'react'\nimport styled from '@emotion/styled'\nimport {Color, ZIndex} from '../Styles'\nimport {MBContentBodyTypography, MBContentTitleTypography, MBDialogContentTypography} from '../Atoms/Typographies'\nimport {Spacer} from '../../../Common/Components/Spacer'\nimport {FlexContainer} from '../Atoms/Containers'\nimport {PIMStack} from '../Atoms/Layouts/Bases/PIMStack'\nimport {ConvenienceStoreInfo, ConvenienceStoreKey} from '../../Props/ContractInputInfo'\nimport {MBMemberSelect} from '../Atoms/MBMemberSelect'\nimport {convenienceStoreList} from '../Components/PaymentsRelations/InputContentBlocks/ConvenienceStoreInputComponent'\n\nconst StyledDiv = styled.div`\n display: block;\n background-color: ${Color.White};\n border-radius: 4px;\n padding: 16px 8px 8px 8px;\n z-index: ${ZIndex.Dialog};\n max-width: 80%;\n`\n\nexport type MBBaseDialogProps = {\n testId?: string\n open: boolean\n title: string\n content: React.ReactNode\n buttons: React.ReactNode[]\n}\nexport const MBBaseDialog: React.VFC<MBBaseDialogProps> = (props) => {\n useEffect(() => {\n if (props.open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'visible'\n }\n }, [props.open])\n\n return (\n <>\n {props.open &&\n <MBDialogBack data-testid={'mb-dialog-back'}>\n <FlexContainer\n alignItems={'center'}\n justifyContent={'center'}\n style={{height: '100%'}}\n >\n <StyledDiv data-testid={props.testId ?? 'mb-base-dialog'}>\n <PIMStack spacing={2}>\n <Spacer mx={'16px'}>\n <MBContentTitleTypography>{props.title}</MBContentTitleTypography>\n </Spacer>\n <Spacer mx={'16px'}>\n {props.content}\n </Spacer>\n <FlexContainer justifyContent={'flex-end'}>\n {props.buttons}\n </FlexContainer>\n </PIMStack>\n </StyledDiv>\n </FlexContainer>\n </MBDialogBack>\n }\n </>\n )\n}\n\nconst MBDialogBack = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ${Color.BlackOpacity};\n z-index: ${ZIndex.DialogBack}\n`\n\nconst DialogButton = styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n outline: 0;\n border: 0;\n cursor: pointer;\n border-radius: 4px;\n font-size: 1.3rem;\n color: ${Color.Blue200};\n min-width: 56px;\n padding: 6px 8px;\n\n &:hover {\n background-color: ${Color.BlueOpacity};\n }\n`\n\nexport type MBDeleteCreditCardConfirmDialogProps = Pick<MBBaseDialogProps, 'open'> & {\n creditCardInfo: string\n onCancelButtonClick: () => void\n onOkButtonClick: () => Promise<void>\n}\nexport const MBDeleteCreditCardConfirmDialog: React.VFC<MBDeleteCreditCardConfirmDialogProps> =\n (props) => {\n return (\n <MBBaseDialog\n testId={'mb-delete-credit-card-confirm-dialog'}\n open={props.open}\n title={'登録済みクレジットカード情報削除'}\n content={\n <MBDialogContentTypography>\n {`登録済みのクレジットカード情報\\n${props.creditCardInfo}\\nを削除しますか?`}\n </MBDialogContentTypography>\n }\n buttons={[\n <DialogButton\n key={'cancel-button'}\n onClick={(): void => props.onCancelButtonClick()}\n >\n キャンセル\n </DialogButton>,\n <DialogButton\n key={'ok-button'}\n onClick={(): Promise<void> => props.onOkButtonClick()}\n >\n OK\n </DialogButton>,\n ]}\n />\n )\n }\n\nexport type MBDeleteShippingAddressConfirmDialogProps = Pick<MBBaseDialogProps, 'open'> & {\n shippingAddressInfo: string\n onCancelButtonClick: () => void\n onOkButtonClick: () => Promise<void>\n}\nexport const MBDeleteShippingAddressConfirmDialog:\n React.VFC<MBDeleteShippingAddressConfirmDialogProps> =\n ({\n open,\n shippingAddressInfo,\n onCancelButtonClick,\n onOkButtonClick,\n }) => {\n return (\n <MBBaseDialog\n testId={'mb-delete-shipping-address-confirm-dialog'}\n open={open}\n title={'商品配送先情報削除'}\n content={\n <MBDialogContentTypography>\n {`登録済みの商品配送先情報\\n${shippingAddressInfo}\\nを削除しますか?`}\n </MBDialogContentTypography>\n }\n buttons={[\n <DialogButton\n key={'cancel-button'}\n onClick={(): void => onCancelButtonClick()}\n >\n キャンセル\n </DialogButton>,\n <DialogButton\n key={'ok-button'}\n onClick={(): Promise<void> => onOkButtonClick()}\n >\n OK\n </DialogButton>,\n ]}\n />\n )\n }\n\nexport type MBCvsPaymentDialogProps = Pick<MBBaseDialogProps, 'open'> & {\n onCancelButtonClick: () => void\n onOkButtonClick: (cvsInfo: ConvenienceStoreInfo) => void\n defaultConvenienceStoreKey?: ConvenienceStoreKey\n}\nexport const MBCvsPaymentDialog: React.VFC<MBCvsPaymentDialogProps> = (props) => {\n const [cvsInfo, setCvsInfo] = useState<ConvenienceStoreInfo>({\n convenienceStoreKey: props.defaultConvenienceStoreKey ?? '',\n })\n\n return <MBBaseDialog\n testId={'mb-cvs-payment-dialog'}\n open={props.open}\n title={'お支払いのコンビニを選択し、「確定」ボタンを押下してください。'}\n content={\n <PIMStack spacing={'18px'}>\n <MBContentBodyTypography>\n {'※「確定」ボタンを押下すると、選択したコンビニでのお支払い番号が発番されます。'}\n </MBContentBodyTypography>\n\n <FlexContainer alignItems={'center'} justifyContent={'center'} gap={'12px'}>\n <label htmlFor=\"cvs-payment-dialog-select-cvs\">支払いコンビニ</label>\n <div style={{maxWidth: '300px'}}>\n <MBMemberSelect\n id=\"cvs-payment-dialog-select-cvs\"\n name=\"convenienceStoreKey\"\n fontSize={1.3}\n hasError={false}\n onChange={(e): void => setCvsInfo({\n convenienceStoreKey: e.target.value as ConvenienceStoreKey,\n })}\n value={cvsInfo.convenienceStoreKey}\n >\n <option value=\"\" hidden disabled>選択してください</option>\n {convenienceStoreList.map((item) => (\n <option key={item.convenienceStoreKey} value={item.convenienceStoreKey}>\n {item.name}\n </option>\n ))}\n </MBMemberSelect>\n </div>\n </FlexContainer>\n </PIMStack>\n }\n buttons={[\n <DialogButton key={'cancel-button'} onClick={(): void => props.onCancelButtonClick()}>\n キャンセル\n </DialogButton>,\n <DialogButton key={'ok-button'} onClick={(): void => props.onOkButtonClick(cvsInfo)}>\n 確定\n </DialogButton>,\n ]}\n />\n}\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {Color, ZIndex} from '../Styles'\n\nexport type MBLoadingOverlayProps = {\n open: boolean\n}\n\nconst StyledOverlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: ${ZIndex.LoadingOverlay};\n width: 100vw;\n height: 100vh;\n background: ${Color.BlackOpacity};\n opacity: ${({open}: MBLoadingOverlayProps): string => open ? '1' : '0'};\n visibility: ${({open}: MBLoadingOverlayProps): string => open ? 'visible' : 'hidden'};\n transition: .3s linear;`\n\nexport const MBLoadingOverlay: React.VFC<MBLoadingOverlayProps> = (props) => {\n return (\n <StyledOverlay open={props.open}/>)\n}\n","import React, {useCallback, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {ADDRESS, GENDER} from '../../../../Common/Constants'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {PhoneInformation} from '../../../Utils/Validations/PhoneInformation'\nimport {useAsync, useAsyncRetry} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMPrimaryButton} from '../../Atoms/Buttons/Bases/PIMPrimaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMCardActions} from '../../Atoms/Layouts/PIMCardActions'\nimport {checkAsyncStateAndGetDataOrError, checkResponseAndGetDataOrError, isError, memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {PIMCard, PIMCardNoTopMessage} from '../../Atoms/Cards/PIMCard'\nimport {ColumnFlexContainer} from '../../Atoms/Containers'\nimport {MBContentBodyItemTypography, MBContentBodyTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {formatPostCode, PostCodeInformation} from '../../../../Common/Components/PostCodeInformation'\nimport {ShippingAddress, ShippingAddressInfo} from '../../../DTO/MemberShippingAddressDTO'\nimport {MemberNameConfirms} from '../../Components/ConfirmContentBlocks/MemberNameConfirms'\nimport {ConfirmContent} from '../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {MBDeleteShippingAddressConfirmDialog} from '../../Molecules/MBDialogs'\nimport {MBLoadingOverlay} from '../../Molecules/MBLoadingOverlay'\nimport {useMBMemberErrorUnknown} from '../../Hooks/UseMBMemberError'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersAccountInformationPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport const MembersAccountInformationPage: React.VFC<MembersAccountInformationPageProps> = (\n {\n navigator,\n memberRepo,\n },\n): Nullable<JSX.Element> => {\n const {t} = useTranslation('member')\n const [openDialog, setOpenDialog] = useState(false)\n const [deleteShippingAddressInfo, setDeleteShippingAddressInfo] = useState<ShippingAddressInfo>()\n const [loadingOpen, setLoadingOpen] = useState(false)\n\n const throwMBMemberError = useMBMemberErrorUnknown()\n\n const resultGetShippingAddressList = useAsyncRetry(async () => {\n return await memberRepo.getShippingAddressList()\n })\n\n const goToShippingAddressInputPage = useCallback(() => {\n navigator.goToShippingAddressInputPage()\n }, [navigator])\n\n const goToEditMailPage = useCallback((): void => {\n navigator.goToEditMailPage()\n }, [navigator])\n\n const goToEditPasswordPage = useCallback((): void => {\n navigator.goToEditPasswordPage()\n }, [navigator])\n\n const goToEditAddressInputPage = useCallback((): void => {\n navigator.goToEditAddressInputPage()\n }, [navigator])\n\n const goToEditShippingAddressInputPage = useCallback((shippingAddressId: number): void => {\n navigator.goToEditShippingAddressInputPage(shippingAddressId)\n }, [navigator])\n\n const goToAccountTopPage = useCallback((): void => {\n navigator.goToAccountTopPage()\n }, [navigator])\n\n const handleDialogCancelButtonClick = useCallback((): void => {\n setOpenDialog(false)\n }, [openDialog])\n\n const handleDeleteShippingAddressButtonClick = useCallback((\n shippingAddressInfo: ShippingAddressInfo,\n ): void => {\n setOpenDialog(true)\n setDeleteShippingAddressInfo(shippingAddressInfo)\n }, [openDialog, deleteShippingAddressInfo])\n\n const handleDialogDeleteShippingAddressButtonClick = useCallback(async (\n shippingAddressId: number,\n ) => {\n setOpenDialog(false)\n setLoadingOpen(true)\n\n try {\n const resultDeleteShippingAddress = await memberRepo.deleteShippingAddress(shippingAddressId)\n const checkStatus = checkResponseAndGetDataOrError(resultDeleteShippingAddress)\n if (isError(checkStatus) && !(checkStatus.message === 'NotFound')) {\n // noinspection ExceptionCaughtLocallyJS\n throw checkStatus\n }\n\n resultGetShippingAddressList.retry()\n\n setLoadingOpen(false)\n } catch (e) {\n throwMBMemberError(e)\n }\n }, [memberRepo, resultGetShippingAddressList, throwMBMemberError])\n\n const result = useAsync(async () => {\n return await memberRepo.getSelf()\n })\n\n if (result.loading || resultGetShippingAddressList.loading) {\n return null\n }\n\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n if (resultGetShippingAddressList.error) {\n throw new MBMemberError(resultGetShippingAddressList.error.message)\n }\n\n if (!result.value || !resultGetShippingAddressList.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(result.value.status)\n\n const shippingAddressInfoList = checkAsyncStateAndGetDataOrError(resultGetShippingAddressList)\n const getShippingAddressBlock = (): JSX.Element => {\n if (isError(shippingAddressInfoList)) {\n if (shippingAddressInfoList.message === 'Forbidden') return <></>\n else throw shippingAddressInfoList\n }\n\n if (shippingAddressInfoList.length > 0) {\n const shippingAddressInfo = shippingAddressInfoList[0]\n\n return <ShippingAddressConfirmBlock\n shippingAddress={shippingAddressInfo}\n onEditShippingAddressButtonClick={(): void =>\n goToEditShippingAddressInputPage(shippingAddressInfo.shippingAddressId)\n }\n onDeleteShippingAddressButtonClick={(): void =>\n handleDeleteShippingAddressButtonClick(shippingAddressInfo)\n }\n />\n }\n\n return <ShippingAddressRegisterBlock\n onRegisterButtonClick={goToShippingAddressInputPage}\n />\n }\n\n const {member} = result.value.data\n\n if (!member) {\n throw new MBMemberError('SystemError')\n }\n\n const {\n mail, familyName, firstName, familyNameKana, firstNameKana, gender, birthday, postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding, phoneMobile, phoneTel,\n } = member\n\n return (\n <>\n <MembersPageTemplate>\n <PageTitle>登録情報</PageTitle>\n\n <PIMStack\n alignItems={'center'}\n spacing={'18px'}\n >\n <PIMCardNoTopMessage\n headerProps={{title: 'ログイン情報'}}\n testId={'block-login-info'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <ConfirmContent label={t('登録情報.ログイン情報.ラベル メールアドレス')} values={[mail]}/>\n </PIMStack>\n\n <Spacer mt={'25px'}>\n <PIMCardActions>\n <PIMPrimaryButton onClick={goToEditMailPage}>\n メールアドレス変更\n </PIMPrimaryButton>\n <PIMPrimaryButton onClick={goToEditPasswordPage}>\n パスワード変更\n </PIMPrimaryButton>\n </PIMCardActions>\n </Spacer>\n </PIMCardNoTopMessage>\n\n <PIMCardNoTopMessage\n headerProps={{title: '基本情報'}}\n testId={'block-basic-info'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <MemberNameConfirms\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n />\n <ConfirmContent label={'性別'} values={[gender ? GENDER[gender] : '']}/>\n <ConfirmContent label={'生年月日'} values={[birthday ?? '']}/>\n </PIMStack>\n </PIMCardNoTopMessage>\n\n <PIMCardNoTopMessage\n headerProps={{title: '連絡先情報'}}\n testId={'block-address-info'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <AddressInformation\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n />\n <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>{'電話番号'}</MBContentSubTitleTypography>\n <div>\n <MBContentBodyTypography>\n <PhoneInformation\n mobile={phoneMobile}\n home={phoneTel}\n />\n </MBContentBodyTypography>\n </div>\n </PIMStack>\n </PIMStack>\n\n <Spacer mt={'25px'}>\n <PIMPageActions>\n <PIMPrimaryButton onClick={goToEditAddressInputPage}>\n 連絡先情報変更\n </PIMPrimaryButton>\n </PIMPageActions>\n </Spacer>\n </PIMCardNoTopMessage>\n\n {\n getShippingAddressBlock()\n }\n\n </PIMStack>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n {t('MYアカウント.ページ名')}に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n\n <MBLoadingOverlay open={loadingOpen}/>\n {\n deleteShippingAddressInfo &&\n <MBDeleteShippingAddressConfirmDialog\n open={openDialog}\n shippingAddressInfo={\n `${formatPostCode(deleteShippingAddressInfo.postCode)}\\n${getAddressString(\n deleteShippingAddressInfo.addressPrefectureCode,\n deleteShippingAddressInfo.addressCity,\n deleteShippingAddressInfo.addressStreet,\n deleteShippingAddressInfo.addressBuilding,\n )}`\n }\n onCancelButtonClick={handleDialogCancelButtonClick}\n onOkButtonClick={(): Promise<void> =>\n handleDialogDeleteShippingAddressButtonClick(\n deleteShippingAddressInfo.shippingAddressId,\n )\n }\n />\n }\n </>\n )\n}\nconst getAddressString = (\n addressPrefectureCode: string,\n addressCity?: string,\n addressStreet?: string,\n addressBuilding?: Nullable<string>,\n): string => {\n const getAddressPrefecture =\n addressPrefectureCode ? ADDRESS.PREFECTURES[addressPrefectureCode] : ''\n const getAddressBuilding = addressBuilding ?? ''\n\n return `${getAddressPrefecture + addressCity + addressStreet} ${getAddressBuilding}`\n}\n\ntype AddressInformationProps = {\n postCode: string\n addressPrefectureCode?: string\n addressCity?: string\n addressStreet?: string\n addressBuilding?: Nullable<string>\n}\nconst AddressInformation: React.VFC<AddressInformationProps> = (\n {\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n },\n) => {\n if (addressPrefectureCode === undefined) {\n return <></>\n }\n\n return <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>{'住所'}</MBContentSubTitleTypography>\n <ColumnFlexContainer>\n <MBContentBodyTypography><PostCodeInformation postCode={postCode}/></MBContentBodyTypography>\n <MBContentBodyTypography>\n {getAddressString(\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n )}\n </MBContentBodyTypography>\n </ColumnFlexContainer>\n </PIMStack>\n}\n\nconst shippingAddressBlockTitle = '商品配送先情報 (商品購入時のみ選択可)'\n\ntype ShippingAddressRegisterBlockProps = {\n onRegisterButtonClick: () => void\n}\nconst ShippingAddressRegisterBlock: React.VFC<ShippingAddressRegisterBlockProps> = (\n {\n onRegisterButtonClick,\n },\n) => {\n return (<>\n <PIMCard\n headerProps={{title: shippingAddressBlockTitle}}\n testId={'block-shipping-address-info'}\n >\n <PIMStack spacing={'18px'}>\n <MBContentBodyItemTypography>商品配送先のご登録はありません</MBContentBodyItemTypography>\n <ColumnFlexContainer alignItems={'flex-start'} gap={0.5}>\n <MBContentNoteWithMarkTypography note={'連絡先情報とは別の商品配送先を1件登録することができます。'}/>\n <MBContentNoteWithMarkTypography note={'商品ご注文の際に、レジ画面にてお届け先を選択してください。'}/>\n </ColumnFlexContainer>\n </PIMStack>\n\n <Spacer mt={'25px'}>\n <PIMPageActions>\n <PIMPrimaryButton onClick={onRegisterButtonClick}>\n 商品配送先情報の登録\n </PIMPrimaryButton>\n </PIMPageActions>\n </Spacer>\n </PIMCard>\n </>)\n}\n\ntype ShippingAddressConfirmBlockProps = {\n shippingAddress: ShippingAddress\n onEditShippingAddressButtonClick: () => void\n onDeleteShippingAddressButtonClick: () => void\n}\nconst ShippingAddressConfirmBlock: React.VFC<ShippingAddressConfirmBlockProps> = (\n {\n shippingAddress,\n onEditShippingAddressButtonClick,\n onDeleteShippingAddressButtonClick,\n },\n) => {\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phone,\n } = shippingAddress\n\n return (<>\n <PIMCardNoTopMessage\n headerProps={{title: shippingAddressBlockTitle}}\n testId={'block-shipping-address-info'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <MemberNameConfirms\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n />\n <AddressInformation\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n />\n <ConfirmContent label={'電話番号'} values={[phone]}/>\n </PIMStack>\n\n <Spacer mt={'25px'}>\n <PIMCardActions>\n <PIMPrimaryButton onClick={onEditShippingAddressButtonClick}>\n 商品配送先情報変更\n </PIMPrimaryButton>\n <PIMPrimaryButton onClick={onDeleteShippingAddressButtonClick}>\n 商品配送先情報削除\n </PIMPrimaryButton>\n </PIMCardActions>\n </Spacer>\n </PIMCardNoTopMessage>\n </>)\n}\n","import React from 'react'\nimport {ErrorSummary, ErrorSummaryProps} from './ErrorSummary'\n\ntype InputErrorSummaryProps = Pick<ErrorSummaryProps, 'display' | 'testId'>\n\nexport const InputErrorSummary: React.VFC<InputErrorSummaryProps> = (props) => {\n return (\n <ErrorSummary\n display={props.display}\n headline={'申し訳ございませんが、入力内容に不備があるようです。'}\n detail={'お手数ですが、メッセージの表示された入力項目をご確認の上、もう一度ご入力ください。'}\n testId={props.testId}\n />\n )\n}\n","import React from 'react'\n\ntype Props = JSX.IntrinsicElements['input'] & {\n hasError: boolean\n classNameOnError: string\n}\nexport const MBInput: React.VFC<Props> = (props) => {\n const {hasError, classNameOnError, className, ...rest} = props\n return (\n <input\n {...rest}\n className={(hasError) ? `${className} ${classNameOnError}` : className}\n >\n {props.children}\n </input>\n )\n}\n","import {MBInput} from '../../../Common/Components/MBInput'\nimport React from 'react'\n\ntype MBInputProps = React.ComponentProps<typeof MBInput>\ntype MBMemberInputProps = Omit<MBInputProps, 'classNameOnError'>\nexport const MBMemberInput: React.VFC<MBMemberInputProps> = (props) => {\n return (\n <MBInput\n classNameOnError={'_error'}\n {...props}\n >\n {props.children}\n </MBInput>\n )\n}\n","import moji from 'moji'\nimport {MBMemberError} from '../Common/MBMemberError'\n\nexport const convertOnBlur = (name: string, value: string): string => {\n switch (name) {\n case 'familyName':\n case 'firstName':\n case 'addressCity':\n case 'addressStreet':\n case 'addressBuilding':\n return moji(value)\n .convert('HE', 'ZE')\n .convert('HK', 'ZK')\n .convert('HS', 'ZS')\n .trim()\n .toString()\n case 'familyNameKana':\n case 'firstNameKana':\n return moji(value)\n .convert('HK', 'ZK')\n .convert('HG', 'KK')\n .trim()\n .toString()\n case 'postCode':\n case 'phoneMobile':\n case 'phoneTel':\n case 'phone':\n case 'cardNumber':\n case 'securityCode':\n return moji(value)\n .convert('ZE', 'HE')\n .trim()\n .toString()\n .replace(/[^0-9]/g, '')\n default:\n throw new MBMemberError('SystemError')\n }\n}\n","import React from 'react'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../../Atoms/Badges'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {FlexContainer} from '../../../Atoms/Containers'\nimport {MBMemberInput} from '../../../Atoms/MBMemberInput'\nimport {MBAddressSearchButton} from '../../../Atoms/Buttons'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MBMemberSelect} from '../../../Atoms/MBMemberSelect'\nimport {ADDRESS} from '../../../../../Common/Constants'\nimport {SearchPostCode} from '../../../../../Common/SearchPostCode'\nimport {Address} from '../../../../DTO/MemberAddressDTO'\nimport {convertOnBlur} from '../../../../Utils/ConvertOnBlur'\nimport {useTranslation} from 'react-i18next'\n\nexport type InputMode = 'signup' | 'edit'\n\nexport type AddressErrors = {\n postCodeErrors: string[]\n addressPrefectureCodeErrors: string[]\n addressCityErrors: string[]\n addressStreetErrors: string[]\n addressBuildingErrors: string[]\n}\n\nexport type AddressProps = {\n activity: InputMode\n searchPostCode: SearchPostCode\n address: Address\n addressErrors: AddressErrors\n onChange: (address: Address) => void\n}\nexport const AddressInputs: React.VFC<AddressProps> = (\n {\n activity,\n searchPostCode,\n address,\n addressErrors,\n onChange,\n },\n) => {\n const {t} = useTranslation('member')\n const updateAddress = (name: string, value: string, address: Address): Address => ({\n ...address,\n [name]: value,\n })\n\n const handleChangeInput = (\n e: React.ChangeEvent<HTMLInputElement>,\n address: Address,\n ): Address => {\n const {name, value} = e.target\n return updateAddress(name, value, address)\n }\n\n const handleChangeSelect = (\n e: React.ChangeEvent<HTMLSelectElement>,\n address: Address,\n ): Address => {\n const {name, value} = e.target\n return updateAddress(name, value, address)\n }\n\n const handleBlurInput = (e: React.FocusEvent<HTMLInputElement>, address: Address): Address => {\n const {name, value} = e.target\n return updateAddress(name, convertOnBlur(name, value), address)\n }\n\n const settingPostCode = (address: Address): void => {\n if (address.postCode.length !== 7) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchPostCode.search(address.postCode, (searchAddress: any) => {\n const regionId = searchAddress.region_id.toString()\n address = {\n ...address,\n addressPrefectureCode: (regionId) ? regionId.padStart(2, '0') : '',\n addressCity: `${searchAddress.locality}${searchAddress.street}`,\n }\n if (activity === 'edit') {\n address = {\n ...address,\n addressStreet: '',\n addressBuilding: '',\n }\n }\n onChange(address)\n })\n }\n\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <div data-testid={'form-post-code'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"post-code-input\">\n <MBContentSubTitleTypography>郵便番号</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <FlexContainer alignItems={'center'} justifyContent={'flex-start'} gap={'9px'}>\n <MBMemberInput\n type=\"tel\"\n name=\"postCode\"\n autoComplete=\"postal-code\"\n value={address.postCode}\n className=\"form-text_01 w_120px mr_10\"\n id=\"post-code-input\"\n placeholder=\"例)1234567\"\n hasError={addressErrors.postCodeErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <MBAddressSearchButton\n onClick={(): void => {\n settingPostCode(address)\n }}\n />\n </FlexContainer>\n <ErrorDisplay errors={addressErrors.postCodeErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-prefecture'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-prefecture-select\">\n <MBContentSubTitleTypography>都道府県</MBContentSubTitleTypography>\n </label>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberSelect\n id=\"address-prefecture-select\"\n name=\"addressPrefectureCode\"\n autoComplete=\"address-level1\"\n value={address.addressPrefectureCode || ''}\n width={'60%'}\n hasError={addressErrors.addressPrefectureCodeErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeSelect(e, address),\n )\n }}\n >\n <option value=\"\">選択してください</option>\n {Object.keys(ADDRESS.PREFECTURES).sort().map(code => (\n <option key={code} value={code}>{ADDRESS.PREFECTURES[code]}</option>),\n )}\n </MBMemberSelect>\n <ErrorDisplay errors={addressErrors.addressPrefectureCodeErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-city'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-city-input\">\n <MBContentSubTitleTypography>市区町村</MBContentSubTitleTypography>\n </label>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressCity\"\n autoComplete=\"address-level2\"\n value={address.addressCity || ''}\n className=\"form-text_01 w_100\"\n id=\"address-city-input\"\n placeholder={t('入力フォームプレースホルダ.住所.市区町村')}\n hasError={addressErrors.addressCityErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressCityErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-street'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-street-input\">\n <MBContentSubTitleTypography>以降の住所</MBContentSubTitleTypography>\n </label>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressStreet\"\n autoComplete=\"address-line1\"\n value={address.addressStreet || ''}\n className=\"form-text_01 w_100 pc100\"\n id=\"address-street-input\"\n placeholder={t('入力フォームプレースホルダ.住所.以降の住所')}\n hasError={addressErrors.addressStreetErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressStreetErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-building'}>\n <label htmlFor=\"address-building-input\">\n <MBContentSubTitleTypography>建物・部屋</MBContentSubTitleTypography>\n </label>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressBuilding\"\n autoComplete=\"address-line2\"\n value={address.addressBuilding || ''}\n className=\"form-text_01 w_100 pc100\"\n id=\"address-building-input\"\n placeholder={t('入力フォームプレースホルダ.住所.建物・部屋')}\n hasError={addressErrors.addressBuildingErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressBuildingErrors}/>\n </Spacer>\n </div>\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {SearchPostCode} from '../../../../../Common/SearchPostCode'\nimport {AddressErrors, AddressInputs, InputMode} from './AddressInputs'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBMemberInput} from '../../../Atoms/MBMemberInput'\nimport {ContactAddress} from '../../../../DTO/MemberAddressDTO'\nimport {convertOnBlur} from '../../../../Utils/ConvertOnBlur'\nimport {useTranslation} from 'react-i18next'\n\nexport type ContactAddressErrors = AddressErrors & {\n phoneMobileErrors: string[]\n phoneTelErrors: string[]\n}\n\ntype ContactAddressInputContentsProps = {\n activity: InputMode\n searchPostCode: SearchPostCode\n contactAddress: ContactAddress\n contactAddressErrors: ContactAddressErrors\n onChange: (contactAddress: ContactAddress) => void\n}\n\nexport const ContactAddressInputContents: React.VFC<ContactAddressInputContentsProps> = (\n {\n activity,\n searchPostCode,\n contactAddress,\n contactAddressErrors,\n onChange,\n },\n) => {\n const {t} = useTranslation('member')\n\n const updateAddress = (\n name: string,\n value: string,\n contactAddress: ContactAddress,\n ): ContactAddress => ({\n ...contactAddress,\n [name]: value,\n })\n\n const handleChangeInput = (\n e: React.ChangeEvent<HTMLInputElement>,\n contactAddress: ContactAddress,\n ): ContactAddress => {\n const {\n name,\n value,\n } = e.target\n return updateAddress(name, value, contactAddress)\n }\n\n const handleBlurInput = (\n e: React.FocusEvent<HTMLInputElement>,\n contactAddress: ContactAddress,\n ): ContactAddress => {\n const {name, value} = e.target\n return updateAddress(name, convertOnBlur(name, value), contactAddress)\n }\n\n return <div data-testid={'contact-address-input-contents'}>\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <AddressInputs\n activity={activity}\n searchPostCode={searchPostCode}\n address={contactAddress}\n addressErrors={contactAddressErrors}\n onChange={(address): void =>\n onChange({\n ...address,\n phoneMobile: contactAddress.phoneMobile,\n phoneTel: contactAddress.phoneTel,\n })\n }\n />\n\n <div data-testid={'form-phone'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <MBContentSubTitleTypography>電話番号</MBContentSubTitleTypography>\n </PIMStack>\n <Spacer mt={'10px'}>\n <PIMStack spacing={1}>\n <label htmlFor=\"mobile-input\">携帯</label>\n <MBMemberInput\n type=\"tel\"\n name=\"phoneMobile\"\n autoComplete=\"tel\"\n value={contactAddress.phoneMobile || ''}\n className=\"form-text_01 w_100\"\n id=\"mobile-input\"\n placeholder={t('入力フォームプレースホルダ.電話番号.携帯')}\n hasError={\n contactAddressErrors.phoneMobileErrors.length > 0\n }\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, contactAddress),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, contactAddress),\n )\n }}\n />\n </PIMStack>\n <ErrorDisplay errors={contactAddressErrors.phoneMobileErrors}/>\n </Spacer>\n <Spacer mt={'16px'} mb={'12px'}>\n <PIMStack spacing={1}>\n <label htmlFor=\"tel-input\">固定</label>\n <MBMemberInput\n type=\"tel\"\n name=\"phoneTel\"\n autoComplete=\"off\"\n value={contactAddress.phoneTel || ''}\n className=\"form-text_01 w_100\"\n id=\"tel-input\"\n placeholder={t('入力フォームプレースホルダ.電話番号.固定')}\n hasError={\n contactAddressErrors.phoneTelErrors.length > 0\n }\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, contactAddress),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, contactAddress),\n )\n }}\n />\n </PIMStack>\n <ErrorDisplay errors={contactAddressErrors.phoneTelErrors}/>\n </Spacer>\n </div>\n </PIMStack>\n </div>\n}\n","import React, {useEffect, useState} from 'react'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {SearchPostCode} from '../../../../Common/SearchPostCode'\nimport {\n validateMemberAddressInput,\n ValidationAddressInput,\n} from '../../../Utils/Validations/ValidateMembersAddressInput'\nimport {useAsync} from 'react-use'\nimport {useLocation} from 'react-router-dom'\nimport {MemberEditAddressInfo} from '../../../Props/MembersEditAddressPageLocationStates'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {animateScroll} from 'react-scroll'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {ContactAddressInputContents} from '../../Components/InputContentBlocks/AddressInputs/ContactAddressInputContents'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n searchPostCode: SearchPostCode\n}\n\ntype ErrorState = {\n isInputError: boolean\n postCodeErrors: string[]\n addressPrefectureCodeErrors: string[]\n addressCityErrors: string[]\n addressStreetErrors: string[]\n addressBuildingErrors: string[]\n phoneMobileErrors: string[]\n phoneTelErrors: string[]\n}\n\nexport function MembersEditAddressInputPage(props: Props): Nullable<JSX.Element> {\n const location = useLocation<MemberEditAddressInfo>()\n const locationState: MemberEditAddressInfo = location.state\n\n const [state, setState] = useState<MemberEditAddressInfo>({\n postCode: locationState?.postCode || '',\n addressPrefectureCode: locationState?.addressPrefectureCode || '',\n addressCity: locationState?.addressCity || '',\n addressStreet: locationState?.addressStreet || '',\n addressBuilding: locationState?.addressBuilding || '',\n phoneMobile: locationState?.phoneMobile || '',\n phoneTel: locationState?.phoneTel || '',\n })\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n postCodeErrors: [],\n addressPrefectureCodeErrors: [],\n addressCityErrors: [],\n addressStreetErrors: [],\n addressBuildingErrors: [],\n phoneMobileErrors: [],\n phoneTelErrors: [],\n })\n const [processing, setProcessing] = useState<boolean>(false)\n\n const result = useAsync(async () => {\n return await props.memberRepo.getSelf()\n })\n\n useEffect(() => {\n if (locationState) {\n return\n }\n if (!result.value) {\n return\n }\n setState((prevState) => ({\n ...prevState,\n postCode: result.value?.data.member?.postCode || '',\n addressPrefectureCode: result.value?.data.member?.addressPrefectureCode || '',\n addressCity: result.value?.data.member?.addressCity || '',\n addressStreet: result.value?.data.member?.addressStreet || '',\n addressBuilding: result.value?.data.member?.addressBuilding || '',\n phoneMobile: result.value?.data.member?.phoneMobile || '',\n phoneTel: result.value?.data.member?.phoneTel || '',\n }))\n }, [result.value])\n\n if (!locationState) {\n if (result.loading) {\n return null\n }\n\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n\n if (!result.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(result.value.status)\n }\n\n function goToEditAddressConfirmPage(): void {\n setProcessing(true)\n\n const inputForValidation: ValidationAddressInput = {\n ...state,\n postCode: state.postCode.trim(),\n addressCity: state.addressCity.trim(),\n addressStreet: state.addressStreet?.trim(),\n addressBuilding: state.addressBuilding?.trim(),\n phoneMobile: state.phoneMobile?.trim(),\n phoneTel: state.phoneTel?.trim(),\n }\n setState((prevState) => ({\n ...prevState,\n ...inputForValidation,\n }))\n\n const validationResult = validateMemberAddressInput(inputForValidation)\n\n if (validationResult.hasError) {\n setErrorState({\n isInputError: true,\n postCodeErrors: validationResult.errors.postCode,\n addressPrefectureCodeErrors: validationResult.errors.addressPrefectureCode,\n addressCityErrors: validationResult.errors.addressCity,\n addressStreetErrors: validationResult.errors.addressStreet,\n addressBuildingErrors: validationResult.errors.addressBuilding,\n phoneMobileErrors: validationResult.errors.phoneMobile,\n phoneTelErrors: validationResult.errors.phoneTel,\n })\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n props.navigator.goToEditAddressConfirmPage(inputForValidation)\n }\n\n function goToAccountInformationPage(): void {\n props.navigator.goToAccountInformationPage()\n }\n\n return (\n <MembersPageTemplate>\n <PageTitle>連絡先情報変更入力</PageTitle>\n\n <InputErrorSummary display={errorState.isInputError}/>\n\n <StepGuide activity={'edit'} current={'enter'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: '連絡先情報変更'}}\n testId={'block-forms'}\n >\n <ContactAddressInputContents\n activity={'edit'}\n searchPostCode={props.searchPostCode}\n contactAddress={state}\n contactAddressErrors={errorState}\n onChange={(address): void => {\n setState((prevState) => {\n return {\n ...prevState,\n postCode: address.postCode,\n addressPrefectureCode: address.addressPrefectureCode ?? '',\n addressCity: address.addressCity ?? '',\n addressStreet: address.addressStreet ?? '',\n addressBuilding: address.addressBuilding ?? '',\n phoneMobile: address.phoneMobile ?? '',\n phoneTel: address.phoneTel ?? ``,\n }\n })\n }}\n />\n </PIMCard>\n </PIMStack>\n </Spacer>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『変更内容の確認に進む』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-changes-button'}\n disabled={processing}\n onClick={(): void => {\n goToEditAddressConfirmPage()\n }}\n >\n 変更内容の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountInformationPage}>\n 登録情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n )\n}\n","import {\n validateAddressBuilding,\n validateAddressCity,\n validateAddressPrefectureCode,\n validateAddressStreet,\n validatePhoneMobile,\n validatePhoneTel,\n validatePostCode,\n} from './MembersValidation'\n\nexport type ValidationAddressInput = {\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding: string\n phoneMobile: string\n phoneTel: string\n}\n\nexport type ValidationAddressResultDetail = {\n [K in keyof ValidationAddressInput]: string[]\n}\n\nexport type ValidationAddressResult = {\n hasError: boolean\n errors: ValidationAddressResultDetail\n}\n\nexport const validateMemberAddressInput = (\n input: ValidationAddressInput,\n): ValidationAddressResult => {\n\n const details: ValidationAddressResultDetail = {\n postCode: validatePostCode(input.postCode),\n addressPrefectureCode: validateAddressPrefectureCode(input.addressPrefectureCode),\n addressCity: validateAddressCity(input.addressCity),\n addressStreet: validateAddressStreet(input.addressStreet),\n addressBuilding: validateAddressBuilding(input.addressBuilding),\n phoneMobile: validatePhoneMobile(input.phoneMobile),\n phoneTel: validatePhoneTel(input.phoneTel),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","import {Nullable, Optional} from '../../Common/TypeHelper'\n\nexport type Address = {\n postCode: string\n addressPrefectureCode: Nullable<Optional<string>>\n addressCity: Nullable<Optional<string>>\n addressStreet: Nullable<Optional<string>>\n addressBuilding: Nullable<Optional<string>>\n}\n\nexport type ContactAddress = Address & {\n phoneMobile: Nullable<Optional<string>>\n phoneTel: Nullable<Optional<string>>\n}\n\nexport class MemberAddressDTO implements ContactAddress{\n postCode: string\n addressPrefectureCode: Nullable<Optional<string>>\n addressCity: Nullable<Optional<string>>\n addressStreet: Nullable<Optional<string>>\n addressBuilding: Nullable<Optional<string>>\n phoneMobile: Nullable<Optional<string>>\n phoneTel: Nullable<Optional<string>>\n\n constructor(\n postCode: string,\n addressPrefectureCode: Nullable<Optional<string>>,\n addressCity: Nullable<Optional<string>>,\n addressStreet: Nullable<Optional<string>>,\n addressBuilding: Nullable<Optional<string>>,\n phoneMobile: Nullable<Optional<string>>,\n phoneTel: Nullable<Optional<string>>,\n ) {\n this.postCode = postCode\n this.addressPrefectureCode = addressPrefectureCode\n this.addressCity = addressCity\n this.addressStreet = addressStreet\n this.addressBuilding = addressBuilding\n this.phoneMobile = phoneMobile\n this.phoneTel = phoneTel\n }\n}\n\n","import React, {useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {useLocation} from 'react-router-dom'\nimport H from 'history'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MemberEditAddressInfo} from '../../../Props/MembersEditAddressPageLocationStates'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MemberAddressDTO} from '../../../DTO/MemberAddressDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {animateScroll} from 'react-scroll'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {ContactAddressConfirmContents} from '../../Components/ConfirmContentBlocks/AddressConfirms/ContactAddressConfirmContents'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport function MembersEditAddressConfirmPage(props: Props): JSX.Element {\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location: H.Location<MemberEditAddressInfo> = useLocation<MemberEditAddressInfo>()\n const locationState: MemberEditAddressInfo = location.state\n\n const throwMBMemberError = useMBMemberError()\n\n function isInvalidLocationState(locationState: MemberEditAddressInfo): boolean {\n if (!locationState) {\n return true\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {phoneMobile, phoneTel, addressBuilding, ...rest} = locationState\n if (phoneMobile === undefined && phoneTel === undefined) {\n return true\n }\n return Object.values(rest).some(value => value === undefined)\n }\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const goToEditAddressCompletePage = async (): Promise<void> => {\n setProcessing(true)\n try {\n const response = await props.memberRepo.putAddress(new MemberAddressDTO(\n locationState.postCode,\n locationState.addressPrefectureCode,\n locationState.addressCity,\n locationState.addressStreet,\n locationState.addressBuilding,\n locationState.phoneMobile,\n locationState.phoneTel,\n ),\n true,\n )\n\n switch (response.status) {\n case CommonResponseStatus.Ok:\n props.navigator.goToEditAddressCompletePage()\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(response.errorMessageList)\n animateScroll.scrollToTop()\n break\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n }\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n const {\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n phoneMobile,\n phoneTel,\n } = locationState\n\n return (\n <MembersPageTemplate>\n <PageTitle>連絡先情報変更確認</PageTitle>\n\n <StepGuide activity={'edit'} current={'confirm'}/>\n\n <ContentBlock data-testid={'block-confirms'}>\n <ContentTitle>連絡先情報</ContentTitle>\n <PIMStack spacing={'18px'}>\n <ContentTopMessage>\n 変更はまだ完了していません。<br/>\n 下記内容をご確認の上、「確定する」ボタンを押し変更を完了してください。\n </ContentTopMessage>\n <MBContentBodyDivider/>\n <ContactAddressConfirmContents\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n phoneMobile={phoneMobile}\n phoneTel={phoneTel}\n />\n </PIMStack>\n </ContentBlock>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『確定する』ボタンを押してください。\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'determine-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToEditAddressCompletePage()}\n >\n 確定する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => props.navigator.goBack()}>\n 連絡先情報変更に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\n\nfunction Members404Page(): JSX.Element {\n return (\n <>\n <PageTitle>ご案内</PageTitle>\n <ContentBlock>\n <ContentTitle>お探しのページが見つかりません</ContentTitle>\n <ContentTopMessage>URLをご確認ください。</ContentTopMessage>\n </ContentBlock>\n </>\n )\n}\n\nexport default Members404Page\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\n\nfunction MembersInvalidOperationPage(): JSX.Element {\n return (\n <>\n <PageTitle>ご案内</PageTitle>\n <ContentBlock>\n <ContentTitle>不正な操作が行われました</ContentTitle>\n <ContentTopMessage>最初からやり直してください。</ContentTopMessage>\n </ContentBlock>\n </>\n )\n}\n\nexport default MembersInvalidOperationPage\n","import React, {useCallback} from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {LinkIconText} from '../../Molecules/LinkIconText'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersDuplicatedRegisterPageProps = {\n navigator: NavigatorForMemberPage\n onLoginButtonClick?: () => void\n}\n\nexport const MembersDuplicatedRegisterPage: React.VFC<MembersDuplicatedRegisterPageProps> = (\n props,\n) => {\n const {t} = useTranslation('member')\n const handleLoginButtonClick = useCallback((): void => {\n if (props.onLoginButtonClick) {\n props.onLoginButtonClick()\n }\n props.navigator.goToAccountTopPage()\n }, [props.navigator, props.onLoginButtonClick])\n\n return (\n <>\n <PageTitle>ご案内</PageTitle>\n <ContentBlock>\n <ContentTitle>既に登録されています</ContentTitle>\n <ContentTopMessage>\n 登録が完了しています。<br/>下記リンクよりログインしてください。\n </ContentTopMessage>\n <Spacer mt={'18px'} mb={'14px'}>\n <LinkIconText dataTestId={'login-button'} onClick={handleLoginButtonClick}>\n {t('ご案内.登録済み.リンクテキスト ログイン')}\n </LinkIconText>\n </Spacer>\n </ContentBlock>\n </>\n )\n}\n","import {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {useTranslation} from 'react-i18next'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n}\n\nexport function MembersEditAddressCompletePage(props: Props): JSX.Element {\n const {t} = useTranslation('member')\n\n function goToAccountTopPage(): void {\n props.navigator.goToAccountTopPage()\n }\n\n return (\n <MembersPageTemplate>\n <PageTitle>連絡先情報変更完了</PageTitle>\n\n <StepGuide activity={'edit'} current={'complete'}/>\n\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>連絡先情報変更完了</ContentTitle>\n <ContentTopMessage>\n 連絡先情報変更を行いました。<br/>\n ご登録されているメールアドレスに完了通知を送信しました。\n </ContentTopMessage>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n {t('MYアカウント.ページ名')}に移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {MBMemberInput} from '../../Atoms/MBMemberInput'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMWarningMessages} from '../../Atoms/Labels/PIMWarningMessages'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {LinkIconText} from '../../Molecules/LinkIconText'\n\ntype Props = {\n agreedIdList: number[]\n agreeCheckErrors: string[]\n onClick: () => void\n}\n\nexport function AgreementCheckBoxContentBlock(props: Props): JSX.Element {\n return (\n <PIMCard\n headerProps={{title: '利用規約同意', require: true}}\n testId={'block-agreement-check-box'}\n >\n <PIMStack spacing={'18px'}>\n <MBContentSubTitleTypography>\n 下記「利用規約」のリンク先より最後まで内容をご確認の上、「同意する」ボタンを押していただくと利用規約同意にチェックされます。\n </MBContentSubTitleTypography>\n\n <div data-testid={'agree-checkbox'}>\n <Spacer mt={'26px'}>\n <LinkIconText\n dataTestId={'agreement-confirm-button'}\n onClick={(): void => props.onClick()}\n >\n <MBContentSubTitleTypography>利用規約</MBContentSubTitleTypography>\n </LinkIconText>\n </Spacer>\n\n <Spacer mt={'23px'} mb={'18px'}>\n <label>\n <MBMemberInput\n className=\"form-check_01\"\n type=\"checkbox\"\n disabled={true}\n checked={props.agreedIdList.length > 0}\n hasError={props.agreeCheckErrors.length > 0}\n />\n <span className=\"txt\">利用規約を契約内容とすることに同意します。</span>\n {props.agreeCheckErrors.length > 0 && (\n <Spacer mt={'10px'}>\n <PIMWarningMessages messages={props.agreeCheckErrors}/>\n </Spacer>\n )}\n </label>\n </Spacer>\n </div>\n </PIMStack>\n </PIMCard>\n )\n}\n","import {isBlankString, isValidRegExpPattern, uniq, validateRequired, validateSelectRequired} from './MembersValidation'\nimport dayjs from 'dayjs'\nimport {ContractMethod, ContractTerm, CreditCardType} from '../../Props/ContractInputInfo'\nimport {Optional} from '../../../Common/TypeHelper'\n\nexport const validatePaymentInputTerm = (value: ContractTerm, isEdit?: boolean): string[] => {\n if (isEdit) {\n return uniq([\n ...validateSelectRequired(value, '次回契約単位'),\n ])\n }\n\n return uniq([\n ...validateSelectRequired(value, '契約単位'),\n ])\n}\n\nexport const validatePaymentInputMethod = (\n inputMethod: Optional<ContractMethod>, isEdit?: boolean,\n): string[] => {\n if (!inputMethod) {\n if (isEdit) return uniq(['次回契約のお支払い方法を選択してください。'])\n return uniq([`お支払い方法を選択してください。`])\n }\n return uniq([])\n}\n\nexport const validateCreditCardType = (\n method: Optional<string>,\n cardType: CreditCardType,\n): string[] => {\n if (method !== 'credit_card' && method !== undefined) {\n return []\n }\n\n return uniq([\n ...validateSelectRequired(cardType, 'クレジットカード'),\n ])\n}\n\nexport const validateCreditCardNumber = (\n method: Optional<string>,\n type: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (type !== 'newCard') {\n return []\n }\n\n return uniq([\n ...validateRequired(value, 'カード番号'),\n ...validateCreditCardNumberFormat(value),\n ])\n}\n\nexport const validateCreditCardHolderName = (\n method: Optional<string>,\n type: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (type !== 'newCard') {\n return []\n }\n\n return uniq([\n ...validateRequired(value, '名義人'),\n ...validateCreditCardHolderNameFormat(value),\n ])\n}\n\nexport const validateCreditCardExpireMonth = (\n method: Optional<string>,\n cardType: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (cardType !== 'newCard') {\n return []\n }\n\n return uniq([\n ...validateSelectRequired(value, '月'),\n ])\n}\n\nexport const validateCreditCardExpireYear = (\n method: Optional<string>,\n cardType: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (cardType !== 'newCard') {\n return []\n }\n\n return uniq([\n ...validateSelectRequired(value, '年'),\n ])\n}\n\nexport const validateFutureExpireDate = (\n method: Optional<string>,\n cardType: CreditCardType,\n month: string,\n year: string,\n nextContractStartDate_YYYYMMDD?: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (cardType !== 'newCard') {\n return []\n }\n if (month === '') {\n return []\n }\n if (year === '') {\n return []\n }\n\n return uniq([\n ...validateFutureDateFormat(month, year, nextContractStartDate_YYYYMMDD),\n ])\n}\n\nexport const validateCreditCardSecurityCode = (\n method: Optional<string>,\n cardType: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (cardType !== 'newCard') {\n return []\n }\n\n return uniq([\n ...validateRequired(value, 'セキュリティコード'),\n ...validateCreditCardSecurityCodeFormat(value),\n ])\n}\n\nexport const validateMyCreditCardSecurityCode = (\n method: Optional<string>,\n cardType: CreditCardType,\n value: string,\n): string[] => {\n if (method !== 'credit_card') {\n return []\n }\n if (cardType !== 'myCard') {\n return []\n }\n\n return uniq([\n ...validateRequired(value, 'セキュリティコード'),\n ...validateCreditCardSecurityCodeFormat(value),\n ])\n}\n\nexport const validateConvenienceStore = (method: Optional<string>, value: string): string[] => {\n if (method !== 'convenience_store') {\n return []\n }\n\n return uniq([\n ...validateSelectRequired(value, 'コンビニ'),\n ])\n}\n\nexport const validateMobileCarrier = (method: Optional<string>, value: string): string[] => {\n if (method !== 'mobile_carrier') {\n return []\n }\n\n return uniq([\n ...validateSelectRequired(value, 'キャリア'),\n ])\n}\n\nexport const validateCreditCardNumberFormat = (value: string): string[] => {\n if (isBlankString(value)) {\n return []\n }\n if (isValidRegExpPattern(value, /^\\d{10,16}$/)) {\n return []\n }\n return ['半角数字10桁〜16桁で入力してください。']\n}\n\nexport const validateCreditCardHolderNameFormat = (value: string): string[] => {\n if (isBlankString(value)) {\n return []\n }\n if (isValidRegExpPattern(value,\n /^[a-zA-Z \\-,./]{3,50}$/g)) {\n return []\n }\n return ['クレジットカードの表記通り半角文字で正確に入力してください。']\n}\n\nexport const validateCreditCardSecurityCodeFormat = (value: string): string[] => {\n if (isBlankString(value)) {\n return []\n }\n if (isValidRegExpPattern(value, /^\\d{3,4}$/)) {\n return []\n }\n return ['半角数字3桁〜4桁で入力してください。']\n}\n\nexport const validateFutureDateFormat = (\n month: string, year: string, nextContractStartDate_YYYYMMDD?: string,\n): string[] => {\n const value = year + month\n const expireDate = dayjs(value).format('YYYY/MM')\n\n if (!nextContractStartDate_YYYYMMDD) {\n if (expireDate >= dayjs().format('YYYY/MM')) {\n return []\n }\n\n return ['当月以降の有効期限を選択してください。']\n }\n\n const [nextStartYear, nextStartMonth] = nextContractStartDate_YYYYMMDD.split('/')\n const nextDateString = `${nextStartYear}/${nextStartMonth}`\n\n if (expireDate >= dayjs(nextDateString).format('YYYY/MM')) {\n return []\n }\n\n return ['選択されたカード有効期限は、次回契約お支払い時に有効期限が切れています。利用可能なカード有効期限を選択してください。']\n}\n","import {MBMemberInput} from '../../Atoms/MBMemberInput'\nimport React from 'react'\nimport {MailMagazine} from '../../../DTO/MailMagazineDTO'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyItemTypography, MBContentNoteWithMarkTypography} from '../../Atoms/Typographies'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport parse from \"html-react-parser\"\n\ntype Props = {\n title: string\n topMessage: string\n note: string\n mailMagazineList: MailMagazine[]\n mailMagazineIdCheckedList: number[]\n onChange: (checkedIdList: number[]) => void\n}\n\nexport function MailMagazineSelectContentBlock(props: Props): JSX.Element {\n return (\n <PIMCard\n headerProps={{title: props.title}}\n testId={'block-mail-magazine'}\n >\n <PIMStack spacing={'20px'}>\n {props.topMessage.length === 0 ? <></> :\n <MBContentBodyItemTypography>\n {parse(props.topMessage)}\n </MBContentBodyItemTypography>\n }\n <PIMStack spacing={'10px'}>\n {props.mailMagazineList.map((mailMagazine, i) => {\n const mailMagazineChecked: boolean =\n props.mailMagazineIdCheckedList.includes(mailMagazine.id)\n return (\n <label key={i}>\n <MBMemberInput\n type=\"checkbox\"\n className=\"form-check_01\"\n hasError={false}\n checked={mailMagazineChecked}\n onChange={(): void => {\n props.onChange(\n switchMailMagazineIdChecked(\n mailMagazine.id,\n props.mailMagazineIdCheckedList,\n ),\n )\n }}\n />\n <span className={'txt'}>\n {mailMagazine.name}\n </span>\n </label>\n )\n },\n )}\n {props.note.length === 0 ? <></> :\n <MBContentNoteWithMarkTypography\n note={props.note}\n />\n }\n </PIMStack>\n </PIMStack>\n </PIMCard>\n )\n}\n\nconst switchMailMagazineIdChecked = (\n mailMagazineId: number,\n mailMagazineIdCheckedList: number[],\n): number[] => {\n if (!mailMagazineIdCheckedList.includes(mailMagazineId)) {\n return [...mailMagazineIdCheckedList, mailMagazineId]\n } else {\n return mailMagazineIdCheckedList.filter((id) => {\n return id !== mailMagazineId\n })\n }\n}\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../Styles'\n\n\nconst MBMemberRadioLabel = styled.label`\n position: relative;\n cursor: pointer;\n`\n\nconst MBMemberRadioInput = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n`\n\nconst MBMemberRadioSpanAfterStyle = ({checked}: MBMemberRadioSpanProps): string | undefined => {\n return checked ? `\n &::after {\n position: absolute;\n top: 50%;\n left: 3px;\n display: block;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n content: '';\n border-radius: 100%;\n background: ${Color.Black};\n }\n `\n : undefined\n}\n\ntype MBMemberRadioSpanProps = Pick<MBMemberRadioProps,\n 'checked' | 'disabled' | 'fontRemSize' | 'isBoldLabel' | 'hasError'>\nconst MBMemberRadioSpan = styled.span<MBMemberRadioSpanProps>`\n line-height: 1.625;\n display: inline-block;\n padding-left: 26px;\n background-color: ${Color.White};\n font-size: ${({fontRemSize}): number => fontRemSize ?? 1.3}rem;\n font-weight: ${({isBoldLabel}): string => isBoldLabel ? 'bold' : 'normal'};\n ${({disabled}): string | undefined => disabled ? `color: ${Color.Grey500};` : undefined}\n cursor: ${({disabled}): string => disabled ? 'default' : 'pointer'};\n\n &::before {\n position: absolute;\n top: 50%;\n left: 0;\n display: block;\n width: 18px;\n height: 18px;\n margin-top: -9px;\n content: '';\n border: solid 1px ${({hasError}): string => hasError ? Color.ErrorInputBorderColor : Color.Grey100};\n border-radius: 100%;\n background-color: ${({hasError}): string => hasError ? Color.ErrorInputBackgroundColor : Color.White};\n }\n\n ${MBMemberRadioSpanAfterStyle}\n`\n\ntype MBMemberRadioProps = Pick<JSX.IntrinsicElements['input'],\n 'id' |\n 'name' |\n 'value' |\n 'disabled' |\n 'onChange' |\n 'checked' |\n 'autoComplete'> & {\n labelName: string\n hasError?: boolean\n isBoldLabel?: boolean\n fontRemSize?: number\n}\n\nexport const MBMemberRadio: React.VFC<MBMemberRadioProps> = (props) => {\n const {labelName, disabled, hasError, isBoldLabel, fontRemSize, ...rest} = props\n\n return (\n <MBMemberRadioLabel htmlFor={props.id}>\n <MBMemberRadioInput {...rest} type=\"radio\" disabled={disabled}/>\n <MBMemberRadioSpan\n disabled={disabled}\n checked={props.checked}\n hasError={hasError}\n isBoldLabel={isBoldLabel}\n fontRemSize={fontRemSize}\n >{labelName}</MBMemberRadioSpan>\n </MBMemberRadioLabel>\n )\n}\n","import React from 'react'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {Line} from '../../../Atoms/Line'\nimport {ContractTerm} from '../../../../Props/ContractInputInfo'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\n\nexport type LabelAndValue = {\n label: string\n value: ContractTerm\n}\n\ntype Props = {\n name: string\n labelAndValues: LabelAndValue[]\n selectedValue?: string\n hasError: boolean\n onChange: (value: ContractTerm) => void\n}\n\nexport const MBMemberRadioListForContractTerm: React.VFC<Props> = (props) => {\n return (\n <PIMStack spacing={'10px'}>\n {\n props.labelAndValues.map((labelAndValue, i) => {\n return <Line key={i}>\n <MBMemberRadio\n name={props.name}\n labelName={labelAndValue.label}\n checked={props.selectedValue === labelAndValue.value}\n hasError={props.hasError}\n onChange={(): void => {\n props.onChange(labelAndValue.value)\n }}\n />\n </Line>\n })\n }\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport {PaymentMethod} from '../../../../DTO/PaymentMethodDTO'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {ContractTerm, ErrorMessagesBaseForContractInput, generateContractTermLabelAndValueList} from '../../../../Props/ContractInputInfo'\nimport {MBMemberRadioListForContractTerm} from './MBMemberRadioListForContractTerm'\nimport {PaymentInformation} from '../../RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {MBContentNoteTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\n\ntype ErrorMessageForSelectContractTerm =\n Pick<ErrorMessagesBaseForContractInput, 'paymentInputTermErrors'>\n\ntype SelectContractTermContentsProps = {\n paymentMethodList: PaymentMethod[]\n paymentInformationList: PaymentInformation[]\n contractInputInfoStateTerm: string\n onChange: (changeSelectedTerm: ContractTerm) => void\n errorMessage: ErrorMessageForSelectContractTerm\n}\n\nexport const SelectContractTermContents: React.VFC<SelectContractTermContentsProps> = (\n {\n paymentMethodList,\n paymentInformationList,\n contractInputInfoStateTerm,\n onChange,\n errorMessage,\n },\n) => {\n return (\n <PIMCard\n headerProps={{title: '契約単位選択', require: true}}\n testId={'block-select-contract-unit'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <PIMStack spacing={'12px'}>\n <MBContentSubTitleTypography>契約単位を選択してください。</MBContentSubTitleTypography>\n {errorMessage.paymentInputTermErrors.length > 0 && (\n <div data-testid={'block-select-contract-term-warning-message'}>\n <PIMWarningMessages messages={errorMessage.paymentInputTermErrors}/>\n </div>\n )}\n </PIMStack>\n\n <div>\n <ContractUnitRadioButtons\n paymentInformationList={paymentInformationList}\n term={contractInputInfoStateTerm}\n hasError={errorMessage.paymentInputTermErrors.length > 0}\n onChange={(changeSelectedTerm: ContractTerm): void => {\n onChange(changeSelectedTerm)\n }}\n />\n <PaymentMethodList paymentList={paymentMethodList}/>\n </div>\n </PIMStack>\n </PIMCard>\n )\n}\n\ntype TermPaymentMethodPropsAddOnChange = {\n paymentInformationList: PaymentInformation[],\n term: string\n hasError: boolean\n onChange: (changeSelectedTerm: ContractTerm) => void\n}\n\nconst ContractUnitRadioButtons: React.VFC<TermPaymentMethodPropsAddOnChange> = (props) => {\n const contractTermLabelAndValueList =\n generateContractTermLabelAndValueList(\n props.paymentInformationList,\n )\n\n return <MBMemberRadioListForContractTerm\n name={'term'}\n labelAndValues={contractTermLabelAndValueList}\n selectedValue={props.term}\n hasError={props.hasError}\n onChange={(value: ContractTerm): void => props.onChange(value)}\n />\n}\n\ntype TermPaymentMethodListPair = Record<string, string[]>\n\nconst PaymentMethodList = (props: { paymentList: PaymentMethod[] }): JSX.Element => {\n const sortedTermList: string[] = Object.keys(PAYMENT.TERMS)\n .sort((a, b) => PAYMENT.TERMS[a].order - PAYMENT.TERMS[b].order)\n\n const paymentMethodListGroupByTerm: TermPaymentMethodListPair = {}\n sortedTermList.forEach(term => {\n paymentMethodListGroupByTerm[term] =\n getPaymentMethodsByTerm(props.paymentList, term)\n .map(paymentMethodKey => PAYMENT.METHODS[paymentMethodKey])\n })\n\n if (Object.keys(paymentMethodListGroupByTerm).length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n return (\n <Spacer mt=\"10px\">\n <MBContentNoteWithMarkTypography note={'以下の決済手段が選択できます。'}/>\n {\n Object.keys(paymentMethodListGroupByTerm).map((termKey, index) => {\n return (\n <Spacer ml=\"7px\" key={index}>\n {\n paymentMethodListGroupByTerm[termKey].length > 0 &&\n <MBContentNoteTypography>\n {PAYMENT.TERMS[termKey].displayLabel}:\n {paymentMethodListGroupByTerm[termKey].join('、')}\n </MBContentNoteTypography>\n }\n </Spacer>\n )\n })\n }\n </Spacer>\n )\n}\n\nconst getPaymentMethodsByTerm = (\n paymentList: PaymentMethod[],\n term: string,\n): string[] =>\n Array.from(new Set(paymentList.filter(payment => payment.term === term)\n .map(payment => payment.method)))\n","import React from 'react'\nimport {PageTitle} from '../../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MembersPageTemplate} from '../../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {LinkIconText} from '../../../Molecules/LinkIconText'\nimport {useTranslation} from 'react-i18next'\n\ntype AlreadyJoinedContentProps = {\n signboardName: string\n onClick: () => void\n}\n\nexport const AlreadyJoinedContent: React.VFC<AlreadyJoinedContentProps> = (props) => {\n const {t} = useTranslation('member')\n\n return (\n <MembersPageTemplate>\n <PageTitle>ご案内</PageTitle>\n <ContentBlock>\n <ContentTitle>{`${t('新規会員情報入力.エラーメッセージ.入会済みコンテンツタイトル')}`}</ContentTitle>\n <ContentTopMessage>\n {`${t('新規会員情報入力.エラーメッセージ.入会済み', {signboardName: props.signboardName})}`}\n </ContentTopMessage>\n <Spacer mt={'18px'} mb={'14px'}>\n <LinkIconText onClick={(): void => props.onClick()}>\n {t('MYアカウント.ページ名')}に移動する\n </LinkIconText>\n </Spacer>\n </ContentBlock>\n </MembersPageTemplate>\n )\n}\n","import React, {ComponentPropsWithoutRef} from 'react'\nimport {MembersAuth} from '../../Auth/MembersAuth'\nimport {MembersPageTemplate} from '../Molecules/BaseMembersPages/MembersPageTemplate'\n\ntype MembersPageAuthTemplateProps = ComponentPropsWithoutRef<typeof MembersPageTemplate>\n\nexport const MembersPageAuthTemplate: React.VFC<MembersPageAuthTemplateProps> = (\n props\n) => {\n const {children, ...rest} = props\n\n return (\n <MembersPageTemplate {...rest}>\n <MembersAuth>\n {children}\n </MembersAuth>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\n\ntype CardInformationDivProps = {\n disabled: boolean\n children: React.ReactNode\n}\n\nexport const CardInformationDiv: React.VFC<CardInformationDivProps> = (props) => {\n const disableLabel = (): React.CSSProperties | undefined => {\n if (props.disabled) {\n return {\n color: 'rgb(173, 173, 173)',\n }\n }\n }\n\n return (\n <div\n className=\"pl_28\"\n style={disableLabel()}\n >\n {props.children}\n </div>\n )\n}\n","import {ErrorMessagesForNewCreditCardInput, ErrorMessagesForPaymentMethodInput, NewCreditCardInputInfo} from '../../../../Props/ContractInputInfo'\nimport React from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MBMemberInput} from '../../../Atoms/MBMemberInput'\nimport {FlexContainer} from '../../../Atoms/Containers'\nimport {MBMemberSelect} from '../../../Atoms/MBMemberSelect'\nimport {CALENDAR} from '../../../../../Common/Constants'\nimport {MBContentNoteWithMarkTypography} from '../../../Atoms/Typographies'\nimport card from '../../../../../img/card.png'\nimport {convertOnBlur} from '../../../../Utils/ConvertOnBlur'\n\ntype NewCreditCardInputComponentForProps = {\n newCreditCardInputInfo: NewCreditCardInputInfo\n errorMessages: ErrorMessagesForNewCreditCardInput\n onChangeInputDetailInfo: (changeInputDetailInfo: NewCreditCardInputInfo) => void\n}\n\nexport const NewCreditCardInputComponent =\n (props: NewCreditCardInputComponentForProps): JSX.Element => {\n const creditCardInfoState = props.newCreditCardInputInfo\n || {\n cardNumber: '',\n expireMonth: '',\n expireYear: '',\n holderName: '',\n securityCode: '',\n } as NewCreditCardInputInfo\n\n function updateCreditCardInfo(\n name: string, value: string, creditCardInfoState: NewCreditCardInputInfo,\n ): NewCreditCardInputInfo {\n return {\n ...creditCardInfoState,\n [name]: value,\n }\n }\n\n function handleChangeInput(\n e: React.ChangeEvent<HTMLInputElement>, creditCardInfoState: NewCreditCardInputInfo,\n ): NewCreditCardInputInfo {\n const {name, value} = e.target\n return updateCreditCardInfo(name, value, creditCardInfoState)\n }\n\n function handleChangeSelect(\n e: React.ChangeEvent<HTMLSelectElement>, creditCardInfoState: NewCreditCardInputInfo,\n ): NewCreditCardInputInfo {\n const {name, value} = e.target\n return updateCreditCardInfo(name, value, creditCardInfoState)\n }\n\n const hasErrorForInvalidCard = props.errorMessages.invalidCardErrors.length > 0\n\n return (\n <Spacer ml={'10%'} dataTestId=\"block-input-credit-card-information\">\n <Spacer mt={'6px'} mb={'12px'}>\n <ErrorDisplay errors={props.errorMessages.invalidCardErrors}/>\n </Spacer>\n <Spacer mt={'6px'} mb={'12px'}>\n <p className=\"text-hdg_01\">\n 以下のカード情報は全てカードの表記通り半角英数字で正確に入力してください。\n <span id=\"card_text\"/>\n </p>\n </Spacer>\n <Spacer my={'4px'}><label htmlFor=\"cardNumber\">カード番号</label></Spacer>\n <Spacer mt={'4px'} mb={'12px'}>\n <MBMemberInput\n id=\"cardNumber\"\n name=\"cardNumber\"\n placeholder=\"例)1234567890123456\"\n type=\"tel\"\n className=\"form-text_01 w_100\"\n minLength={10}\n maxLength={16}\n value={creditCardInfoState.cardNumber}\n hasError={\n props.errorMessages.creditCardNumberErrors.length > 0 ||\n hasErrorForInvalidCard\n }\n onChange={(e): void => {\n props.onChangeInputDetailInfo(\n handleChangeInput(e, creditCardInfoState),\n )\n }}\n onBlur={(e): void => {\n props.onChangeInputDetailInfo(\n updateCreditCardInfo(\n e.target.name,\n convertOnBlur(e.target.name, e.target.value),\n creditCardInfoState,\n ),\n )\n }}\n />\n <Spacer mt={'10px'}>\n <ErrorDisplay errors={props.errorMessages.creditCardNumberErrors}/>\n </Spacer>\n </Spacer>\n <Spacer my={'4px'}><label htmlFor=\"cardExpirationMonth\">カード有効期限</label></Spacer>\n <Spacer mt={'4px'} mb={'12px'}>\n <FlexContainer>\n <MBMemberSelect\n id=\"cardExpirationMonth\"\n name=\"expireMonth\"\n width={'35%'}\n value={creditCardInfoState.expireMonth}\n hasError={\n props.errorMessages.creditCardExpireMonthErrors.length > 0 ||\n props.errorMessages.creditCardFutureExpireDateErrors.length > 0 ||\n hasErrorForInvalidCard\n }\n onChange={(e): void => {\n props.onChangeInputDetailInfo(\n handleChangeSelect(e, creditCardInfoState),\n )\n }}\n >\n <option value=\"\" hidden disabled>月</option>\n {CALENDAR.MONTHS.map((month, i) => (\n <option key={i} value={month || ''}>{month}</option>\n ))}\n </MBMemberSelect>\n <Spacer mx={'5px'} my={'7px'}>/</Spacer>\n <MBMemberSelect\n id=\"cardExpirationYear\"\n name=\"expireYear\"\n className=\"form-select_01 w_45\"\n value={creditCardInfoState.expireYear}\n hasError={\n props.errorMessages.creditCardExpireYearErrors.length > 0 ||\n props.errorMessages.creditCardFutureExpireDateErrors.length > 0 ||\n hasErrorForInvalidCard\n }\n onChange={(e): void => {\n props.onChangeInputDetailInfo(\n handleChangeSelect(e, creditCardInfoState),\n )\n }}\n >\n <option value=\"\" hidden disabled>年</option>\n {CALENDAR.YEARS_FOR_CREDIT_CARD.map((year, i) => (\n <option key={i} value={year || ''}>{year}</option>\n ))}\n </MBMemberSelect>\n </FlexContainer>\n <Spacer mt={'10px'}>\n <ErrorDisplay errors={[\n ...props.errorMessages.creditCardExpireMonthErrors,\n ...props.errorMessages.creditCardExpireYearErrors,\n ...props.errorMessages.creditCardFutureExpireDateErrors,\n ]}/>\n </Spacer>\n </Spacer>\n <Spacer my={'4px'}><label htmlFor=\"CDTCRD_HOLDER\">名義人</label></Spacer>\n <Spacer mt={'4px'} mb={'12px'}>\n <MBMemberInput\n id=\"CDTCRD_HOLDER\"\n name=\"holderName\"\n type=\"text\"\n className=\"form-text_01 w_100\"\n maxLength={50}\n placeholder=\"例)TARO YAMADA\"\n value={creditCardInfoState.holderName}\n hasError={\n props.errorMessages.creditCardHolderNameErrors.length > 0 ||\n hasErrorForInvalidCard\n }\n onChange={(e): void => {\n props.onChangeInputDetailInfo(\n handleChangeInput(e, creditCardInfoState),\n )\n }}\n />\n <Spacer mt={'10px'}>\n <ErrorDisplay errors={props.errorMessages.creditCardHolderNameErrors}/>\n </Spacer>\n </Spacer>\n <SecurityCodeInputForm\n securityCode={creditCardInfoState.securityCode}\n errorMessages={{\n ...props.errorMessages,\n myCreditCardSecurityCodeErrors: [],\n }}\n onChangeInputSecurityCode={(value): void => {\n props.onChangeInputDetailInfo(\n updateCreditCardInfo('securityCode', value, creditCardInfoState),\n )\n }}\n />\n </Spacer>\n )\n }\n\ntype ErrorMessageListForSecurityCodeInputForm =\n Pick<ErrorMessagesForPaymentMethodInput,\n 'invalidCardErrors' |\n 'myCreditCardSecurityCodeErrors' |\n 'creditCardSecurityCodeErrors'>\n\ntype SecurityCodeInputFormProps = {\n securityCode: string\n errorMessages: ErrorMessageListForSecurityCodeInputForm\n onChangeInputSecurityCode: (changeInputSecurityCode: string) => void\n}\n\nexport const SecurityCodeInputForm = (props: SecurityCodeInputFormProps): JSX.Element => {\n return (\n <>\n <Spacer my={'4px'}><label htmlFor=\"security-code\">セキュリティコード</label></Spacer>\n <Spacer mt={'4px'} mb={'12px'}>\n <MBMemberInput\n id=\"security-code\"\n name=\"securityCode\"\n type=\"tel\"\n autoComplete={'off'}\n className=\"form-text_01 w_70px\"\n minLength={3}\n maxLength={4}\n value={props.securityCode}\n hasError={\n props.errorMessages.invalidCardErrors.length > 0 ||\n props.errorMessages.myCreditCardSecurityCodeErrors.length > 0 ||\n props.errorMessages.creditCardSecurityCodeErrors.length > 0\n }\n onChange={(e): void => {\n props.onChangeInputSecurityCode(e.target.value)\n }}\n onBlur={(e): void => {\n props.onChangeInputSecurityCode(convertOnBlur(e.target.name, e.target.value))\n }}\n />\n <Spacer mb={'12px'}>\n <ErrorDisplay errors={[\n ...props.errorMessages.creditCardSecurityCodeErrors,\n ...props.errorMessages.myCreditCardSecurityCodeErrors,\n ]}/>\n </Spacer>\n <Spacer mb={'20px'}>\n <Spacer mb={'4px'}>\n <MBContentNoteWithMarkTypography\n note={'セキュリティコードとはクレジットカード番号とは別にカード裏面に印刷されている3桁の数字です。'}\n />\n </Spacer>\n <MBContentNoteWithMarkTypography\n note={'AMERICAN EXPRESS カードは表面右上または左上に4桁の数字で印刷されています。'}\n />\n </Spacer>\n <div><img className=\"mw_100\" src={card} alt=\"example-security-code\"/></div>\n\n </Spacer>\n </>\n )\n}\n","import {CreditCardInfo, DisplayCreditCardExpireDate, ErrorMessagesForNewCreditCardInput, ErrorMessagesForPaymentMethodInput, MyCreditCardInfo, NewCreditCardInputInfo, SecurityCodeForMyCreditCard, UsingMyCreditCardInfo} from '../../../../Props/ContractInputInfo'\nimport dayjs from 'dayjs'\nimport {Optional} from '../../../../../Common/TypeHelper'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {CardInformationDiv} from './CardInformationDiv'\nimport React from 'react'\nimport {ColumnFlexContainer, FlexContainer} from '../../../Atoms/Containers'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MBContentBodyItemWarningMessageTypography} from '../../../Atoms/Typographies'\nimport {MBDeleteButton} from '../../../Atoms/Buttons'\nimport {ExpiredCardBadge, MBInUseBadge} from '../../../Atoms/Badges'\nimport {NewCreditCardInputComponent, SecurityCodeInputForm} from './NewCreditCardInputComponent'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\n\nexport type SelectCreditCardRadioListForProps = {\n myCreditCardInfoList: UsingMyCreditCardInfo[]\n creditCardInfo: CreditCardInfo\n nextContractStartDate_YYYYMMDD?: string\n newCreditCardRegisterDisable: boolean\n errorMessages: ErrorMessagesForPaymentMethodInput\n onChangeInputDetailInfo: (changeInputDetailInfo: CreditCardInfo) => void\n onDeleteCardButtonClick?: (deleteCardInfo: MyCreditCardInfo) => void\n}\n\nexport const SelectCreditCardRadioList =\n (props: SelectCreditCardRadioListForProps): JSX.Element => {\n\n return (\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>}>\n {\n props.myCreditCardInfoList.length !== 0 &&\n props.myCreditCardInfoList.map((myCreditCardInfo, i) => {\n const expired =\n isExpiredCreditCard(myCreditCardInfo.expireDate, props.nextContractStartDate_YYYYMMDD)\n const hasError =\n (props.errorMessages.errorMyCreditCardId === myCreditCardInfo.cardId)\n || (props.errorMessages.creditCardTypeErrors.length > 0)\n\n return (\n <div data-testid={`block-input-my-credit-card-information${i}`} key={i}>\n <ColumnFlexContainer>\n <Spacer mb={'12px'}>\n <FlexContainer alignItems={'baseline'} gap={'6px'}>\n <div>\n <MBMemberRadio\n id={`my-credit-card-${i + 1}`}\n name=\"payment1\"\n labelName={`登録済みクレジットカード${(i + 1)}`}\n disabled={expired}\n hasError={expired ? false : hasError}\n isBoldLabel={true}\n fontRemSize={1.2}\n value={myCreditCardInfo.cardId}\n onChange={(e): void => {\n props.onChangeInputDetailInfo({\n creditCardType: 'myCard',\n myCreditCardInfo: {\n selectedCardId: e.target.value,\n securityCodeMap:\n props.creditCardInfo.myCreditCardInfo.securityCodeMap,\n },\n newCreditCardInfo: props.creditCardInfo.newCreditCardInfo,\n })\n }}\n checked={isCheckedMyCardId(props.creditCardInfo, myCreditCardInfo)}\n />\n </div>\n <ColumnFlexContainer gap={'2px'}>\n {\n expired && <div><ExpiredCardBadge/></div>\n }\n {\n myCreditCardInfo.isInUse && <div><MBInUseBadge/></div>\n }\n </ColumnFlexContainer>\n </FlexContainer>\n </Spacer>\n {hasError && (\n <Spacer ml={'28px'} my={'12px'}>\n <ErrorDisplay\n errors={hasError ? props.errorMessages.invalidCardErrors : []}\n />\n </Spacer>\n )}\n <CardInformationDiv disabled={expired}>\n <FlexContainer alignItems={'baseline'}>\n {myCreditCardInfo.cardNumber}\n <DisplayCreditCardExpireDate expireDate={myCreditCardInfo.expireDate}/>\n </FlexContainer>\n </CardInformationDiv>\n {\n (\n props.creditCardInfo.creditCardType === 'myCard' &&\n myCreditCardInfo.cardId\n === props.creditCardInfo.myCreditCardInfo.selectedCardId\n ) &&\n <Spacer ml={'10%'}>\n <SecurityCodeInputForm\n securityCode={\n findSecurityCodeByCardId(\n props.creditCardInfo.myCreditCardInfo.securityCodeMap,\n myCreditCardInfo.cardId,\n )?.securityCode || ''\n }\n errorMessages={\n hasError\n ? {\n ...props.errorMessages,\n creditCardSecurityCodeErrors: [],\n }\n : {\n ...props.errorMessages,\n invalidCardErrors: [],\n creditCardSecurityCodeErrors: [],\n myCreditCardSecurityCodeErrors: [],\n }\n }\n onChangeInputSecurityCode={(value): void => {\n const _securityCodeMap: SecurityCodeForMyCreditCard[] =\n Object.assign(props.creditCardInfo.myCreditCardInfo.securityCodeMap)\n const findCardIdInSecurityCodeMap =\n findSecurityCodeByCardId(_securityCodeMap, myCreditCardInfo.cardId)\n if (findCardIdInSecurityCodeMap) {\n findCardIdInSecurityCodeMap.securityCode = value\n }\n\n props.onChangeInputDetailInfo({\n creditCardType: 'myCard',\n myCreditCardInfo: {\n selectedCardId:\n props.creditCardInfo.myCreditCardInfo.selectedCardId,\n securityCodeMap: _securityCodeMap,\n },\n newCreditCardInfo: props.creditCardInfo.newCreditCardInfo,\n })\n }}\n />\n </Spacer>\n }\n {\n !myCreditCardInfo.isInUse &&\n <Spacer ml={'auto'} mr={'16px'} mt={'12px'}>\n <MBDeleteButton\n testId={`delete-button-${myCreditCardInfo.cardId}`}\n onClick={(): void => {\n if (props.onDeleteCardButtonClick) {\n props.onDeleteCardButtonClick(myCreditCardInfo)\n }\n }}/>\n </Spacer>\n }\n </ColumnFlexContainer>\n </div>\n )\n })\n }\n\n <div data-testid={`block-input-new-credit-card`}>\n <FlexContainer>\n <MBMemberRadio\n id={`new-credit-card`}\n name=\"payment1\"\n labelName={'新規クレジットカード'}\n isBoldLabel={true}\n fontRemSize={1.2}\n value={'newCard'}\n disabled={props.newCreditCardRegisterDisable}\n hasError={hasErrorForNewCreditCardRadioButton(\n props.errorMessages.creditCardTypeErrors,\n props.errorMessages.errorMyCreditCardId,\n props.errorMessages)}\n onChange={(): void => {\n props.onChangeInputDetailInfo({\n creditCardType: 'newCard',\n myCreditCardInfo: props.creditCardInfo.myCreditCardInfo,\n newCreditCardInfo: props.creditCardInfo.newCreditCardInfo,\n })\n }}\n checked={props.creditCardInfo.creditCardType === 'newCard'}\n />\n\n </FlexContainer>\n {\n props.newCreditCardRegisterDisable &&\n <Spacer mt={'12px'} ml={'56px'}>\n <MBContentBodyItemWarningMessageTypography>\n クレジットカード情報の登録は5枚までとなります。新規クレジットカードを選択するためには、登録されたクレジットカード情報を削除してください。\n </MBContentBodyItemWarningMessageTypography>\n </Spacer>\n }\n {\n props.creditCardInfo.creditCardType === 'newCard' &&\n <NewCreditCardInputComponent\n newCreditCardInputInfo={props.creditCardInfo.newCreditCardInfo}\n errorMessages={props.errorMessages.errorMyCreditCardId === ''\n ? props.errorMessages\n : {\n ...props.errorMessages,\n invalidCardErrors: [],\n }\n }\n onChangeInputDetailInfo={\n (value: NewCreditCardInputInfo): void => {\n props.onChangeInputDetailInfo({\n creditCardType: 'newCard',\n newCreditCardInfo: value,\n myCreditCardInfo: props.creditCardInfo.myCreditCardInfo,\n })\n }\n }\n />\n }\n </div>\n </PIMStack>\n )\n }\n\nexport const isExpiredCreditCard =\n (cardExpireDate_MMYYYY: string, nextContractStartDate_YYYYMMDD?: string): boolean => {\n const [expireMonth, expireYear] = cardExpireDate_MMYYYY.split('/')\n const expireDateString = `${expireYear}/${expireMonth}`\n const expireDate = dayjs(expireDateString).format('YYYY/MM')\n\n if (!nextContractStartDate_YYYYMMDD) {\n return expireDate < dayjs().format('YYYY/MM')\n }\n\n const [nextStartYear, nextStartMonth] = nextContractStartDate_YYYYMMDD.split('/')\n const nextDateString = `${nextStartYear}/${nextStartMonth}`\n\n return expireDate < dayjs(nextDateString).format('YYYY/MM')\n }\n\nexport const isCheckedMyCardId =\n (creditCardInfo: CreditCardInfo, myCreditCardInfo: MyCreditCardInfo): boolean => {\n if (creditCardInfo.creditCardType === 'myCard') {\n return (myCreditCardInfo.cardId === creditCardInfo.myCreditCardInfo.selectedCardId)\n }\n\n return false\n }\n\nexport const findSecurityCodeByCardId = (\n securityCodeMap: SecurityCodeForMyCreditCard[],\n cardId: string,\n): Optional<SecurityCodeForMyCreditCard> => {\n\n return securityCodeMap.find(item => item.cardId === cardId)\n}\n\nconst hasErrorForNewCreditCardRadioButton = (\n cardTypeErrorMessage: string[],\n errorMyCardId: string,\n newCardErrorMessages: ErrorMessagesForNewCreditCardInput): boolean => {\n const isInvalidCardError = (): boolean => {\n if (errorMyCardId === '') {\n return newCardErrorMessages.invalidCardErrors.length > 0\n }\n return false\n }\n\n return (\n isInvalidCardError() ||\n cardTypeErrorMessage.length > 0 ||\n newCardErrorMessages.creditCardNumberErrors.length > 0 ||\n newCardErrorMessages.creditCardExpireMonthErrors.length > 0 ||\n newCardErrorMessages.creditCardExpireYearErrors.length > 0 ||\n newCardErrorMessages.creditCardFutureExpireDateErrors.length > 0 ||\n newCardErrorMessages.creditCardHolderNameErrors.length > 0 ||\n newCardErrorMessages.creditCardSecurityCodeErrors.length > 0\n )\n}\n","import {ErrorMessagesForPaymentMethodInput, MobileCarrierInfo, MobileCarrierKey} from '../../../../Props/ContractInputInfo'\nimport React, {useCallback} from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\n\nexport type ErrorMessageForMobileCarrierInput =\n Pick<ErrorMessagesForPaymentMethodInput, 'mobileCarrierErrors'>\n\ntype MobileCarrierInputComponentForProps = {\n mobileCarrierInputInfo: MobileCarrierInfo\n errorMessage: ErrorMessageForMobileCarrierInput\n onChangeInputDetailInfo: (changeInputDetailInfo: MobileCarrierInfo) => void\n}\ntype MobileCarrierInfoListItem = { name: string, carrierKey: MobileCarrierKey }\nconst mobileCarrierInfoList: MobileCarrierInfoListItem[] = [\n {\n name: 'docomo',\n carrierKey: 'docomo'\n },\n {\n name: 'softbank',\n carrierKey: 'softbank'\n },\n {\n name: 'au',\n carrierKey: 'au'\n }\n]\n\n\nexport const MobileCarrierInputComponent: React.VFC<MobileCarrierInputComponentForProps> =\n (props) => {\n const mobileCarrierInfoState = props.mobileCarrierInputInfo\n || {\n carrierKey: '',\n } as MobileCarrierInfo\n\n const updateMobileCarrierInfo = useCallback((\n value: MobileCarrierKey, mobileCarrierInfo: MobileCarrierInfo,\n ): MobileCarrierInfo => {\n return {\n ...mobileCarrierInfo,\n carrierKey: value,\n }\n }, [])\n\n return (\n <Spacer ml={'10%'} dataTestId={'block-input-mobile-carrier-information'}>\n <Spacer mt={'18px'}>\n <PIMStack spacing={'10px'}>\n <div>決済キャリア</div>\n\n {mobileCarrierInfoList.map((mobileCarrierInfo) => {\n return (\n <MBMemberRadio\n key={mobileCarrierInfo.carrierKey}\n labelName={mobileCarrierInfo.name}\n value={mobileCarrierInfo.carrierKey}\n hasError={props.errorMessage.mobileCarrierErrors.length > 0}\n onChange={(): void => {\n props.onChangeInputDetailInfo(\n updateMobileCarrierInfo(mobileCarrierInfo.carrierKey as\n MobileCarrierKey, mobileCarrierInfoState),\n )\n }}\n checked={props.mobileCarrierInputInfo.carrierKey === mobileCarrierInfo.carrierKey}\n />\n )\n })}\n\n {props.errorMessage.mobileCarrierErrors.length > 0 && (\n <PIMWarningMessages messages={props.errorMessage.mobileCarrierErrors}/>\n )}\n </PIMStack>\n </Spacer>\n </Spacer>\n )\n }\n","import {ConvenienceStoreInfo, CreditCardInfo, MobileCarrierInfo, NewCreditCardInputInfo, PaymentInputDetail, UsingMyCreditCardInfo} from '../../../../Props/ContractInputInfo'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport React from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {SelectCreditCardRadioList, SelectCreditCardRadioListForProps} from '../../../Components/PaymentsRelations/InputContentBlocks/SelectCreditCardRadioList'\nimport {NewCreditCardInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/NewCreditCardInputComponent'\nimport {MobileCarrierInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/MobileCarrierInputComponent'\nimport {ConvenienceStoreInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/ConvenienceStoreInputComponent'\nimport {DisplayInputDetailPaymentMethodForProps, DisplayPaymentMethodsProps} from '../../Signup/Components/SignupDisplayPaymentMethodsRadioList'\n\nexport type JoinDisplayPaymentMethodsProps = DisplayPaymentMethodsProps & {\n myCreditCardInfoList?: UsingMyCreditCardInfo[]\n} & Pick<JoinDisplayInputDetailPaymentMethodForProps, 'onDeleteCardButtonClick'>\n\nexport const JoinDisplayPaymentMethodsRadioList: React.VFC<JoinDisplayPaymentMethodsProps> = (\n props,\n) => {\n return (\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showFirstDivider showEndDivider>\n {props.paymentMethodList.map((paymentMethod, idx) => {\n const checked = props.paymentInputDetailWithMethod.method === paymentMethod\n\n return (\n <div key={`payment-method-${idx}`}>\n <MBMemberRadio\n id={`payment-${idx}`}\n name=\"payment\"\n labelName={PAYMENT.METHODS_FOR_RADIO_LABEL[paymentMethod]}\n disabled={props.disabled}\n hasError={props.errorMessages.paymentInputMethodErrors.length > 0}\n onChange={(): void => {\n props.onChangeSelectedMethod(paymentMethod)\n }}\n checked={checked}\n isBoldLabel\n />\n <JoinDisplayInputDetailPaymentMethod\n paymentMethod={paymentMethod}\n myCreditCardInfoList={props.myCreditCardInfoList}\n paymentInputDetailWithMethod={props.paymentInputDetailWithMethod}\n errorMessages={props.errorMessages}\n onChangeInputDetailInfo={\n (value: PaymentInputDetail): void => props.onChangeInputDetailInfo(value)\n }\n onDeleteCardButtonClick={props.onDeleteCardButtonClick}\n />\n </div>\n )\n })}\n </PIMStack>\n )\n}\n\nexport type JoinDisplayInputDetailPaymentMethodForProps = DisplayInputDetailPaymentMethodForProps &\n {\n myCreditCardInfoList?: UsingMyCreditCardInfo[]\n } & Pick<SelectCreditCardRadioListForProps, 'onDeleteCardButtonClick'>\n\nconst JoinDisplayInputDetailPaymentMethod =\n (props: JoinDisplayInputDetailPaymentMethodForProps): JSX.Element => {\n if (props.paymentInputDetailWithMethod.method !== props.paymentMethod) {\n return <></>\n }\n\n switch (props.paymentInputDetailWithMethod.method) {\n case 'credit_card':\n if (!props.myCreditCardInfoList || props.myCreditCardInfoList.length === 0) {\n return (\n <NewCreditCardInputComponent\n newCreditCardInputInfo={\n props.paymentInputDetailWithMethod.creditCard.newCreditCardInfo}\n errorMessages={props.errorMessages}\n onChangeInputDetailInfo={\n (value: NewCreditCardInputInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: {\n creditCardType: 'newCard',\n newCreditCardInfo: value,\n myCreditCardInfo:\n props.paymentInputDetailWithMethod.creditCard.myCreditCardInfo,\n },\n mobileCarrier: props.paymentInputDetailWithMethod.mobileCarrier,\n convenienceStore: props.paymentInputDetailWithMethod.convenienceStore,\n })\n }\n />\n )\n }\n\n return (\n <Spacer ml={'5%'}>\n <Spacer mb={'16px'}>\n <ErrorDisplay errors={props.errorMessages.creditCardTypeErrors}/>\n </Spacer>\n <SelectCreditCardRadioList\n myCreditCardInfoList={props.myCreditCardInfoList}\n creditCardInfo={props.paymentInputDetailWithMethod.creditCard}\n newCreditCardRegisterDisable={(props.myCreditCardInfoList || []).length >= 5}\n errorMessages={props.errorMessages}\n onChangeInputDetailInfo={\n (value: CreditCardInfo): void => props.onChangeInputDetailInfo({\n creditCard: value,\n mobileCarrier: props.paymentInputDetailWithMethod.mobileCarrier,\n convenienceStore: props.paymentInputDetailWithMethod.convenienceStore,\n })\n }\n onDeleteCardButtonClick={props.onDeleteCardButtonClick}\n />\n </Spacer>\n )\n\n case 'mobile_carrier':\n return <MobileCarrierInputComponent\n mobileCarrierInputInfo={props.paymentInputDetailWithMethod.mobileCarrier}\n errorMessage={props.errorMessages}\n onChangeInputDetailInfo={\n (value: MobileCarrierInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: props.paymentInputDetailWithMethod.creditCard,\n mobileCarrier: value,\n convenienceStore: props.paymentInputDetailWithMethod.convenienceStore,\n })\n }\n />\n case 'convenience_store':\n return <ConvenienceStoreInputComponent\n convenienceStoreInputInfo={props.paymentInputDetailWithMethod.convenienceStore}\n errorMessage={props.errorMessages}\n onChangeInputDetailInfo={\n (value: ConvenienceStoreInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: props.paymentInputDetailWithMethod.creditCard,\n mobileCarrier: props.paymentInputDetailWithMethod.mobileCarrier,\n convenienceStore: value,\n })\n }\n />\n default:\n throw new MBMemberError('SystemError')\n }\n }\n","import {\n ContractMethod,\n getContractMethodsByTerm,\n PaymentInputDetail,\n UsingMyCreditCardInfo,\n} from '../../../../Props/ContractInputInfo'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport React from 'react'\n\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {\n MBContentNoteWithMarkTypography,\n MBContentSubTitleTypography,\n} from '../../../Atoms/Typographies'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {\n JoinDisplayPaymentMethodsProps,\n JoinDisplayPaymentMethodsRadioList,\n} from './JoinDisplayPaymentMethodsRadioList'\nimport {\n PaymentMethodRadioListProps,\n SelectPaymentMethodContentsProps,\n} from '../../Signup/Components/SignupSelectPaymentMethodContents'\n\nexport type JoinSelectPaymentMethodContentsProps = SelectPaymentMethodContentsProps & {\n myCreditCardInfoList?: UsingMyCreditCardInfo[]\n} & Pick<JoinPaymentMethodRadioListProps, 'onDeleteCardButtonClick'>\n\nexport const JoinSelectPaymentMethodContents: React.VFC<JoinSelectPaymentMethodContentsProps> = (\n {\n paymentMethodList,\n myCreditCardInfoList,\n contractInputInfoState,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n errorMessages,\n onDeleteCardButtonClick,\n },\n) => {\n const contractMethods = getContractMethodsByTerm(paymentMethodList, contractInputInfoState.term)\n\n return (\n <PIMCard\n headerProps={{title: 'お支払い情報入力', require: true}}\n testId={'block-input-pay-information'}\n >\n <div>\n <MBContentSubTitleTypography>\n 代金のお支払い方法を選択してください。\n </MBContentSubTitleTypography>\n <Spacer mt={'10px'}>\n <MBContentNoteWithMarkTypography note={\n contractMethods.find(contractMethods => contractMethods === 'convenience_store')\n ? 'コンビニ決済以外は自動課金継続となります。'\n : '自動課金継続となります。'\n }/>\n </Spacer>\n {errorMessages.paymentInputMethodErrors.length > 0 && (\n <Spacer mt={'12px'}>\n <PIMWarningMessages messages={errorMessages.paymentInputMethodErrors}/>\n </Spacer>\n )}\n </div>\n\n <Spacer mt={'18px'}>\n <JoinPaymentMethodRadioList\n contractMethods={contractMethods}\n myCreditCardInfoList={myCreditCardInfoList}\n contractInputInfo={contractInputInfoState}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(changeSelectedMethod: ContractMethod): void => {\n onChangeSelectedMethod(changeSelectedMethod)\n }}\n onChangeInputDetailInfo={(changeInputDetailInfo: PaymentInputDetail): void => {\n onChangeInputDetailInfo(changeInputDetailInfo)\n }}\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n />\n </Spacer>\n </PIMCard>\n )\n}\n\nexport type JoinPaymentMethodRadioListProps = PaymentMethodRadioListProps & {\n myCreditCardInfoList?: UsingMyCreditCardInfo[]\n} & Pick<JoinDisplayPaymentMethodsProps, 'onDeleteCardButtonClick'>\n\nconst JoinPaymentMethodRadioList: React.VFC<JoinPaymentMethodRadioListProps> = (\n {\n contractMethods,\n myCreditCardInfoList,\n contractInputInfo,\n errorMessages,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n onDeleteCardButtonClick,\n },\n) => {\n if (Object.keys(contractMethods).length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n return <JoinDisplayPaymentMethodsRadioList\n paymentMethodList={contractMethods}\n myCreditCardInfoList={myCreditCardInfoList}\n paymentInputDetailWithMethod={contractInputInfo}\n disabled={contractInputInfo.term === ''}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(value: ContractMethod): void => onChangeSelectedMethod(value)}\n onChangeInputDetailInfo={(value: PaymentInputDetail): void => onChangeInputDetailInfo(value)}\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n />\n}\n","import React from 'react'\nimport {PageTitle} from '../../../Molecules/BaseMembersPages/PageTitle'\nimport {MembersPageTemplate} from '../../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Signboard} from '../../../../DTO/SignboardDTO'\nimport {ErrorSummary} from '../../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {PIMSecondaryButton} from '../../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMPageActions} from '../../../Atoms/Layouts/PIMPageActions'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {useTranslation} from 'react-i18next'\n\ntype JoinErrorCvsReadyContentProps = {\n signboard: Signboard\n goToAccountTopPage: () => void\n dataTestId?: string\n}\n\nexport const JoinErrorCvsReadyContent: React.VFC<JoinErrorCvsReadyContentProps> = (\n {\n signboard,\n goToAccountTopPage,\n dataTestId\n }\n) => {\n const {t} = useTranslation('member')\n\n return (\n <MembersPageTemplate signboard={signboard} dataTestId={dataTestId}>\n <PageTitle>{`${signboard.signupName} 新規会員情報入力`}</PageTitle>\n <ErrorSummary\n display={true}\n headline={'現在コンビニお支払い待ちのため、入会のお手続きはできません。'}\n detail={'お支払い方法変更をご希望の場合には、コンビニお支払い期限を過ぎた後に再度入会のお手続きを行ってください。'}\n />\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={():void => goToAccountTopPage()}>\n {t('MYアカウント.ページ名')}に移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {EnrollmentReasonInfo} from '../../../DTO/BucketHeader'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {MBMemberSelect} from '../../Atoms/MBMemberSelect'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {useTranslation} from 'react-i18next'\n\nexport type EnrollmentReasonSelectedInfo = {\n bucketId: number\n enrollmentReasonId: Optional<number>\n}\n\ntype EnrollmentReasonSelectContentBlockProps = {\n enrollmentReasonInfoList: Optional<EnrollmentReasonInfo[]>\n enrollmentReasonSelectedInfo: Optional<EnrollmentReasonSelectedInfo>\n onChange: (enrollmentReasonSelectedInfo: EnrollmentReasonSelectedInfo) => void\n errorMessages: string[]\n}\nexport const EnrollmentReasonSelectContentBlock:\n React.VFC<EnrollmentReasonSelectContentBlockProps> = (\n {\n enrollmentReasonInfoList,\n enrollmentReasonSelectedInfo,\n onChange,\n errorMessages,\n },\n) => {\n const {t} = useTranslation('member')\n\n if (!enrollmentReasonInfoList\n || enrollmentReasonInfoList.length === 0\n || !enrollmentReasonSelectedInfo) {\n return <></>\n }\n\n return (\n <PIMCard\n headerProps={{title: t('新規登録情報入力.入会動機選択.見出し'), require: true}}\n testId={'selector-enrollment-reason-content-block'}\n >\n <MBMemberSelect\n name={'enrollmentReason'}\n value={enrollmentReasonSelectedInfo?.enrollmentReasonId}\n hasError={errorMessages.length > 0}\n onChange={(e): void => {\n const targetValueNum = Number(e.target.value)\n onChange({\n ...enrollmentReasonSelectedInfo,\n enrollmentReasonId: targetValueNum,\n })\n }}\n >\n <option value={''} hidden>{'選択してください'}</option>\n {enrollmentReasonInfoList.map(enrollmentReasonInfo => (\n <option key={enrollmentReasonInfo.id} value={enrollmentReasonInfo.id}>\n {enrollmentReasonInfo.label}\n </option>\n ))}\n </MBMemberSelect>\n <ErrorDisplay errors={errorMessages}/>\n </PIMCard>\n )\n}\n","import React from 'react'\nimport {Color} from '../../Styles'\nimport styled from '@emotion/styled'\nimport {MemberCircleExclamationIcon} from './Bases/MemberCircleExclamationIcon'\nimport AttentionBorderColor = Color.AttentionBorderColor\n\nconst IconBlock = styled.div`\n width: 20px;\n height: 20px;\n position: relative;\n margin-right: 8px;\n`\n\nconst BlackCircle = styled.div`\n background-color: ${Color.Black};\n border-radius: 50%;\n width: 15px;\n height: 15px;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n`\n\nconst IconPosition = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n`\n\nexport const MemberAttentionExclamationIcon: React.VFC = () => {\n return <IconBlock>\n <BlackCircle/>\n <IconPosition>\n <MemberCircleExclamationIcon color={AttentionBorderColor} size={'xl'}/>\n </IconPosition>\n </IconBlock>\n}\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {ColumnFlexContainer} from '../../../Atoms/Containers'\nimport {Color} from '../../../Styles'\nimport {Typography} from '../../../Atoms/Typographies'\nimport {MemberAttentionExclamationIcon} from '../../../Atoms/Icons/MemberAttentionExclamationIcon'\n\nexport type AttentionSummaryProps = {\n display: boolean\n headline: string\n details?: string[]\n testId?: string\n}\nexport const AttentionSummary: React.VFC<AttentionSummaryProps> = (\n {\n display,\n headline,\n details,\n testId,\n },\n) => {\n return (<>\n {display && (\n <AttentionSummaryCard data-testid={testId ?? 'div-attention-card'}>\n <HeadlineArea>\n <StyledDiv>\n <MemberAttentionExclamationIcon/>\n <ErrorSummaryHeadlineMessage>{headline}</ErrorSummaryHeadlineMessage>\n </StyledDiv>\n </HeadlineArea>\n {details && (\n <Spacer mt={'10px'}>\n <ColumnFlexContainer textAlign={'center'} justifyContent={'center'} gap={1}>\n <AttentionSummaryDetailMessages details={details}/>\n </ColumnFlexContainer>\n </Spacer>\n )}\n </AttentionSummaryCard>\n )}\n </>)\n}\n\nconst AttentionSummaryCard = styled.div`\n margin: 30px auto 20px;\n padding: 15px 16px 12px 16px;\n border: 2px solid ${Color.AttentionBorderColor};\n border-radius: 5px;\n background: ${Color.AttentionBackgroundColor};\n max-width: 600px;\n`\n\nconst HeadlineArea = styled.div`\n text-align: center;\n`\n\nconst StyledDiv = styled.div`\n display: inline-flex;\n`\n\ntype AttentionSummaryHeadlineMessageProps = {\n children: React.ReactNode\n}\nconst ErrorSummaryHeadlineMessage: React.VFC<AttentionSummaryHeadlineMessageProps> = (props) => {\n return (\n <Typography\n display={'inline'}\n verticalAlign={'middle'}\n fontRemSize={1.6}\n bold\n color={Color.Grey800}\n >\n {props.children}\n </Typography>\n )\n}\n\ntype AttentionSummaryDetailMessageProps = {\n children: React.ReactNode\n}\nconst AttentionSummaryDetailMessage: React.VFC<AttentionSummaryDetailMessageProps> = (props) => {\n return (\n <Typography fontRemSize={1.3} color={Color.Grey800}>\n {props.children}\n </Typography>\n )\n}\n\ntype AttentionSummaryDetailMessagesProps = {\n details: string[]\n}\nconst AttentionSummaryDetailMessages: React.VFC<AttentionSummaryDetailMessagesProps> = (\n {\n details,\n },\n) => {\n return (<>\n {details.map((detail, idx) => (\n <AttentionSummaryDetailMessage key={idx}>{detail}</AttentionSummaryDetailMessage>\n ))}\n </>)\n}\n","import React from 'react'\nimport {AttentionSummary, AttentionSummaryProps} from './AttentionSummary'\nimport {Nullable} from '../../../../../Common/TypeHelper'\n\ntype TakeoverAttentionSummaryProps = Pick<AttentionSummaryProps, 'display'> & {\n bucketMemberId: Nullable<string>\n}\nexport const TakeoverAttentionSummary: React.VFC<TakeoverAttentionSummaryProps> = (\n {\n display,\n bucketMemberId,\n },\n) => {\n return (\n <AttentionSummary\n display={display}\n headline={'以前の会員番号と継続期間が引き継がれます。'}\n details={getDetails(bucketMemberId)}\n testId={'takeover-attention-summary-card'}\n />\n )\n}\n\nconst getDetails = (bucketMemberId: Nullable<string>): string[] => {\n const details = ['退会した同月内に再入会(お支払い含む)のお手続きを完了することで、引き継ぎ入会することができます。']\n\n if (!bucketMemberId) {\n return details\n }\n\n details.push(`・引き継ぐ会員番号:${bucketMemberId}`)\n return details\n}\n","import {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport React, {useCallback, useEffect, useState} from 'react'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {PaymentInformation, RegisterOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {MemberJoinInfo, MemberJoinInfoForInputPage} from '../../../Props/MembersJoinPageStates'\nimport {AgreementCheckBoxContentBlock} from '../../Components/InputContentBlocks/AgreementCheckBoxContentBlock'\nimport {BasicMemberInfoConfirmContents} from '../../Components/ConfirmContentBlocks/BasicMemberInfoConfirmContents'\nimport {Nullable, Optional} from '../../../../Common/TypeHelper'\nimport {SearchPostCode} from '../../../../Common/SearchPostCode'\nimport {validateMemberJoinInput, ValidationJoinInput} from '../../../Utils/Validations/ValidateMembersJoinInput'\nimport {validateAgreeCheck} from '../../../Utils/Validations/MembersValidation'\nimport {useAsync, useAsyncRetry} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MailMagazineSelectContentBlock} from '../../Components/InputContentBlocks/MailMagazineSelectContentBlock'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {PAYMENT} from '../../../../Common/Constants'\nimport {SelectContractTermContents} from '../../Components/PaymentsRelations/InputContentBlocks/SelectContractTermContents'\nimport {ContractInputInfo, ContractInputInfoAll, ContractMethod, ContractTerm, ErrorMessageForInvalidCard, ErrorMessagesBaseForContractInput, findAmountByTermAndMethod, findSecurityCodeByCardIdForValidation, getDefaultSecurityCodeMapForMyCreditCard, isFreeBucket, makeStringCreditCardExpireDate, MyCreditCardInfo, PaymentInputDetail, UsingMyCreditCardInfo} from '../../../Props/ContractInputInfo'\nimport {animateScroll} from 'react-scroll/modules'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {AlreadyJoinedContent} from './Components/AlreadyJoinedContent'\nimport {MembersPageAuthTemplate} from '../../Components/MembersPageAuthTemplate'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MBLoadingOverlay} from '../../Molecules/MBLoadingOverlay'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {MBDeleteCreditCardConfirmDialog} from '../../Molecules/MBDialogs'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport MemberAgreementRepo from '../../../Repo/MemberAgreementRepo'\nimport {MembersAgreement} from '../../Ecosystems/MembersAgreement'\nimport {MemberSignboardRepo} from '../../../Repo/MemberSignboardRepo'\nimport {JoinSelectPaymentMethodContents} from './Components/JoinSelectPaymentMethodContents'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {ContactAddressErrors, ContactAddressInputContents} from '../../Components/InputContentBlocks/AddressInputs/ContactAddressInputContents'\nimport {ContactAddress} from '../../../DTO/MemberAddressDTO'\nimport {JoinErrorCvsReadyContent} from './Components/JoinErrorCvsReadyContent'\nimport {MemberMailMagazine} from '../../../DTO/MemberMailMagazine'\nimport BucketHeader, {EnrollmentReasonInfo} from '../../../DTO/BucketHeader'\nimport {EnrollmentReasonSelectContentBlock, EnrollmentReasonSelectedInfo} from '../../Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\nimport {TakeoverAttentionSummary} from '../../Molecules/ErrorsAndAlert/AttentionSummary/TakeoverAttentionSummary'\nimport {SignedUpSignboard} from '../../../DTO/SignedUpSignboardDTO'\nimport {useTranslation} from 'react-i18next'\n\nexport type MembersJoinInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n memberSignboardRepo: MemberSignboardRepo\n memberAgreementRepo: MemberAgreementRepo\n searchPostCode: SearchPostCode\n}\n\ntype State = MemberJoinInfo\n\ntype ErrorState = {\n isInputError: boolean\n agreeCheckErrors: string[]\n postCodeErrors: string[]\n addressPrefectureCodeErrors: string[]\n addressCityErrors: string[]\n addressStreetErrors: string[]\n addressBuildingErrors: string[]\n phoneMobileErrors: string[]\n phoneTelErrors: string[]\n contractInputErrors: ErrorMessagesBaseForContractInput\n enrollmentReasonErrors: string[]\n}\n\nexport type JoinInputPageLocationState = {\n isInvalidCardError: boolean\n isMobileCarrierError: boolean\n memberInfo: Nullable<MemberJoinInfoForInputPage>\n signboard: Nullable<SignedUpSignboard>\n paymentMethodList: Optional<PaymentMethod[]>\n contractInputInfo: ContractInputInfo\n myCreditCardInfoList: UsingMyCreditCardInfo[]\n agreedIdList: MemberJoinInfo['agreedIdList']\n mailMagazineIdCheckedList: MemberJoinInfo['mailMagazineIdCheckedList']\n enrollmentReasonSelectedInfo: MemberJoinInfo['enrollmentReasonSelectedInfo']\n}\n\nexport const MembersJoinInputPage: React.VFC<MembersJoinInputPageProps> = (\n props,\n): Nullable<JSX.Element> => {\n const {t} = useTranslation('member')\n const [openDialog, setOpenDialog] = useState(false)\n const [deleteCardInfo, setDeleteCardInfo] = useState<MyCreditCardInfo>()\n const [loadingOpen, setLoadingOpen] = useState(false)\n\n const {signupKey} = useParams<{ signupKey: string }>()\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location = useLocation<JoinInputPageLocationState>()\n const locationState: JoinInputPageLocationState = location.state || {}\n\n const [signboard, setSignboard] = useState<Nullable<SignedUpSignboard>>(locationState?.signboard)\n const [state, setState] = useState<State>({\n mail: locationState.memberInfo?.mail || '',\n familyName: locationState.memberInfo?.familyName || '',\n firstName: locationState.memberInfo?.firstName || '',\n familyNameKana: locationState.memberInfo?.familyNameKana || '',\n firstNameKana: locationState.memberInfo?.firstNameKana || '',\n gender: locationState.memberInfo?.gender || '',\n birthday: locationState.memberInfo?.birthday || '',\n postCode: locationState.memberInfo?.postCode || '',\n addressPrefectureCode: locationState.memberInfo?.addressPrefectureCode || '',\n addressCity: locationState.memberInfo?.addressCity || '',\n addressStreet: locationState.memberInfo?.addressStreet || '',\n addressBuilding: locationState.memberInfo?.addressBuilding || '',\n phoneMobile: locationState.memberInfo?.phoneMobile || '',\n phoneTel: locationState.memberInfo?.phoneTel || '',\n agreedIdList: locationState.memberInfo?.agreedIdList || locationState.agreedIdList || [],\n mailMagazineIdCheckedList: locationState.memberInfo?.mailMagazineIdCheckedList ||\n locationState.mailMagazineIdCheckedList || [],\n enrollmentReasonSelectedInfo: locationState?.memberInfo?.enrollmentReasonSelectedInfo ||\n locationState.enrollmentReasonSelectedInfo,\n })\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n agreeCheckErrors:\n (locationState?.memberInfo?.agreedIdList !== undefined)\n ? validateAgreeCheck(locationState.memberInfo.agreedIdList)\n : [],\n postCodeErrors: [],\n addressPrefectureCodeErrors: [],\n addressCityErrors: [],\n addressStreetErrors: [],\n addressBuildingErrors: [],\n phoneMobileErrors: [],\n phoneTelErrors: [],\n contractInputErrors: {\n invalidCardErrors: ErrorMessageForInvalidCard(\n locationState?.contractInputInfo?.creditCard?.creditCardType,\n locationState?.isInvalidCardError,\n ),\n paymentInputTermErrors: [],\n paymentInputMethodErrors: [],\n creditCardTypeErrors: [],\n creditCardNumberErrors: [],\n creditCardExpireMonthErrors: [],\n creditCardExpireYearErrors: [],\n creditCardFutureExpireDateErrors: [],\n creditCardHolderNameErrors: [],\n creditCardSecurityCodeErrors: [],\n errorMyCreditCardId: (locationState?.isInvalidCardError\n && locationState?.contractInputInfo?.creditCard?.creditCardType === 'myCard')\n ? locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.selectedCardId\n : '',\n myCreditCardSecurityCodeErrors: [],\n convenienceStoreErrors: [],\n mobileCarrierErrors: locationState?.isMobileCarrierError\n ? ['決済が完了しませんでした。再度お手続きを実施ください。']\n : [],\n },\n enrollmentReasonErrors: [],\n })\n\n const [showAgreement, setShowAgreement] = useState(false)\n\n const [paymentMethodList, setPaymentMethodList] =\n useState<PaymentMethod[]>(locationState?.paymentMethodList || [])\n const [myCreditCardInfoList, setMyCreditCardInfoList] =\n useState<UsingMyCreditCardInfo[]>(locationState?.myCreditCardInfoList || [])\n\n const [contractInputInfoState, setContractInputInfoState] = useState<ContractInputInfoAll>({\n term: locationState?.contractInputInfo?.term || '',\n method: locationState?.contractInputInfo?.method,\n amount: findAmountByTermAndMethod(\n locationState?.paymentMethodList,\n locationState?.contractInputInfo?.term,\n locationState?.contractInputInfo?.method,\n ),\n creditCard: {\n creditCardType: locationState?.contractInputInfo?.creditCard?.creditCardType || '',\n newCreditCardInfo: {\n cardNumber:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.cardNumber || '',\n expireMonth:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireMonth || '',\n expireYear:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireYear || '',\n holderName:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.holderName || '',\n securityCode:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.securityCode || '',\n },\n myCreditCardInfo: {\n selectedCardId:\n locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.selectedCardId || '',\n securityCodeMap:\n locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.securityCodeMap || [],\n },\n },\n mobileCarrier: {\n carrierKey: locationState?.contractInputInfo?.mobileCarrier?.carrierKey || '',\n },\n convenienceStore: {\n convenienceStoreKey:\n locationState?.contractInputInfo?.convenienceStore?.convenienceStoreKey || '',\n },\n })\n\n const throwMBMemberError = useMBMemberError()\n\n const getSelfResult = useAsync(async () => await props.memberRepo.getSelf())\n const getSelfCreditCardsResult = useAsyncRetry(async () =>\n await props.memberRepo.getSelfCreditCards())\n\n const handleAgreementButtonClick = useCallback((): void => {\n setShowAgreement(true)\n }, [])\n\n const handleAgree = useCallback((agreedIdList: number[]): void => {\n if (!signboard) throw new MBMemberError('SystemError')\n\n props.navigator.changeJoinInputPageState(\n {\n ...locationState.memberInfo,\n agreedIdList: agreedIdList,\n } as MemberJoinInfoForInputPage,\n signboard,\n locationState.paymentMethodList,\n locationState.myCreditCardInfoList,\n locationState.contractInputInfo,\n )\n setState((prevState) => {\n return {\n ...prevState,\n agreedIdList: agreedIdList,\n }\n })\n setErrorState((prevState) => {\n return {\n ...prevState,\n agreeCheckErrors: validateAgreeCheck(agreedIdList),\n }\n })\n setShowAgreement(false)\n }, [props.navigator, locationState, signboard])\n\n const handleDialogCancelButtonClick = useCallback((): void => {\n setOpenDialog(false)\n }, [openDialog])\n\n const handleDeleteCardButtonClick = useCallback((deleteCardInfo: MyCreditCardInfo): void => {\n setOpenDialog(true)\n setDeleteCardInfo(deleteCardInfo)\n }, [openDialog, deleteCardInfo])\n\n const handleDialogDeleteCardButtonClick = useCallback(async (cardId: string): Promise<void> => {\n if (!signboard) throw new MBMemberError('SystemError')\n\n setOpenDialog(false)\n setLoadingOpen(true)\n props.navigator.changeMembersJoinInputPageState(\n state,\n signboard,\n paymentMethodList,\n myCreditCardInfoList,\n contractInputInfoState,\n )\n\n try {\n const deleteCardResult = await props.memberRepo.deleteCreditCard(cardId)\n switch (deleteCardResult.status) {\n case CommonResponseStatus.Ok:\n case CommonResponseStatus.NotFound:\n setContractInputInfoState((prevState) => ({\n ...prevState,\n creditCard: {\n ...prevState.creditCard,\n creditCardType: '',\n myCreditCardInfo: {\n selectedCardId: '',\n securityCodeMap: prevState.creditCard.myCreditCardInfo.securityCodeMap,\n },\n },\n }))\n getSelfCreditCardsResult.retry()\n break\n case CommonResponseStatus.BadRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.InvalidRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n }\n\n setLoadingOpen(false)\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [\n props.navigator,\n props.memberRepo,\n getSelfCreditCardsResult,\n openDialog,\n ])\n\n const getPaymentMethodListBySignupKeyResult = useAsync(async () =>\n await props.memberRepo.getPaymentMethodListBySignupKey(signupKey))\n\n const getSignedUpSignboardsResult = useAsync(async () =>\n await props.memberSignboardRepo.getSignedUpSignboards())\n\n useEffect(() => {\n if (!getSelfResult.value) {\n return\n }\n const {member} = getSelfResult.value.data\n\n if (!getSelfCreditCardsResult.value) {\n return\n }\n setMyCreditCardInfoList(getSelfCreditCardsResult.value.data)\n\n if (\n locationState?.memberInfo &&\n locationState?.signboard &&\n locationState?.paymentMethodList &&\n locationState?.myCreditCardInfoList &&\n locationState?.contractInputInfo\n ) {\n return\n }\n\n if (!getPaymentMethodListBySignupKeyResult.value || !getSignedUpSignboardsResult.value) {\n return\n }\n\n const signboardDTO = getSignedUpSignboardsResult.value.data.find(s => s.signupKey === signupKey)\n if (!signboardDTO || !member) {\n throw new MBMemberError('SystemError')\n }\n\n setState((prevState) => ({\n ...prevState,\n mail: member.mail || '',\n familyName: member.familyName || '',\n firstName: member.firstName || '',\n familyNameKana: member.familyNameKana || '',\n firstNameKana: member.firstNameKana || '',\n gender: member.gender || '',\n birthday: member.birthday || '',\n postCode: member.postCode || '',\n addressPrefectureCode: member.addressPrefectureCode || '',\n addressCity: member.addressCity || '',\n addressStreet: member.addressStreet || '',\n addressBuilding: member.addressBuilding || '',\n phoneMobile: member.phoneMobile || '',\n phoneTel: member.phoneTel || '',\n mailMagazineIdCheckedList:\n locationState.mailMagazineIdCheckedList ||\n getDefaultMailMagazineIdCheckList(signboardDTO?.mailMagazineList || []),\n enrollmentReasonSelectedInfo: locationState.enrollmentReasonSelectedInfo ||\n getDefaultEnrollmentReasonSelectedInfo(signboardDTO?.mainService),\n }))\n\n setSignboard((prevState) => ({\n ...prevState,\n ...signboardDTO,\n }))\n\n const _paymentMethodList =\n getPaymentMethodListBySignupKeyResult.value?.data.map((item) => {\n return {...item}\n })\n setPaymentMethodList(_paymentMethodList)\n setContractInputInfoState((prevState) => (\n {\n ...prevState,\n term: isFreeBucket(_paymentMethodList)\n ? 'permanent'\n : (locationState?.contractInputInfo?.term || ''),\n method: isFreeBucket(_paymentMethodList)\n ? 'none'\n : locationState?.contractInputInfo?.method,\n amount: findAmountByTermAndMethod(\n _paymentMethodList,\n prevState.term,\n prevState.method,\n ),\n }\n ))\n }, [\n getSelfResult.value,\n getSelfCreditCardsResult.value,\n getSignedUpSignboardsResult.value,\n getPaymentMethodListBySignupKeyResult.value,\n ])\n\n useEffect(() => {\n if (locationState?.contractInputInfo && !locationState?.isMobileCarrierError) {\n return\n }\n\n setContractInputInfoState((prevState) => ({\n ...prevState,\n creditCard: {\n creditCardType: '',\n newCreditCardInfo: {\n cardNumber: '',\n expireMonth: '',\n expireYear: '',\n holderName: '',\n securityCode: '',\n },\n myCreditCardInfo: {\n selectedCardId: '',\n securityCodeMap: getDefaultSecurityCodeMapForMyCreditCard(myCreditCardInfoList),\n },\n },\n }))\n }, [myCreditCardInfoList])\n\n const goToJoinConfirmPage = useCallback((): void => {\n setProcessing(true)\n\n const getEnrollmentReasonListForValidate = (): EnrollmentReasonInfo[] => {\n if (signboard?.mainService?.isTakeover) return []\n return signboard?.mainService?.enrollmentReasonList || []\n }\n const inputForValidation: ValidationJoinInput = {\n ...state,\n agreedIdList: state.agreedIdList,\n postCode: state.postCode.trim(),\n addressCity: state.addressCity.trim(),\n addressStreet: state.addressStreet.trim(),\n addressBuilding: state.addressBuilding?.trim(),\n phoneMobile: state.phoneMobile?.trim(),\n phoneTel: state.phoneTel?.trim(),\n paymentInputTerm: contractInputInfoState?.term,\n paymentInputMethod: contractInputInfoState?.method,\n creditCardType: contractInputInfoState?.creditCard?.creditCardType || '',\n creditCardNumber:\n contractInputInfoState?.creditCard?.newCreditCardInfo.cardNumber || '',\n creditCardExpireMonth:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireMonth || '',\n creditCardExpireYear:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireYear || '',\n creditCardHolderName:\n contractInputInfoState?.creditCard?.newCreditCardInfo.holderName || '',\n creditCardSecurityCode:\n contractInputInfoState?.creditCard?.newCreditCardInfo.securityCode || '',\n myCreditCardSecurityCode: findSecurityCodeByCardIdForValidation(\n contractInputInfoState?.creditCard?.myCreditCardInfo,\n ) || '',\n convenienceStore: contractInputInfoState?.convenienceStore?.convenienceStoreKey || '',\n mobileCarrier: contractInputInfoState?.mobileCarrier?.carrierKey || '',\n enrollmentReasonValidateParam: {\n candidates: getEnrollmentReasonListForValidate(),\n selected: state.enrollmentReasonSelectedInfo,\n },\n }\n\n // noinspection JSUnusedLocalSymbols\n const {\n agreedIdList,\n postCode, addressCity, addressStreet, addressBuilding,\n phoneMobile, phoneTel,\n } = inputForValidation\n setState((prevState) => ({\n ...prevState,\n agreedIdList,\n postCode, addressCity, addressStreet, addressBuilding,\n phoneMobile, phoneTel,\n }))\n\n const validationResult = validateMemberJoinInput(inputForValidation)\n\n if (validationResult.hasError) {\n setProcessing(false)\n setErrorState({\n isInputError: true,\n agreeCheckErrors: validationResult.errors.agreedIdList,\n postCodeErrors: validationResult.errors.postCode,\n addressPrefectureCodeErrors: validationResult.errors.addressPrefectureCode,\n addressCityErrors: validationResult.errors.addressCity,\n addressStreetErrors: validationResult.errors.addressStreet,\n addressBuildingErrors: validationResult.errors.addressBuilding,\n phoneMobileErrors: validationResult.errors.phoneMobile,\n phoneTelErrors: validationResult.errors.phoneTel,\n contractInputErrors: {\n invalidCardErrors: [],\n paymentInputTermErrors: validationResult.errors.paymentInputTerm,\n paymentInputMethodErrors: validationResult.errors.paymentInputMethod,\n creditCardTypeErrors: validationResult.errors.creditCardType,\n creditCardNumberErrors: validationResult.errors.creditCardNumber,\n creditCardExpireMonthErrors: validationResult.errors.creditCardExpireMonth,\n creditCardExpireYearErrors: validationResult.errors.creditCardExpireYear,\n creditCardFutureExpireDateErrors: validationResult.errors.creditCardFutureExpireDate,\n creditCardHolderNameErrors: validationResult.errors.creditCardHolderName,\n creditCardSecurityCodeErrors: validationResult.errors.creditCardSecurityCode,\n errorMyCreditCardId: contractInputInfoState?.creditCard?.creditCardType === 'myCard'\n ? contractInputInfoState?.creditCard?.myCreditCardInfo?.selectedCardId\n : '',\n myCreditCardSecurityCodeErrors: validationResult.errors.myCreditCardSecurityCode,\n convenienceStoreErrors: validationResult.errors.convenienceStore,\n mobileCarrierErrors: validationResult.errors.mobileCarrier,\n },\n enrollmentReasonErrors: validationResult.errors.enrollmentReasonValidateParam,\n })\n animateScroll.scrollToTop()\n return\n }\n\n if (!signboard) throw new MBMemberError('SystemError')\n\n props.navigator.goToJoinConfirmPage(\n state,\n signboard,\n paymentMethodList,\n myCreditCardInfoList,\n contractInputInfoState,\n )\n }, [\n state,\n contractInputInfoState,\n signboard,\n props.navigator,\n ])\n\n const goToAccountTopPage = useCallback((): void => {\n props.navigator.goToAccountTopPage()\n }, [props.navigator])\n\n if (getSelfResult.loading) {\n return null\n }\n\n if (getSelfResult.error) {\n throw new MBMemberError(getSelfResult.error.message)\n }\n\n if (!getSelfResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getSelfResult.value.status)\n\n if (getSignedUpSignboardsResult.loading) {\n return null\n } else if (getSignedUpSignboardsResult.error) {\n throw new MBMemberError(getSignedUpSignboardsResult.error.message)\n } else if (!getSignedUpSignboardsResult.value) {\n throw new MBMemberError('UnknownError')\n }\n memberResponseStatusCheck(getSignedUpSignboardsResult.value.status)\n\n const joinSignboard = getSignedUpSignboardsResult.value.data.find(s => s.signupKey === signupKey)\n if (joinSignboard === undefined) throw new MBMemberError('SystemError')\n if (joinSignboard.mainService.signedUp) {\n return (\n <AlreadyJoinedContent\n signboardName={joinSignboard.signupName}\n onClick={goToAccountTopPage}\n />\n )\n } else if (joinSignboard.signedUpStates.includes('convenience_store_ready')) {\n return (\n <JoinErrorCvsReadyContent\n signboard={joinSignboard}\n goToAccountTopPage={goToAccountTopPage}\n dataTestId={'join-error-cvs-ready'}\n />\n )\n }\n\n if (getSelfCreditCardsResult.loading) {\n return null\n }\n\n if (getSelfCreditCardsResult.error) {\n throw new MBMemberError(getSelfCreditCardsResult.error.message)\n }\n\n if (!getSelfCreditCardsResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getSelfCreditCardsResult.value.status)\n\n if (getPaymentMethodListBySignupKeyResult.loading) {\n return null\n }\n\n if (getPaymentMethodListBySignupKeyResult.error) {\n throw new MBMemberError(getPaymentMethodListBySignupKeyResult.error.message)\n }\n\n if (!getPaymentMethodListBySignupKeyResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getPaymentMethodListBySignupKeyResult.value.status)\n\n const {\n mail,\n familyName, firstName,\n familyNameKana, firstNameKana,\n gender,\n birthday,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phoneMobile, phoneTel,\n agreedIdList,\n mailMagazineIdCheckedList,\n enrollmentReasonSelectedInfo,\n } = state\n\n const contactAddress: ContactAddress = {\n postCode: postCode,\n addressPrefectureCode: addressPrefectureCode,\n addressCity: addressCity,\n addressStreet: addressStreet,\n addressBuilding: addressBuilding,\n phoneMobile: phoneMobile,\n phoneTel: phoneTel,\n }\n\n const {\n postCodeErrors,\n addressPrefectureCodeErrors, addressCityErrors, addressStreetErrors, addressBuildingErrors,\n phoneMobileErrors, phoneTelErrors,\n }: ContactAddressErrors = errorState\n\n if (paymentMethodList.length === 0) {\n return null\n }\n\n const paymentInformationList: PaymentInformation[] =\n paymentMethodList\n .filter(paymentMethod =>\n Object.keys(PAYMENT.TERMS).includes(paymentMethod.term),\n )\n .map(paymentMethod => ({\n isFreeBucket: paymentMethod.method === 'none',\n termName: PAYMENT.TERMS[paymentMethod.term].displayLabel,\n contractAmount: paymentMethod.amount,\n order: PAYMENT.TERMS[paymentMethod.term].order,\n term: paymentMethod.term,\n }))\n\n if (paymentInformationList.length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n if (!signboard) return null\n\n return (\n <>\n <MembersPageAuthTemplate hideFooterNavi={true}>\n {showAgreement ? (<div data-testid={'members-agreement-block'}>\n <MembersAgreement\n memberAgreementRepo={props.memberAgreementRepo}\n signboard={signboard}\n onAgreeClick={handleAgree}\n onDisagreeClick={handleAgree}\n />\n </div>) : (<div data-testid={'members-signup-input-block'}>\n <PageTitle>{`${signboard.signupName} 新規会員情報入力`}</PageTitle>\n\n <InputErrorSummary display={errorState.isInputError || locationState.isInvalidCardError}/>\n <ErrorSummary\n display={!errorState.isInputError && locationState.isMobileCarrierError}\n headline={'キャリア決済に失敗しました。'}\n detail={\n '入力項目をご確認の上、再実施いただくか、他の決済方法をご利用ください。\\n また、何度もこのメッセージが表示される場合には、各キャリアへ問い合わせをお願いします。'\n }\n />\n <TakeoverAttentionSummary\n display={signboard.mainService.isTakeover}\n bucketMemberId={signboard.mainService.bucketMemberId}\n />\n\n <StepGuide activity={'signup'} current={'enter'}/>\n\n <PIMStack alignItems={'center'} spacing={'16px'}>\n <RegisterOrganizationContentBlock\n signboard={signboard}\n title={t('新規会員情報入力.入会バケット情報.見出し')}\n paymentInformationList={paymentInformationList}\n />\n\n\n <AgreementCheckBoxContentBlock\n agreedIdList={agreedIdList}\n agreeCheckErrors={errorState.agreeCheckErrors}\n onClick={handleAgreementButtonClick}\n />\n\n <BasicMemberInfoConfirmContents\n topMessage={[t('新規会員情報入力.基本情報.説明')]}\n mail={mail}\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n gender={gender}\n birthday={birthday}\n />\n\n <PIMCard\n headerProps={{title: t('新規会員情報入力.連絡先情報.見出し')}}\n testId={'block-forms'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <MBContentSubTitleTypography>\n 連絡先情報に変更がある場合には、以下より修正してください。\n </MBContentSubTitleTypography>\n\n <ContactAddressInputContents\n activity={'edit'}\n searchPostCode={props.searchPostCode}\n contactAddress={contactAddress}\n contactAddressErrors={{\n postCodeErrors,\n addressPrefectureCodeErrors,\n addressCityErrors,\n addressStreetErrors,\n addressBuildingErrors,\n phoneMobileErrors,\n phoneTelErrors,\n }}\n onChange={(address): void => {\n setState((prevState) => {\n return {\n ...prevState,\n postCode: address.postCode,\n addressPrefectureCode: address.addressPrefectureCode ?? '',\n addressCity: address.addressCity ?? '',\n addressStreet: address.addressStreet ?? '',\n addressBuilding: address.addressBuilding ?? '',\n phoneMobile: address.phoneMobile ?? '',\n phoneTel: address.phoneTel ?? '',\n }\n })\n }}\n />\n </PIMStack>\n </PIMCard>\n\n {(signboard.mailMagazineList?.length > 0) &&\n <MailMagazineSelectContentBlock\n title={t('新規会員情報入力.メルマガ選択.見出し')}\n topMessage={t('新規会員情報入力.メルマガ選択.説明')}\n note={t('新規会員情報入力.メルマガ選択.補足')}\n mailMagazineList={signboard.mailMagazineList}\n mailMagazineIdCheckedList={mailMagazineIdCheckedList}\n onChange={(checkedIdList: number[]): void => {\n setState((prevState) => {\n return {\n ...prevState,\n mailMagazineIdCheckedList: checkedIdList,\n }\n })\n }}\n />\n }\n\n {!signboard.mainService.isTakeover && <EnrollmentReasonSelectContentBlock\n enrollmentReasonInfoList={signboard.mainService.enrollmentReasonList}\n enrollmentReasonSelectedInfo={enrollmentReasonSelectedInfo}\n onChange={(enrollmentReasonSelectedInfo): void => {\n setState(prevState => (\n {\n ...prevState,\n enrollmentReasonSelectedInfo,\n }))\n }}\n errorMessages={errorState.enrollmentReasonErrors}\n />}\n\n {\n !isFreeBucket(getPaymentMethodListBySignupKeyResult.value.data) && <>\n <SelectContractTermContents\n paymentMethodList={paymentMethodList}\n paymentInformationList={paymentInformationList}\n contractInputInfoStateTerm={contractInputInfoState.term}\n onChange={(changeSelectedTerm: ContractTerm): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n term: changeSelectedTerm,\n method: undefined,\n amount: 0,\n }\n })\n }}\n errorMessage={errorState.contractInputErrors}\n />\n\n <JoinSelectPaymentMethodContents\n paymentMethodList={paymentMethodList}\n myCreditCardInfoList={myCreditCardInfoList}\n contractInputInfoState={contractInputInfoState}\n onChangeSelectedMethod={(\n changeSelectedMethod: ContractMethod,\n ): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n method: changeSelectedMethod,\n amount: findAmountByTermAndMethod(\n paymentMethodList, prevState.term, changeSelectedMethod,\n ),\n }\n })\n }}\n onChangeInputDetailInfo={(\n changeInputDetailInfo: PaymentInputDetail,\n ): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n creditCard: changeInputDetailInfo.creditCard,\n mobileCarrier: changeInputDetailInfo.mobileCarrier,\n convenienceStore: changeInputDetailInfo.convenienceStore,\n }\n })\n }}\n errorMessages={errorState.contractInputErrors}\n onDeleteCardButtonClick={handleDeleteCardButtonClick}\n />\n </>\n }\n\n </PIMStack>\n\n\n <MessageForAction>上記の内容に間違いがなければ<br/>『会員情報の確認に進む』ボタンを押してください。</MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-member-information-button'}\n disabled={processing}\n onClick={(): void => {\n goToJoinConfirmPage()\n }}\n >\n 会員情報の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n {t('MYアカウント.ページ名')}に移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </div>)}\n </MembersPageAuthTemplate>\n\n <MBLoadingOverlay open={loadingOpen}/>\n {\n deleteCardInfo &&\n <MBDeleteCreditCardConfirmDialog\n open={openDialog}\n creditCardInfo={deleteCardInfo.cardNumber\n + makeStringCreditCardExpireDate(deleteCardInfo.expireDate)\n }\n onCancelButtonClick={handleDialogCancelButtonClick}\n onOkButtonClick={(): Promise<void> =>\n handleDialogDeleteCardButtonClick(deleteCardInfo.cardId)\n }\n />\n }\n </>\n )\n}\n\nconst getDefaultMailMagazineIdCheckList = (mailMagazineList: MemberMailMagazine[]): number[] => {\n if (!mailMagazineList) return []\n\n return mailMagazineList\n .filter((mailMagazine) => mailMagazine.subscribed || mailMagazine.subscribed === null)\n .map(subscribedMailMagazine => subscribedMailMagazine.id)\n}\n\nconst getDefaultEnrollmentReasonSelectedInfo = (\n mainService: Optional<BucketHeader>,\n): Optional<EnrollmentReasonSelectedInfo> => {\n if (\n !mainService\n || !mainService.enrollmentReasonList\n || mainService.enrollmentReasonList.length === 0\n ) {\n return undefined\n }\n\n return {bucketId: mainService.id, enrollmentReasonId: undefined}\n}\n","import {EnrollmentReasonValidateParam, validateAddressBuilding, validateAddressCity, validateAddressPrefectureCode, validateAddressStreet, validateAgreeCheck, validateEnrollmentReason, validatePhoneMobile, validatePhoneTel, validatePostCode} from './MembersValidation'\nimport {validateConvenienceStore, validateCreditCardExpireMonth, validateCreditCardExpireYear, validateCreditCardHolderName, validateCreditCardNumber, validateCreditCardSecurityCode, validateCreditCardType, validateFutureExpireDate, validateMobileCarrier, validateMyCreditCardSecurityCode, validatePaymentInputMethod, validatePaymentInputTerm} from './PaymentInputInfoValidation'\nimport {ContractMethod, ContractTerm, CreditCardType, MobileCarrierKey} from '../../Props/ContractInputInfo'\nimport {Optional} from '../../../Common/TypeHelper'\n\nexport type ValidationJoinInput = {\n agreedIdList: number[]\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding: string\n phoneMobile: string\n phoneTel: string\n paymentInputTerm: ContractTerm\n paymentInputMethod: Optional<ContractMethod>\n creditCardType: CreditCardType\n creditCardNumber: string\n creditCardExpireMonth: string\n creditCardExpireYear: string\n creditCardHolderName: string\n creditCardSecurityCode: string\n myCreditCardSecurityCode: string\n convenienceStore: string\n mobileCarrier: MobileCarrierKey\n enrollmentReasonValidateParam: EnrollmentReasonValidateParam\n}\n\ntype CombinationResult = {\n creditCardFutureExpireDate: string[]\n}\n\nexport type ValidationJoinResultDetail = {\n [K in keyof ValidationJoinInput]: string[]\n} & CombinationResult\n\nexport type ValidationJoinResult = {\n hasError: boolean\n errors: ValidationJoinResultDetail\n}\n\nexport const validateMemberJoinInput = (\n input: ValidationJoinInput,\n): ValidationJoinResult => {\n\n const details: ValidationJoinResultDetail = {\n agreedIdList: validateAgreeCheck(input.agreedIdList),\n postCode: validatePostCode(input.postCode),\n addressPrefectureCode: validateAddressPrefectureCode(input.addressPrefectureCode),\n addressCity: validateAddressCity(input.addressCity),\n addressStreet: validateAddressStreet(input.addressStreet),\n addressBuilding: validateAddressBuilding(input.addressBuilding),\n phoneMobile: validatePhoneMobile(input.phoneMobile),\n phoneTel: validatePhoneTel(input.phoneTel),\n paymentInputTerm: validatePaymentInputTerm(input.paymentInputTerm),\n paymentInputMethod:\n validatePaymentInputMethod(input.paymentInputMethod),\n creditCardType: validateCreditCardType(input.paymentInputMethod, input.creditCardType),\n creditCardNumber: validateCreditCardNumber(\n input.paymentInputMethod, input.creditCardType, input.creditCardNumber),\n creditCardExpireMonth: validateCreditCardExpireMonth(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireMonth),\n creditCardExpireYear: validateCreditCardExpireYear(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireYear),\n creditCardFutureExpireDate: validateFutureExpireDate(\n input.paymentInputMethod,\n input.creditCardType,\n input.creditCardExpireMonth,\n input.creditCardExpireYear,\n ),\n creditCardHolderName: validateCreditCardHolderName(\n input.paymentInputMethod, input.creditCardType, input.creditCardHolderName),\n creditCardSecurityCode: validateCreditCardSecurityCode(\n input.paymentInputMethod, input.creditCardType, input.creditCardSecurityCode),\n myCreditCardSecurityCode: validateMyCreditCardSecurityCode(\n input.paymentInputMethod, input.creditCardType, input.myCreditCardSecurityCode),\n convenienceStore: validateConvenienceStore(input.paymentInputMethod, input.convenienceStore),\n mobileCarrier: validateMobileCarrier(input.paymentInputMethod, input.mobileCarrier),\n enrollmentReasonValidateParam: validateEnrollmentReason(input.enrollmentReasonValidateParam),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","export class MemberMailUpdateDTO {\n mail: string\n\n constructor(mail: string) {\n this.mail = mail\n }\n}\n","import React, {ComponentProps} from 'react'\nimport {MBMemberInput} from './MBMemberInput'\n\ntype Props = ComponentProps<typeof MBMemberInput> & {\n type?: never\n autoComplete?: never\n className?: never,\n}\nexport const MBMemberEMailInput: React.VFC<Props> = props =>\n <MBMemberInput\n {...props}\n type={'email'}\n autoComplete={'email'}\n className={'form-text_01 w_100 pc100'}\n />\n","import {validateMail} from './MembersValidation'\n\nexport type ValidationMailInput = {\n mail: string\n}\n\nexport type ValidationMailResultDetail = {\n [K in keyof ValidationMailInput]: string[]\n}\n\nexport type ValidationMailResult = {\n hasError: boolean\n errors: ValidationMailResultDetail\n}\n\nexport const validateMemberMailInput = (\n input: ValidationMailInput,\n isLoginId?: boolean,\n): ValidationMailResult => {\n\n const details: ValidationMailResultDetail = {\n mail: validateMail(input.mail, isLoginId),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","import React from 'react'\nimport {faCircleArrowDown} from '@fortawesome/free-solid-svg-icons/faCircleArrowDown'\nimport {Color} from '../../Styles'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\n\nexport const MemberCircleArrowDownIcon: React.VFC = () => {\n return <FontAwesomeIcon icon={faCircleArrowDown} color={Color.Grey500} size={'2xl'}/>\n}\n","import React, {useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MemberMailUpdateDTO} from '../../../DTO/MemberMailUpdateDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {CommonResponseDTO, CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MBMemberEMailInput} from '../../Atoms/MBMemberEMailInput'\nimport {validateMemberMailInput, ValidationMailInput} from '../../../Utils/Validations/ValidateMembersMailInput'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {animateScroll} from 'react-scroll'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {ContentNotes} from '../../Molecules/BaseContentBlocks/ContentNotes'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport styled from '@emotion/styled'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {useTranslation} from 'react-i18next'\nimport {MemberCircleArrowDownIcon} from '../../Atoms/Icons/MemberCircleArrowDownIcon'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype State = {\n mail: string\n}\n\ntype ErrorState = {\n isInputError: boolean\n mailErrors: string[]\n}\n\nexport function MembersEditMailInputPage(props: Props): Nullable<JSX.Element> {\n const {t} = useTranslation('member')\n const [state, setState] = useState<State>({mail: ''})\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n mailErrors: [],\n })\n\n const throwMBMemberError = useMBMemberError()\n\n const result = useAsync(async () => {\n return await props.memberRepo.getSelf()\n })\n\n if (result.loading) {\n return null\n }\n\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n\n if (!result.value) {\n throw new MBMemberError('UnknownError')\n }\n\n if (!result.value.data.member) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(result.value.status)\n\n function checkStatus(response: CommonResponseDTO<null>): void {\n switch (response.status) {\n case CommonResponseStatus.Ok:\n props.navigator.goToEditMailInvitationCompletePage()\n break\n case CommonResponseStatus.BadRequest:\n if (response.errorMessageList !== null && response.errorMessageList.length !== 0) {\n setProcessing(false)\n setErrorMessages(response.errorMessageList)\n }\n break\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n default:\n throw new MBMemberError('UnknownError')\n }\n }\n\n async function goToEditMailInvitationCompletePage(): Promise<void> {\n setProcessing(true)\n\n const inputForValidation: ValidationMailInput = {\n ...state,\n mail: state.mail.trim(),\n }\n setState((prevState) => ({\n ...prevState,\n ...inputForValidation,\n }))\n\n const validationResult = validateMemberMailInput(\n inputForValidation,\n )\n\n if (validationResult.hasError) {\n setProcessing(false)\n setErrorState({\n isInputError: true,\n mailErrors: validationResult.errors.mail,\n })\n animateScroll.scrollToTop()\n return\n }\n\n try {\n const response =\n await props.memberRepo.postOrderForUpdateMail(\n new MemberMailUpdateDTO(inputForValidation.mail),\n )\n\n checkStatus(response)\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n function goToAccountInformationPage(): void {\n props.navigator.goToAccountInformationPage()\n }\n\n function handleChangeInput(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void {\n const {name, value} = e.target\n setState((prevState) => ({\n ...prevState,\n [name]: value,\n }))\n }\n\n const {mail} = result.value.data.member\n const {isInputError, mailErrors} = errorState\n\n return (\n <MembersPageTemplate>\n <PageTitle>メールアドレス変更入力</PageTitle>\n\n <InputErrorSummary display={isInputError}/>\n\n <ContentBlock data-testid={'block-mail'}>\n <ContentTitle>メールアドレス入力</ContentTitle>\n <ContentTopMessage>\n 新しいメールアドレスを入力してください。<br/>\n ご入力いただいたメールアドレス宛にメールアドレス変更のためのURLをお送りいたします。\n </ContentTopMessage>\n\n <Spacer mt={'18px'}>\n <MBContentBodyDivider/>\n </Spacer>\n\n <Spacer mt={'18px'} mb={'18px'}>\n <MBContentSubTitleTypography>\n {t('メールアドレス変更入力.メールアドレス入力.ラベル 現在のメールアドレス')}\n </MBContentSubTitleTypography>\n <Spacer mt={'10px'} ml={'12px'}>\n <MBContentBodyTypography>{mail}</MBContentBodyTypography>\n </Spacer>\n\n <ArrowDownIconArea>\n <MemberCircleArrowDownIcon/>\n </ArrowDownIconArea>\n\n <label htmlFor=\"email\">\n <MBContentSubTitleTypography>\n {t('メールアドレス変更入力.メールアドレス入力.ラベル 新しいメールアドレス')}\n </MBContentSubTitleTypography>\n </label>\n <Spacer mt={'10px'}>\n <MBMemberEMailInput\n name=\"mail\"\n value={state.mail}\n id=\"email\"\n hasError={mailErrors.length > 0}\n onChange={(e: React.ChangeEvent<HTMLInputElement>): void => handleChangeInput(e)}\n />\n <ErrorDisplay errors={mailErrors}/>\n </Spacer>\n </Spacer>\n\n <MBContentBodyDivider/>\n\n <Spacer mt={'14px'}>\n <ContentNotes\n notes={[t('メールアドレス変更入力.メールアドレス入力.注記 メール受信設定')]}\n />\n </Spacer>\n\n </ContentBlock>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n 『送信する』ボタンを押してください。\n </MessageForAction>\n\n <ErrorDisplay errors={errorMessages}/>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'send-button'}\n disabled={processing}\n onClick={(): void => {\n goToEditMailInvitationCompletePage()\n }}\n >\n 送信する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountInformationPage}>\n 登録情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n\nconst ArrowDownIconArea = styled.div`\n text-align: center;\n margin-top: 20px;\n margin-bottom: 20px;\n`\n","import {Optional} from '../../Common/TypeHelper'\nimport {ContractMethod, ConvenienceStoreKey, MobileCarrierKey} from '../Props/ContractInputInfo'\nimport {EnrollmentReasonSelectedInfo} from '../View/Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\n\nexport interface BucketContractInputInfo {\n contractTerm: string,\n paymentMethod: Optional<ContractMethod>,\n}\n\nexport interface BucketContractInputInfoCreditCard extends BucketContractInputInfo {\n paymentMethod: 'credit_card',\n tokenList: string[],\n creditCardExpireDate: Optional<string>,\n cardId: Optional<string>,\n securityCode: Optional<string>,\n}\n\nexport interface BucketContractInputInfoMobileCarrier extends BucketContractInputInfo {\n paymentMethod: 'mobile_carrier',\n paymentMethodDetail: MobileCarrierKey\n}\n\nexport interface BucketContractInputInfoConvenienceStore extends BucketContractInputInfo {\n paymentMethod: 'convenience_store',\n paymentMethodDetail: ConvenienceStoreKey\n}\n\nexport interface BucketContractInputInfoWithoutPayment extends BucketContractInputInfo {\n paymentMethod: 'none',\n}\n\nexport class MemberJoinBucketDTO {\n signupKey: string\n agreementIdCheckedList: number[]\n mailMagazineIdCheckedList: number[]\n contractInfo: BucketContractInputInfoCreditCard |\n BucketContractInputInfoConvenienceStore |\n BucketContractInputInfoWithoutPayment\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>\n\n constructor(\n signupKey: string,\n agreementIdCheckedList: number[],\n mailMagazineIdCheckedList: number[],\n contractInfo: BucketContractInputInfoCreditCard |\n BucketContractInputInfoConvenienceStore |\n BucketContractInputInfoWithoutPayment,\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>,\n ) {\n this.signupKey = signupKey\n this.agreementIdCheckedList = agreementIdCheckedList\n this.mailMagazineIdCheckedList = mailMagazineIdCheckedList\n this.contractInfo = contractInfo\n this.enrollmentReason = enrollmentReason\n }\n}\n","import React from 'react'\nimport {MailMagazine} from '../../../DTO/MailMagazineDTO'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\n\ntype Props = {\n title: string\n mailMagazineIdCheckedList: number[]\n mailMagazineList: MailMagazine[]\n}\n\nexport function MailMagazineConfirmContentBlock(props: Props): JSX.Element {\n if (props.mailMagazineList.length === 0) {\n return <></>\n }\n\n const selectedMailMagazineNames = props.mailMagazineList\n .filter((item) => props.mailMagazineIdCheckedList.includes(item.id))\n\n return (\n <>\n <ContentBlock data-testid={'block-mail-magazine'}>\n <ContentTitle>{props.title}</ContentTitle>\n {\n selectedMailMagazineNames.length === 0\n ? <p className=\"\">メルマガのご希望はありません</p>\n : <ul className=\"list-disc_01 fts15\">\n {selectedMailMagazineNames.map(\n item => <li key={item.id}>{item.name}</li>,\n )}\n </ul>\n }\n </ContentBlock>\n </>\n )\n}\n","import {MemberPreRegisterContractInfo} from '../Props/ContractInputInfo'\nimport {Optional} from '../../Common/TypeHelper'\nimport {EnrollmentReasonSelectedInfo} from '../View/Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\n\nexport interface MemberPreJoinBucket {\n signupKey: string\n agreementIdCheckedList: number[]\n mailMagazineIdCheckedList: number[]\n contractInfo: MemberPreRegisterContractInfo\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>\n}\n\nexport class MemberPreJoinBucketDTO implements MemberPreJoinBucket {\n signupKey: string\n agreementIdCheckedList: number[]\n mailMagazineIdCheckedList: number[]\n contractInfo: MemberPreRegisterContractInfo\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>\n\n constructor(\n signupKey: string,\n agreementIdCheckedList: number[],\n mailMagazineIdCheckedList: number[],\n contractInfo: MemberPreRegisterContractInfo,\n enrollmentReason: Optional<EnrollmentReasonSelectedInfo>,\n ) {\n this.signupKey = signupKey\n this.agreementIdCheckedList = agreementIdCheckedList\n this.mailMagazineIdCheckedList = mailMagazineIdCheckedList\n this.contractInfo = contractInfo\n this.enrollmentReason = enrollmentReason\n }\n}\n","import React, {useCallback, useEffect, useState} from 'react'\nimport H from 'history'\nimport {useLocation} from 'react-router-dom'\nimport {MemberJoinInfo} from '../../../Props/MembersJoinPageStates'\nimport {RegisterOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {BasicMemberInfoConfirmContents} from '../../Components/ConfirmContentBlocks/BasicMemberInfoConfirmContents'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MemberAddressDTO} from '../../../DTO/MemberAddressDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {BucketContractInputInfoConvenienceStore, BucketContractInputInfoCreditCard, BucketContractInputInfoWithoutPayment, MemberJoinBucketDTO} from '../../../DTO/MemberJoinBucketDTO'\nimport {MailMagazineConfirmContentBlock} from '../../Components/ConfirmContentBlocks/MailMagazineConfirmContentBlock'\nimport {animateScroll} from 'react-scroll'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {ContractInputInfo, UsingMyCreditCardInfo} from '../../../Props/ContractInputInfo'\nimport {Nullable, Optional} from '../../../../Common/TypeHelper'\nimport {TokenResponse, useGmo} from '../../Hooks/UseGmo'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {ContractTermConfirmContent} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractTermConfirmContent'\nimport {ContractPaymentMethodConfirm} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractPaymentMethodConfirm'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MemberPreJoinBucketDTO} from '../../../DTO/MemberPreJoinBucketDTO'\nimport {PAYMENT} from '../../../../Common/Constants'\nimport {ContactAddressConfirmContents} from '../../Components/ConfirmContentBlocks/AddressConfirms/ContactAddressConfirmContents'\nimport {BucketRegisterResponseDataDTO, FreeBucketRegisterResponseDataDTO, isFreeBucketContract} from '../../../DTO/BucketRegisterResponseDataDTO'\nimport {CvsContractDTO, isCvsContract} from '../../../DTO/CvsContractDTO'\nimport {EnrollmentReasonConfirmContentBlock} from '../../Components/ConfirmContentBlocks/EnrollmentReasonConfirmContentBlock'\nimport {SignedUpSignboard} from '../../../DTO/SignedUpSignboardDTO'\nimport {useTranslation} from 'react-i18next'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport type JoinConfirmLocationState = {\n memberInfo: MemberJoinInfo\n signboard: SignedUpSignboard\n paymentMethodList: PaymentMethod[],\n myCreditCardInfoList: UsingMyCreditCardInfo[],\n contractInputInfo: ContractInputInfo,\n}\n\nexport const MembersJoinInputConfirmPage = (props: Props): Nullable<JSX.Element> => {\n const scriptUrl: Optional<string> = process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_URL\n const timeout: Optional<number> =\n parseInt(process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_TIMEOUT ?? '5000', 10)\n\n const {t} = useTranslation('member')\n const [tokenResponse, setTokenResponse] = useState<TokenResponse>()\n\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n\n if (!scriptUrl) {\n throw new MBMemberError('SystemError')\n }\n const [loading, error, gmo] = useGmo(scriptUrl)\n\n const location: H.Location<JoinConfirmLocationState> = useLocation<JoinConfirmLocationState>()\n const locationState: JoinConfirmLocationState = location.state\n\n const [gmoTimeoutErrorFlg, setGmoTimeoutErrorFlg] = useState(false)\n\n const throwMBMemberError = useMBMemberError()\n\n const goToJoinCompletePage = useCallback(\n async (): Promise<void> => {\n if (!locationState) {\n return\n }\n setProcessing(true)\n\n try {\n const putAddressResult = await props.memberRepo.putAddress(new MemberAddressDTO(\n locationState.memberInfo.postCode,\n locationState.memberInfo.addressPrefectureCode,\n locationState.memberInfo.addressCity,\n locationState.memberInfo.addressStreet,\n locationState.memberInfo.addressBuilding,\n locationState.memberInfo.phoneMobile,\n locationState.memberInfo.phoneTel,\n ),\n false,\n )\n\n switch (putAddressResult.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(putAddressResult.errorMessageList)\n animateScroll.scrollToTop()\n return\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n\n const {term, method, creditCard, mobileCarrier} = locationState.contractInputInfo\n\n if (method === 'credit_card' || method === 'convenience_store' || method === 'none') {\n const selectedMyCreditCardInfo =\n creditCard?.myCreditCardInfo.securityCodeMap\n .find(item => item.cardId === creditCard.myCreditCardInfo.selectedCardId)\n\n await props.memberRepo.postBelongToBucket(\n new MemberJoinBucketDTO(\n locationState.signboard.signupKey,\n locationState.memberInfo.agreedIdList,\n locationState.memberInfo.mailMagazineIdCheckedList,\n getContractInfoForPostBelongToBucket(\n contractInputInfo,\n selectedMyCreditCardInfo?.securityCode,\n tokenResponse?.tokenObject.token,\n ),\n locationState.memberInfo.enrollmentReasonSelectedInfo,\n ))\n .then((postBelongToBucketResult) => {\n switch (postBelongToBucketResult.status) {\n case CommonResponseStatus.Created:\n if (!postBelongToBucketResult.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n gotoCompletePage(props.navigator, locationState, postBelongToBucketResult.data)\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.Conflict:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('Conflict')\n case CommonResponseStatus.InvalidRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.InvalidCreditCard:\n props.navigator.backToMembersJoinInputPageCauseCreditCardError(\n locationState.memberInfo,\n locationState.signboard,\n locationState.paymentMethodList,\n locationState.myCreditCardInfoList,\n contractInputInfo,\n )\n return\n case CommonResponseStatus.PaymentSystemError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n })\n .catch((e) => {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n })\n }\n\n if (method === 'mobile_carrier') {\n await props.memberRepo.postPreBelongToBucket(new MemberPreJoinBucketDTO(\n locationState.signboard.signupKey,\n locationState.memberInfo.agreedIdList,\n locationState.memberInfo.mailMagazineIdCheckedList,\n {\n contractTerm: term,\n paymentMethod: method,\n paymentMethodDetail: mobileCarrier.carrierKey,\n },\n locationState.memberInfo.enrollmentReasonSelectedInfo,\n ))\n .then((postPreBelongToBucketResult) => {\n switch (postPreBelongToBucketResult.status) {\n case CommonResponseStatus.Created:\n if (!postPreBelongToBucketResult.data) {\n throw new MBMemberError('SystemError')\n }\n\n props.navigator.goToMembersJoinMobileCarrierTransitionPage(\n {...postPreBelongToBucketResult.data},\n )\n break\n case CommonResponseStatus.BadRequest:\n setErrorMessages(postPreBelongToBucketResult.errorMessageList)\n setProcessing(false)\n break\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InvalidRequest:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.Conflict:\n throw new MBMemberError('Conflict')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.PaymentSystemError:\n throw new MBMemberError('SystemError')\n default:\n throw new MBMemberError('ServerError')\n }\n })\n .catch((e) => {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n })\n }\n },\n [\n props.memberRepo,\n props.navigator,\n locationState,\n tokenResponse,\n ])\n\n useEffect(() => {\n if (!locationState?.contractInputInfo) {\n return\n }\n if (locationState.contractInputInfo.creditCard?.creditCardType === 'myCard') {\n return\n }\n\n if (gmo) {\n if (locationState.contractInputInfo.method !== 'credit_card') {\n return\n }\n if (!locationState.contractInputInfo.creditCard) {\n return\n }\n\n const shopCode = locationState.signboard.shopId\n if (!shopCode) {\n throw new MBMemberError('SystemError')\n }\n\n const {cardNumber, expireMonth, expireYear, holderName, securityCode} =\n locationState.contractInputInfo.creditCard.newCreditCardInfo\n\n gmo.init(shopCode)\n\n const timeoutId = setTimeout(() => {\n setGmoTimeoutErrorFlg(true)\n }, timeout)\n\n gmo.getToken({\n tokennumber: 2,\n cardno: cardNumber,\n expire: expireYear.slice(-2) + expireMonth,\n securitycode: securityCode,\n holdername: holderName,\n }, (result: TokenResponse) => {\n clearTimeout(timeoutId)\n setTokenResponse(result)\n })\n }\n }, [gmo])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n if (locationState.contractInputInfo.method === 'credit_card' &&\n locationState.contractInputInfo.creditCard?.creditCardType === 'newCard') {\n if (gmoTimeoutErrorFlg) {\n throw new MBMemberError('SystemError')\n }\n\n if (error) {\n throw new MBMemberError('SystemError')\n }\n if (loading) {\n return null\n }\n if (!gmo) {\n return null\n }\n\n if (!tokenResponse) {\n return null\n }\n }\n\n if (!locationState.contractInputInfo.creditCard) {\n throw new MBMemberError('SystemError')\n }\n\n const {\n signboard,\n memberInfo,\n contractInputInfo,\n myCreditCardInfoList,\n } = locationState\n const {\n mail,\n familyName, firstName,\n familyNameKana, firstNameKana,\n gender,\n birthday,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phoneMobile, phoneTel,\n mailMagazineIdCheckedList,\n enrollmentReasonSelectedInfo,\n } = memberInfo\n const {term, method, amount} = contractInputInfo\n\n const registerButtonLabel = locationState.contractInputInfo.method === 'mobile_carrier' ?\n '決済に進む' : '確定・入会する'\n\n return (\n <MembersPageTemplate hideFooterNavi={true}>\n <PageTitle>{`${signboard.signupName} 新規会員情報確認`}</PageTitle>\n\n <StepGuide activity={'signup'} current={'confirm'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisterOrganizationContentBlock\n signboard={signboard}\n title={t('新規会員情報確認.入会バケット情報.見出し')}\n paymentInformationList={[{\n isFreeBucket: method === 'none',\n termName: PAYMENT.TERMS[term].displayLabel,\n contractAmount: amount,\n order: PAYMENT.TERMS[term].order,\n term: term,\n }]}\n />\n </PIMStack>\n </Spacer>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <BasicMemberInfoConfirmContents\n mail={mail}\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n gender={gender}\n birthday={birthday}\n />\n </PIMStack>\n </Spacer>\n\n <ContentBlock data-testid={'block-confirms'}>\n <PIMStack spacing={'18px'}>\n <ContentTitle\n noMarginBottom={true}>{t('新規会員情報確認.連絡先情報.見出し')}</ContentTitle>\n <ContactAddressConfirmContents\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n phoneMobile={phoneMobile}\n phoneTel={phoneTel}\n />\n </PIMStack>\n </ContentBlock>\n\n <MailMagazineConfirmContentBlock\n title={'メルマガ情報'}\n mailMagazineIdCheckedList={mailMagazineIdCheckedList}\n mailMagazineList={signboard.mailMagazineList}\n />\n\n {!signboard.mainService.isTakeover && <EnrollmentReasonConfirmContentBlock\n enrollmentReasonInfoList={signboard.mainService.enrollmentReasonList}\n enrollmentReasonSelectedInfo={enrollmentReasonSelectedInfo}\n />}\n\n {method !== 'none' && <>\n <ContractTermConfirmContent\n title={'契約単位'}\n term={term}\n contractMethod={method}\n />\n\n <ContractPaymentMethodConfirm\n title={'お支払い方法'}\n amount={amount}\n method={method}\n methodDetail={{\n paymentInputDetailWithMethod: contractInputInfo,\n myCreditCardInfoList: myCreditCardInfoList,\n maskedCardNo: tokenResponse?.tokenObject.maskedCardNo,\n }}\n isTakeover={signboard.mainService.isTakeover}\n />\n </>\n }\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n {`『${registerButtonLabel}』ボタンを押してください。`}\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-join-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToJoinCompletePage()}\n >\n {registerButtonLabel}\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => props.navigator.goBack()}>\n 会員情報入力に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (locationState: JoinConfirmLocationState): boolean => {\n if (!locationState) {\n return true\n }\n if (!locationState.memberInfo) {\n return true\n }\n if (!locationState.signboard) {\n return true\n }\n if (!locationState.myCreditCardInfoList) {\n return true\n }\n if (!locationState.paymentMethodList) {\n return true\n }\n if (!locationState.contractInputInfo) {\n return true\n }\n if (locationState.memberInfo) {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n phoneMobile, phoneTel, addressBuilding, enrollmentReasonSelectedInfo,\n ...rest\n } = locationState.memberInfo\n if (phoneMobile === undefined && phoneTel === undefined) {\n return true\n }\n if (Object.values(rest).some(value => value === undefined)) {\n return true\n }\n }\n if (!locationState.signboard.signupName ||\n !locationState.signboard.mainService ||\n !locationState.signboard.freeServices ||\n !locationState.signboard.mailMagazineList ||\n !locationState.signboard.logoImgUrl\n ) {\n return true\n }\n return false\n}\n\nconst getContractInfoForPostBelongToBucket = (\n contractInfo: Pick<ContractInputInfo, 'term' | 'method' | 'creditCard' | 'convenienceStore'>,\n securityCode?: string,\n tokenList?: string[],\n): BucketContractInputInfoCreditCard |\n BucketContractInputInfoConvenienceStore |\n BucketContractInputInfoWithoutPayment => {\n const {term, method, creditCard, convenienceStore} = contractInfo\n\n if (method === 'none') {\n return {\n contractTerm: term,\n paymentMethod: method,\n }\n }\n\n if (method === 'convenience_store') {\n return {\n contractTerm: term,\n paymentMethod: 'convenience_store',\n paymentMethodDetail: convenienceStore.convenienceStoreKey,\n }\n }\n\n if (creditCard.creditCardType === 'newCard') {\n return {\n contractTerm: term,\n paymentMethod: 'credit_card',\n tokenList: tokenList || [],\n creditCardExpireDate:\n `${creditCard.newCreditCardInfo.expireMonth}/${creditCard.newCreditCardInfo.expireYear}`,\n cardId: undefined,\n securityCode: undefined,\n }\n }\n\n return {\n contractTerm: term,\n paymentMethod: 'credit_card',\n tokenList: [],\n creditCardExpireDate: undefined,\n cardId: creditCard.myCreditCardInfo.selectedCardId,\n securityCode: securityCode,\n }\n}\n\nconst gotoCompletePage = (\n navigator: NavigatorForMemberPage,\n locationState: JoinConfirmLocationState,\n postBelongToBucketResultData: BucketRegisterResponseDataDTO |\n CvsContractDTO |\n FreeBucketRegisterResponseDataDTO,\n): void => {\n if (isCvsContract(postBelongToBucketResultData)) {\n navigator.goToJoinCompletePageForConvenienceStore(\n locationState.memberInfo,\n locationState.signboard,\n {\n term: locationState.contractInputInfo.term,\n method: locationState.contractInputInfo.method,\n amount: locationState.contractInputInfo.amount,\n contractDate: {\n contractDate: postBelongToBucketResultData.contractDate,\n contractEndDate: postBelongToBucketResultData.contractEndDate,\n },\n },\n postBelongToBucketResultData,\n )\n } else if (isFreeBucketContract(postBelongToBucketResultData)) {\n navigator.goToJoinCompletePageForFreeBucket(\n locationState.memberInfo,\n locationState.signboard,\n postBelongToBucketResultData.bucketMemberIdList,\n )\n } else {\n navigator.goToJoinCompletePage(\n locationState.memberInfo,\n locationState.signboard,\n postBelongToBucketResultData.bucketMemberIdList,\n {\n term: locationState.contractInputInfo.term,\n method: locationState.contractInputInfo.method,\n amount: locationState.contractInputInfo.amount,\n contractDate: {\n contractDate: postBelongToBucketResultData.contractDate,\n contractEndDate: postBelongToBucketResultData.contractEndDate,\n },\n },\n )\n }\n}\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentNotes} from '../../Molecules/BaseContentBlocks/ContentNotes'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {useTranslation} from 'react-i18next'\n\nexport function MembersEditMailSendCompletePage(): JSX.Element {\n const {t} = useTranslation('member')\n\n return (\n <MembersPageTemplate>\n <PageTitle>メールアドレス変更URL発行</PageTitle>\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>メール送信完了</ContentTitle>\n <ContentTopMessage>\n ご入力いただいたメールアドレスにメールアドレス変更URLを送信しました。<br/>\n 届いたメールに記載されているURLよりメールアドレス変更手続きを完了させてください。<br/>\n メールに記載されているURLの有効期限は3時間となっています。\n </ContentTopMessage>\n <Spacer mt={'18px'}>\n <ContentNotes\n notes={[\n 'ご変更手続きは、まだ完了していませんのでご注意ください。',\n t('メールアドレス変更URL発行.注記 メール受信設定'),\n ]}\n data-testid={'content-notes'}\n />\n </Spacer>\n </ContentBlock>\n </MembersPageTemplate>\n )\n}\n","import {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport React, {useCallback} from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersEditMailUpdatedPageProps = {\n navigator: NavigatorForMemberPage\n}\n\nexport const MembersEditMailUpdatedPage: React.VFC<MembersEditMailUpdatedPageProps> = (\n props,\n): JSX.Element => {\n const {t} = useTranslation('member')\n const goToAccountTopPage = useCallback(() => {\n props.navigator.goToAccountTopPage()\n }, [props.navigator])\n\n return (\n <MembersPageTemplate>\n <PageTitle>メールアドレス変更完了</PageTitle>\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>メールアドレス変更完了</ContentTitle>\n <ContentTopMessage>\n {t('メールアドレス変更完了.メッセージ メールアドレス変更の完了')}<br/>\n 新しいメールアドレスでログインしてください。\n </ContentTopMessage>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n ログインページに移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import MemberRepo from '../../../Repo/MemberRepo'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {useAsync} from 'react-use'\nimport {useParams} from 'react-router-dom'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport React from 'react'\nimport {Logout} from '../../../../Common/Components/Logout'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {membersMsalInstance} from '../../../Auth/members-msa'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {useMsal} from '@azure/msal-react'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport function MembersEditMailRedirectPage(props: Props): JSX.Element {\n const throwMBMemberError = useMBMemberError()\n const {mailUpdateId} = useParams<{ mailUpdateId: string }>()\n const {inProgress} = useMsal()\n\n const result = useAsync(async () => {\n return await props.memberRepo.putMailUpdateComplete(mailUpdateId)\n })\n\n if (result.loading) {\n return <></>\n }\n\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n\n if (!result.value) {\n throw new MBMemberError('UnknownError')\n }\n\n switch (result.value.status) {\n case CommonResponseStatus.Ok:\n return <Logout\n msalInstance={membersMsalInstance}\n postLogoutRedirectUri=\"/account/information/mail/update_complete\"\n throwMBError={throwMBMemberError}\n navigate={(): void => {\n props.navigator.goToEditMailUpdatedPage()\n }}\n inProgress={inProgress}\n />\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.Forbidden:\n throw new MBMemberError('InvalidOneTimeUrl')\n case CommonResponseStatus.Conflict:\n throw new MBMemberError('InvalidOneTimeUrl')\n case CommonResponseStatus.NoAuthority:\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n default:\n throw new MBMemberError('UnknownError')\n }\n}\n","import React from 'react'\nimport {MemberJoinInfo} from '../../../Props/MembersJoinPageStates'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {useLocation} from 'react-router-dom'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ContractInfoWithContractDate, ContractMethod} from '../../../Props/ContractInputInfo'\nimport {ContractInformationContentBlock} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractInformationContentBlock'\nimport {RegisteredMemberInfoContents} from '../../Components/CompleteContentBlocks/RegisteredMemberInfoContents'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {CvsPaymentInfoContentBlock} from '../../Components/PaymentsRelations/ConfirmContentBlocks/CvsPaymentInfoContentBlock'\nimport {CvsContract} from '../../../DTO/CvsContractDTO'\nimport {MembersRegisteredPageFreeBucketLocationState} from '../Signup/MembersRegisteredPage'\nimport {BucketMemberId} from '../../../DTO/BucketMemberId'\nimport {RegisteredOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisteredOrganizationContentBlock'\nimport {RegisteredFreeServiceContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisteredFreeServiceContentBlock'\nimport {useTranslation} from 'react-i18next'\n\ntype LocationStateCommon = {\n contractMethod?: ContractMethod\n memberInfo: MemberJoinInfo\n signboard: Signboard\n contractInfoForCompletePage: ContractInfoWithContractDate\n bucketMemberIdList: BucketMemberId[]\n}\n\nexport type JoinCompletePageLocationState = LocationStateCommon\n\nexport type JoinCompletePageCvsLocationState = LocationStateCommon & {\n contractMethod: 'convenience_store'\n cvsContract: CvsContract\n}\n\nexport type JoinCompletePageFreeBucketLocationState =\n Omit<LocationStateCommon, 'contractInfoForCompletePage'> & {\n contractMethod: 'none'\n}\n\nconst isLocationStateCvs = (state: JoinCompletePageLocationState |\n JoinCompletePageCvsLocationState |\n MembersRegisteredPageFreeBucketLocationState,\n)\n : state is JoinCompletePageCvsLocationState => state.contractMethod === 'convenience_store'\n\nexport const MembersJoinCompletePage: React.VFC = () => {\n const locationState =\n useLocation<JoinCompletePageLocationState |\n JoinCompletePageCvsLocationState |\n JoinCompletePageFreeBucketLocationState>().state\n\n const {t} = useTranslation('member')\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {memberInfo, signboard, contractMethod, bucketMemberIdList} = locationState\n const {mail, familyName, firstName} = memberInfo\n const isCvs = isLocationStateCvs(locationState)\n\n return (\n <MembersPageTemplate>\n <PageTitle>{`${signboard.signupName} 新規入会完了`}</PageTitle>\n\n <StepGuide activity={'signup'} current={'complete'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <RegisteredOrganizationContentBlock\n signboard={signboard}\n title={isCvs ? t('新規入会完了.入会バケット情報.見出し コンビニ') : t('新規入会完了.入会バケット情報.見出し')}\n bucketMemberIdList={bucketMemberIdList}\n isCvsPayment={isCvs}\n />\n </PIMStack>\n </Spacer>\n\n {((): JSX.Element => {\n if (contractMethod === 'none') {\n return <></>\n }\n if (isCvs) {\n return <CvsPaymentInfoContentBlock\n title={'お支払い情報'}\n contractInfoWithContractDate={locationState.contractInfoForCompletePage}\n dataTestId={'block-payment-info'}\n cvsContract={locationState.cvsContract}\n signboard={signboard}\n />\n }\n return <ContractInformationContentBlock\n title={'契約情報'}\n contractInfoWithContractDate={locationState.contractInfoForCompletePage}\n dataTestId={'block-contract-info'}\n />\n })()}\n\n {isCvs && (\n <RegisteredFreeServiceContentBlock\n freeServices={signboard.freeServices}\n bucketMemberIdList={bucketMemberIdList}\n />\n )}\n\n <RegisteredMemberInfoContents\n title={t('新規入会完了.登録情報.見出し')}\n topMessage={[t('新規入会完了.登録情報.説明'), `${signboard.signupName}の新規入会手続きが完了しました。`]}\n mail={mail}\n familyName={familyName}\n firstName={firstName}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${signboard.signupReturnPageInfo.name}に移動する`}\n url={signboard.signupReturnPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (\n locationState: JoinCompletePageLocationState |\n JoinCompletePageCvsLocationState |\n JoinCompletePageFreeBucketLocationState,\n): boolean => {\n if (!locationState) {\n return true\n }\n const isCvs = isLocationStateCvs(locationState)\n\n if (!locationState.memberInfo) {\n return true\n }\n if (!locationState.signboard) {\n return true\n }\n if (!locationState.signboard.signupName ||\n !locationState.signboard.mainService ||\n !locationState.signboard.freeServices ||\n !locationState.signboard.signupReturnPageInfo ||\n !locationState.signboard.logoImgUrl\n ) {\n return true\n }\n\n if (isCvs) {\n if (!locationState.cvsContract) return true\n }\n\n if (locationState.contractMethod === 'none') {\n return false\n }\n\n if (!locationState.contractInfoForCompletePage) {\n return true\n }\n\n if (\n !locationState.contractInfoForCompletePage.term ||\n !locationState.contractInfoForCompletePage.amount ||\n !locationState.contractInfoForCompletePage.method ||\n !locationState.contractInfoForCompletePage.contractDate\n ) {\n return true\n }\n\n return false\n}\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\n\nfunction MembersInvalidOneTimeUrlPage(): JSX.Element {\n return (\n <>\n <PageTitle>ご案内</PageTitle>\n <ContentBlock>\n <ContentTitle>ワンタイムURL無効</ContentTitle>\n <ContentTopMessage>\n ワンタイムURLが無効となっています。<br/><br/>\n 該当の操作が完了していない方は再度操作をお願いいたします。\n </ContentTopMessage>\n </ContentBlock>\n </>\n )\n\n}\n\nexport default MembersInvalidOneTimeUrlPage\n","import React, {useEffect} from 'react'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport {faCheck} from '@fortawesome/free-solid-svg-icons'\nimport {isValidRegExpPattern} from '../../Utils/Validations/MembersValidation'\nimport {Spacer} from '../../../Common/Components/Spacer'\nimport styled from '@emotion/styled'\nimport {MBContentNoteTypography} from '../Atoms/Typographies'\nimport {FlexContainer} from '../Atoms/Containers'\nimport {Color} from '../Styles'\n\nconst availableColor = Color.Green500\nconst unavailableColor = Color.Red600\n\ntype PasswordStatus = 'empty' | 'available' | 'unavailable'\n\nconst iconSize = 1\nconst StyledFontAwesomeIcon = styled(FontAwesomeIcon)`\n font-size: ${iconSize}rem;\n margin: auto 0;\n`\n\ntype PasswordRuleTextProps = {\n ruleText: string\n password: string\n rule: RegExp\n onRuleValidate: (isValid: boolean) => void\n}\n\nexport function PasswordRuleText(props: PasswordRuleTextProps): JSX.Element {\n useEffect(() => {\n props.onRuleValidate(isValidRegExpPattern(props.password, props.rule))\n }, [props.password])\n\n const status = getPasswordStatus(props.password, props.rule)\n\n return (\n <FlexContainer>\n {\n status === 'available' &&\n <StyledFontAwesomeIcon\n data-testid=\"check-icon\"\n color={availableColor}\n icon={faCheck}\n />\n }\n <Spacer mt={'2px'} ml={status !== 'available' ? `${iconSize*10 + 3}px` : `3px`}>\n <MBContentNoteTypography color={getTextColor(status)}>\n {props.ruleText}\n </MBContentNoteTypography>\n </Spacer>\n </FlexContainer>\n )\n}\n\nconst getPasswordStatus = (password: string, rule: RegExp): PasswordStatus => {\n if (password === '') {\n return 'empty'\n }\n\n return isValidRegExpPattern(password, rule) ? 'available' : 'unavailable'\n}\n\nconst getTextColor = (status: PasswordStatus): string => {\n switch (status) {\n case 'empty':\n return ''\n case 'available':\n return availableColor\n case 'unavailable':\n return unavailableColor\n default:\n return ''\n }\n}\n","import React, {useCallback, useEffect, useState} from 'react'\nimport {MBMemberInput} from '../../Atoms/MBMemberInput'\nimport {PasswordRuleText} from '../../Molecules/PasswordRuleText'\nimport {MBNgBadge, MBOkBadge, MBRequiredBadge} from '../../Atoms/Badges'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {\n MBContentNoteWithMarkTypography,\n MBContentSubTitleTypography,\n} from '../../Atoms/Typographies'\nimport {FlexContainer} from '../../Atoms/Containers'\n\nconst maxPasswordLength = 64\n\nexport type PasswordFormProps = {\n showRequiredBadge: boolean\n password: string\n onChange: (password: string) => void\n passwordErrors: string[]\n defaultShowPasswordChecked: boolean\n onCheckboxChange: (checked: boolean) => void\n}\n\nexport const PasswordForm: React.VFC<PasswordFormProps> = (props) => {\n const [showPassword, setShowPassword] = useState(false)\n const [passwordValidState, setPasswordValidState] = useState<{ [key: string]: boolean }>({\n wordCount: false,\n useLowerCase: false,\n useUpperCase: false,\n useNumber: false,\n useSymbol: false,\n })\n const [errorMessageList, setErrorMessageList] = useState<string[]>([])\n const [is64overPassword, setIs64overPassword] = useState(false)\n const [isIncludeUnusableChars, setIsIncludeUnusableChars] = useState(false)\n\n useEffect(() => {\n const enteredPasswordErrorMessage: string[] = []\n\n if (props.password.match(/[^0-9a-zA-Z !\"#$%&'()*+,./:;<=>?\\\\[\\]^_`{|}~@-]/)) {\n setIsIncludeUnusableChars(true)\n const unusableChars = props.password.replace(\n /[0-9a-zA-Z !\"#$%&'()*+,./:;<=>?\\\\[\\]^_`{|}~@-]/g,\n '',\n )\n const deduplicatedChars = new Set(unusableChars.split(''))\n enteredPasswordErrorMessage.push(`『${Array.from(deduplicatedChars).join('')}』はパスワードに利用できません。`)\n } else {\n setIsIncludeUnusableChars(false)\n }\n\n if (props.password.length > maxPasswordLength) {\n setIs64overPassword(true)\n enteredPasswordErrorMessage.push(`パスワードは${maxPasswordLength}文字以内で設定ください。`)\n } else {\n setIs64overPassword(false)\n }\n\n setErrorMessageList([...props.passwordErrors, ...enteredPasswordErrorMessage])\n }, [props.password, props.passwordErrors])\n\n useEffect(() => {\n setShowPassword(props.defaultShowPasswordChecked)\n }, [props.defaultShowPasswordChecked])\n\n const handlePasswordValidate = useCallback((rule: string, isValid: boolean) => {\n setPasswordValidState(prevState => {\n return {\n ...prevState,\n [rule]: isValid,\n }\n })\n }, [])\n\n return (\n <div data-testid={'mb-password-form'}>\n <FlexContainer alignItems={'center'}>\n <label htmlFor=\"password-input\">\n <MBContentSubTitleTypography>パスワード</MBContentSubTitleTypography>\n </label>\n {props.showRequiredBadge && (\n <Spacer ml={'6px'}>\n <FlexContainer verticalAlign={'middle'}>\n <MBRequiredBadge/>\n </FlexContainer>\n </Spacer>\n )}\n </FlexContainer>\n\n <Spacer mt={'9px'}>\n <MBMemberInput\n type={showPassword ? 'text' : 'password'}\n autoComplete=\"off\"\n className=\"form-text_01 w_100\"\n value={props.password || ''}\n id=\"password-input\"\n placeholder=\"\"\n hasError={props.passwordErrors.length > 0}\n onChange={(e): void => {\n props.onChange(e.target.value)\n }}\n />\n </Spacer>\n\n <Spacer mt={'10px'}>\n <label>\n <MBMemberInput\n className=\"form-check_01\"\n type=\"checkbox\"\n checked={showPassword}\n hasError={false}\n onChange={(): void => {\n setShowPassword(!showPassword)\n props.onCheckboxChange(!showPassword)\n }}\n />\n <span className=\"txt\">パスワードを表示する</span>\n </label>\n </Spacer>\n\n <ErrorDisplay errors={errorMessageList}/>\n\n <Spacer mt={'12px'}>\n <FlexContainer alignItems={'center'}>\n <MBContentNoteWithMarkTypography note={'パスワードは下記の条件を全て満たす必要があります'}/>\n {getPasswordValidBadge(\n props.password, passwordValidState, isIncludeUnusableChars, is64overPassword,\n )}\n </FlexContainer>\n <PasswordRuleText\n ruleText=\"10文字以上\"\n password={props.password}\n rule={/^.{10,}$/}\n onRuleValidate={(isValid): void => handlePasswordValidate('wordCount', isValid)}\n />\n <PasswordRuleText\n ruleText=\"英小文字(a-z)\"\n password={props.password}\n rule={/^(?=.*[a-z]).*$/}\n onRuleValidate={(isValid): void => handlePasswordValidate('useLowerCase', isValid)}\n />\n <PasswordRuleText\n ruleText=\"英大文字(A-Z)\"\n password={props.password}\n rule={/^(?=.*[A-Z]).*$/}\n onRuleValidate={(isValid): void => handlePasswordValidate('useUpperCase', isValid)}\n />\n <PasswordRuleText\n ruleText=\"数字(0-9)\"\n password={props.password}\n rule={/^(?=.*[0-9]).*$/}\n onRuleValidate={(isValid): void => handlePasswordValidate('useNumber', isValid)}\n />\n <PasswordRuleText\n ruleText={'記号( ! \" # $ % & \\' ( ) * + , - . / : ; <=> ? [ \\\\ ] ^ _ ` { | } ~ @ )'}\n password={props.password}\n rule={/^(?=.*?[ !\"#$%&'()*+,./:;<=>?\\\\[\\]^_`{|}~@-]).*$/}\n onRuleValidate={(isValid): void => handlePasswordValidate('useSymbol', isValid)}\n />\n </Spacer>\n </div>\n )\n}\n\nconst getPasswordValidBadge = (\n password: string,\n passwordValidState: { [key: string]: boolean },\n isIncludeUnusableChars: boolean,\n is64overPassword: boolean,\n): JSX.Element => {\n if (password === '') {\n return <></>\n }\n\n const isUnavailable = Object.keys(passwordValidState).some((key) => {\n return !passwordValidState[key]\n })\n\n return (isUnavailable || isIncludeUnusableChars || is64overPassword) ?\n <Spacer ml={'6px'}>\n <FlexContainer verticalAlign={'middle'}>\n <MBNgBadge/>\n </FlexContainer>\n </Spacer> :\n <Spacer ml={'6px'}>\n <FlexContainer verticalAlign={'middle'}>\n <MBOkBadge/>\n </FlexContainer>\n </Spacer>\n}\n","import React from 'react'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {PasswordForm, PasswordFormProps} from './PasswordForm'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\n\ntype PasswordInputContentProps = {\n title: string\n topMessage: string\n} & PasswordFormProps\nexport const PasswordInputContent: React.VFC<PasswordInputContentProps> = (props) => {\n return (\n <PIMCard\n headerProps={{title: props.title}}\n testId={'block-password-input-content'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <MBContentSubTitleTypography>\n {props.topMessage}\n </MBContentSubTitleTypography>\n\n <PasswordForm\n showRequiredBadge={props.showRequiredBadge}\n password={props.password}\n onChange={(password: string): void => props.onChange(password)}\n passwordErrors={props.passwordErrors}\n defaultShowPasswordChecked={props.defaultShowPasswordChecked}\n onCheckboxChange={(checked: boolean): void => props.onCheckboxChange(checked)}\n />\n </PIMStack>\n </PIMCard>\n )\n}\n","import {ContractMethod, ConvenienceStoreInfo, ErrorMessagesBaseForContractInputExcludePaymentTerm, ErrorMessagesForPaymentMethodInput, MobileCarrierInfo, NewCreditCardInputInfo, PaymentInputDetail, PaymentInputDetailWithMethod} from '../../../../Props/ContractInputInfo'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport React from 'react'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {NewCreditCardInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/NewCreditCardInputComponent'\nimport {MobileCarrierInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/MobileCarrierInputComponent'\nimport {ConvenienceStoreInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/ConvenienceStoreInputComponent'\n\nexport type DisplayPaymentMethodsProps = {\n disabled: boolean\n paymentMethodList: ContractMethod[]\n paymentInputDetailWithMethod: PaymentInputDetailWithMethod\n errorMessages: ErrorMessagesBaseForContractInputExcludePaymentTerm\n onChangeSelectedMethod: (changeSelectedMethod: ContractMethod) => void\n onChangeInputDetailInfo: (changeInputDetailInfo: PaymentInputDetail) => void\n}\n\nexport const SignupDisplayPaymentMethodsRadioList: React.VFC<DisplayPaymentMethodsProps> =\n (props) => {\n return (\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showFirstDivider showEndDivider>\n {props.paymentMethodList.map((paymentMethod, idx) => {\n const checked = props.paymentInputDetailWithMethod.method === paymentMethod\n\n return (\n <div key={`payment-method-${idx}`}>\n <MBMemberRadio\n id={`payment-${idx}`}\n name=\"payment\"\n labelName={PAYMENT.METHODS_FOR_RADIO_LABEL[paymentMethod]}\n disabled={props.disabled}\n hasError={props.errorMessages.paymentInputMethodErrors.length > 0}\n onChange={(): void => {\n props.onChangeSelectedMethod(paymentMethod)\n }}\n checked={checked}\n isBoldLabel\n />\n <DisplayInputDetailPaymentMethod\n paymentMethod={paymentMethod}\n paymentInputDetailWithMethod={props.paymentInputDetailWithMethod}\n errorMessages={props.errorMessages}\n onChangeInputDetailInfo={\n (value: PaymentInputDetail): void => props.onChangeInputDetailInfo(value)\n }\n />\n </div>\n )\n })}\n </PIMStack>\n )\n }\n\nexport type DisplayInputDetailPaymentMethodForProps = {\n paymentMethod: ContractMethod\n paymentInputDetailWithMethod: PaymentInputDetailWithMethod\n errorMessages: ErrorMessagesForPaymentMethodInput\n onChangeInputDetailInfo: (changeInputDetailInfo: PaymentInputDetail) => void\n}\n\nconst DisplayInputDetailPaymentMethod: React.VFC<DisplayInputDetailPaymentMethodForProps>\n = (props) => {\n if (props.paymentInputDetailWithMethod.method !== props.paymentMethod) {\n return <></>\n }\n\n switch (props.paymentInputDetailWithMethod.method) {\n case 'credit_card':\n return (\n <NewCreditCardInputComponent\n newCreditCardInputInfo={\n props.paymentInputDetailWithMethod.creditCard.newCreditCardInfo}\n errorMessages={props.errorMessages}\n onChangeInputDetailInfo={\n (value: NewCreditCardInputInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: {\n creditCardType: 'newCard',\n newCreditCardInfo: value,\n myCreditCardInfo:\n props.paymentInputDetailWithMethod.creditCard.myCreditCardInfo,\n },\n mobileCarrier: props.paymentInputDetailWithMethod.mobileCarrier,\n convenienceStore: props.paymentInputDetailWithMethod.convenienceStore,\n })\n }\n />\n )\n\n case 'mobile_carrier':\n return <MobileCarrierInputComponent\n mobileCarrierInputInfo={props.paymentInputDetailWithMethod.mobileCarrier}\n errorMessage={props.errorMessages}\n onChangeInputDetailInfo={\n (value: MobileCarrierInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: props.paymentInputDetailWithMethod.creditCard,\n mobileCarrier: value,\n convenienceStore: props.paymentInputDetailWithMethod.convenienceStore,\n })\n }\n />\n case 'convenience_store':\n return <ConvenienceStoreInputComponent\n convenienceStoreInputInfo={props.paymentInputDetailWithMethod.convenienceStore}\n errorMessage={props.errorMessages}\n onChangeInputDetailInfo={\n (value: ConvenienceStoreInfo): void =>\n props.onChangeInputDetailInfo({\n creditCard: props.paymentInputDetailWithMethod.creditCard,\n mobileCarrier: props.paymentInputDetailWithMethod.mobileCarrier,\n convenienceStore: value,\n })\n }\n />\n case 'none':\n return <></>\n\n default:\n throw new MBMemberError('SystemError')\n }\n}\n","import {\n ContractInputInfoAll,\n ContractMethod,\n ErrorMessagesBaseForContractInputExcludePaymentTerm,\n getContractMethodsByTerm,\n PaymentInputDetail,\n} from '../../../../Props/ContractInputInfo'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport React from 'react'\nimport {PaymentMethod} from '../../../../DTO/PaymentMethodDTO'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {\n MBContentNoteWithMarkTypography,\n MBContentSubTitleTypography,\n} from '../../../Atoms/Typographies'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {SignupDisplayPaymentMethodsRadioList} from './SignupDisplayPaymentMethodsRadioList'\n\nexport type SelectPaymentMethodContentsProps = {\n paymentMethodList: PaymentMethod[]\n contractInputInfoState: ContractInputInfoAll\n onChangeSelectedMethod: (changeSelectedMethod: ContractMethod) => void\n onChangeInputDetailInfo: (changeInputDetailInfo: PaymentInputDetail) => void\n errorMessages: ErrorMessagesBaseForContractInputExcludePaymentTerm\n}\n\nexport const SignupSelectPaymentMethodContents: React.VFC<SelectPaymentMethodContentsProps> = (\n {\n paymentMethodList,\n contractInputInfoState,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n errorMessages,\n }\n) => {\n const contractMethods = getContractMethodsByTerm(paymentMethodList, contractInputInfoState.term)\n\n return (\n <PIMCard\n headerProps={{title: 'お支払い情報入力', require: true}}\n testId={'block-input-pay-information'}\n >\n <div>\n <MBContentSubTitleTypography>\n 代金のお支払い方法を選択してください。\n </MBContentSubTitleTypography>\n <Spacer mt={'10px'}>\n <MBContentNoteWithMarkTypography note={\n contractMethods.find(paymentMethod => paymentMethod === 'convenience_store')\n ? 'コンビニ決済以外は自動課金継続となります。'\n : '自動課金継続となります。'\n }/>\n </Spacer>\n {errorMessages.paymentInputMethodErrors.length > 0 && (\n <Spacer mt={'12px'}>\n <PIMWarningMessages messages={errorMessages.paymentInputMethodErrors}/>\n </Spacer>\n )}\n </div>\n\n <Spacer mt={'18px'}>\n <PaymentMethodRadioList\n contractMethods={contractMethods}\n contractInputInfo={contractInputInfoState}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(changeSelectedMethod: ContractMethod): void => {\n onChangeSelectedMethod(changeSelectedMethod)\n }}\n onChangeInputDetailInfo={(changeInputDetailInfo: PaymentInputDetail): void => {\n onChangeInputDetailInfo(changeInputDetailInfo)\n }}\n />\n </Spacer>\n </PIMCard>\n )\n}\n\nexport type PaymentMethodRadioListProps = {\n contractMethods: ContractMethod[]\n contractInputInfo: ContractInputInfoAll\n errorMessages: ErrorMessagesBaseForContractInputExcludePaymentTerm\n onChangeSelectedMethod: (changeSelectedMethod: ContractMethod) => void\n onChangeInputDetailInfo: (changeInputDetailInfo: PaymentInputDetail) => void\n}\n\nconst PaymentMethodRadioList: React.VFC<PaymentMethodRadioListProps> = (\n {\n contractMethods,\n contractInputInfo,\n errorMessages,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n }\n) => {\n if (Object.keys(contractMethods).length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n return <SignupDisplayPaymentMethodsRadioList\n paymentMethodList={contractMethods}\n paymentInputDetailWithMethod={contractInputInfo}\n disabled={contractInputInfo.term === ''}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(value: ContractMethod): void => onChangeSelectedMethod(value)}\n onChangeInputDetailInfo={(value: PaymentInputDetail): void => onChangeInputDetailInfo(value)}\n />\n}\n","import React from 'react'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../Atoms/Badges'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBMemberInput} from '../../Atoms/MBMemberInput'\nimport {PIMWarningMessages} from '../../Atoms/Labels/PIMWarningMessages'\nimport {convertOnBlur} from '../../../Utils/ConvertOnBlur'\n\nexport type MemberNameErrors = {\n familyNameErrors: string[]\n firstNameErrors: string[]\n familyNameKanaErrors: string[]\n firstNameKanaErrors: string[]\n}\n\nexport type MemberName = {\n familyName: string,\n firstName: string,\n familyNameKana: string,\n firstNameKana: string,\n}\n\ntype MemberNameInputsProps = {\n memberName: MemberName\n memberNameErrors: MemberNameErrors\n onMemberNameChange: (memberName: MemberName) => void\n}\nexport const MemberNameInputs: React.VFC<MemberNameInputsProps> = (\n {\n memberName,\n memberNameErrors,\n onMemberNameChange,\n },\n) => {\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n } = memberName\n const {\n familyNameErrors, firstNameErrors,\n familyNameKanaErrors, firstNameKanaErrors,\n } = memberNameErrors\n\n const updateMemberName = (\n name: string,\n value: string,\n memberName: MemberName,\n ): MemberName => ({\n ...memberName,\n [name]: value,\n })\n\n const handleChangeInput = (\n e: React.ChangeEvent<HTMLInputElement>,\n memberName: MemberName,\n ): MemberName => {\n const {\n name,\n value,\n } = e.target\n return updateMemberName(name, value, memberName)\n }\n\n const handleBlurInput = (\n e: React.FocusEvent<HTMLInputElement>,\n memberName: MemberName,\n ): MemberName => {\n const {name, value} = e.target\n return updateMemberName(name, convertOnBlur(name, value), memberName)\n }\n\n return (<>\n <div data-testid={'block-input-name-info'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <MBContentSubTitleTypography>お名前</MBContentSubTitleTypography>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <div data-testid={'input-family-name'}>\n <PIMStack spacing={1}>\n <label htmlFor=\"family-name-input\">姓</label>\n <MBMemberInput\n type=\"text\"\n name=\"familyName\"\n autoComplete=\"family-name\"\n className=\"form-text_01 w_100\"\n value={familyName}\n id=\"family-name-input\"\n placeholder=\"例)山田\"\n hasError={familyNameErrors.length > 0}\n onChange={(e): void => {\n onMemberNameChange(handleChangeInput(e, memberName))\n }}\n onBlur={(e): void => {\n onMemberNameChange(handleBlurInput(e, memberName))\n }}\n />\n </PIMStack>\n {familyNameErrors.length > 0 && (\n <Spacer mt={'10px'}>\n <PIMWarningMessages messages={familyNameErrors}/>\n </Spacer>\n )}\n </div>\n </Spacer>\n <Spacer mt={'16px'}>\n <div data-testid={'input-first-name'}>\n <PIMStack spacing={1}>\n <label htmlFor=\"first-name-input\">名</label>\n <MBMemberInput\n type=\"text\"\n name=\"firstName\"\n autoComplete=\"given-name\"\n className=\"form-text_01 w_100\"\n value={firstName}\n id=\"first-name-input\"\n placeholder=\"例)太郎\"\n hasError={firstNameErrors.length > 0}\n onChange={(e): void => {\n onMemberNameChange(handleChangeInput(e, memberName))\n }}\n onBlur={(e): void => {\n onMemberNameChange(handleBlurInput(e, memberName))\n }}\n />\n </PIMStack>\n {firstNameErrors.length > 0 && (\n <Spacer mt={'10px'}>\n <PIMWarningMessages messages={firstNameErrors}/>\n </Spacer>\n )}\n </div>\n </Spacer>\n </div>\n\n <div data-testid={'block-input-kana-info'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <MBContentSubTitleTypography>フリガナ</MBContentSubTitleTypography>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <div data-testid=\"input-family-name-kana\">\n <PIMStack spacing={1}>\n <label htmlFor=\"family-name-kana-input\">セイ</label>\n <MBMemberInput\n type=\"text\"\n name=\"familyNameKana\"\n className=\"form-text_01 w_100\"\n value={familyNameKana}\n id=\"family-name-kana-input\"\n placeholder=\"例)ヤマダ\"\n hasError={familyNameKanaErrors.length > 0}\n onChange={(e): void => {\n onMemberNameChange(handleChangeInput(e, memberName))\n }}\n onBlur={(e): void => {\n onMemberNameChange(handleBlurInput(e, memberName))\n }}\n />\n </PIMStack>\n {familyNameKanaErrors.length > 0 && (\n <Spacer mt={'10px'}>\n <PIMWarningMessages messages={familyNameKanaErrors}/>\n </Spacer>\n )}\n </div>\n </Spacer>\n <Spacer mt={'16px'}>\n <div data-testid={'input-first-name-kana'}>\n <PIMStack spacing={1}>\n <label htmlFor=\"first-name-kana-input\">メイ</label>\n <MBMemberInput\n type=\"text\"\n name=\"firstNameKana\"\n className=\"form-text_01 w_100\"\n value={firstNameKana || ''}\n id=\"first-name-kana-input\"\n placeholder=\"例)タロウ\"\n hasError={firstNameKanaErrors.length > 0}\n onChange={(e): void => {\n onMemberNameChange(handleChangeInput(e, memberName))\n }}\n onBlur={(e): void => {\n onMemberNameChange(handleBlurInput(e, memberName))\n }}\n />\n </PIMStack>\n {firstNameKanaErrors.length > 0 && (\n <Spacer mt={'10px'}>\n <PIMWarningMessages messages={firstNameKanaErrors}/>\n </Spacer>\n )}\n </div>\n </Spacer>\n </div>\n </>)\n}\n","import React from 'react'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../../Atoms/Badges'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {GENDER} from '../../../../../Common/Constants'\n\ntype GenderInputProps = {\n inputGender: string\n genderErrors: string[]\n onChange: (gender: string) => void\n}\nexport const GenderInput: React.VFC<GenderInputProps> = (\n {\n inputGender,\n genderErrors,\n onChange,\n },\n) => {\n return (\n <PIMStack spacing={'10px'} testId={'block-input-gender'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <MBContentSubTitleTypography>性別</MBContentSubTitleTypography>\n <MBRequiredBadge/>\n </PIMStack>\n <PIMStack direction={'row'} spacing={3}>\n {Object.entries(GENDER).map(([value, label]) => (\n <MBMemberRadio\n key={value}\n name={'gender'}\n labelName={label}\n autoComplete={'sex'}\n value={value}\n checked={inputGender === value}\n hasError={genderErrors.length > 0}\n onChange={(e): void => onChange(e.target.value)}\n />\n ))}\n </PIMStack>\n {genderErrors.length > 0 && (\n <PIMWarningMessages messages={genderErrors}/>\n )}\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {ExtendMetaData, ExtendMetaDataInputInfo, ExtendMetaDataItem} from '../../../../DTO/ExtendMetaDataDTO'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBMemberSelect} from '../../../Atoms/MBMemberSelect'\nimport {MBMemberInput} from \"../../../Atoms/MBMemberInput\"\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBRequiredBadge} from '../../../Atoms/Badges'\nimport {RowFlexContainer} from '../../../../../Admins/Views/Atoms/Containers'\nimport {Optional} from '../../../../../Common/TypeHelper'\nimport {ExtendMetaDataErrors} from '../../../../Utils/Validations/ValidateMembersSignupInput'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\n\ntype ExtendMetaDataInputBlockProps = {\n extendMetaData: ExtendMetaData[]\n extendMetaDataInputState: ExtendMetaDataInputInfo\n setExtendMetaDataInputState: (inputInfo: ExtendMetaDataInputInfo) => void\n errorMessages: Optional<ExtendMetaDataErrors>\n}\n\nexport const ExtendMetaDataInputBlock: React.VFC<ExtendMetaDataInputBlockProps> = (\n {\n extendMetaData,\n extendMetaDataInputState,\n setExtendMetaDataInputState,\n errorMessages,\n },\n) => {\n return <>{extendMetaData.map(({header, items, description}, idx) =>\n <PIMCard\n headerProps={{\n title: header,\n require: items.length === 1 && items[0].required,\n }}\n key={idx}\n testId={`block-extend-meta-data-${idx}`}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n {description && <MBContentSubTitleTypography>{description}</MBContentSubTitleTypography>}\n {items.map(item =>\n <PIMStack\n spacing={'6px'}\n key={item.id}\n testId={`input-area-${item.id}`}\n >\n {items.length > 1 &&\n <RowFlexContainer gap={'6px'}>\n <label htmlFor={item.id}>\n <MBContentSubTitleTypography>{item.label}</MBContentSubTitleTypography>\n </label>\n {item.required && <MBRequiredBadge/>}\n </RowFlexContainer>\n }\n <div>\n <TypeInputForm\n itemInfo={item}\n itemState={extendMetaDataInputState[item.id]}\n onChange={(value): void => setExtendMetaDataInputState({\n ...extendMetaDataInputState,\n [item.id]: value,\n })}\n hasError={getError(errorMessages, item.id).length > 0}\n />\n <ErrorDisplay errors={getError(errorMessages, item.id)}/>\n </div>\n </PIMStack>,\n )\n }\n </PIMStack>\n </PIMCard>,\n )}</>\n}\n\nconst getError = (errors: Optional<ExtendMetaDataErrors>, itemId: string): string[] => {\n if (errors === undefined) {\n return []\n }\n\n return errors[itemId] ?? []\n}\n\ntype TypeInputFormProps = {\n itemInfo: ExtendMetaDataItem\n itemState: number | string | undefined\n onChange: (value: number | string) => void\n hasError: boolean\n}\nconst TypeInputForm: React.VFC<TypeInputFormProps> = (\n {itemInfo, itemState, onChange, hasError},\n) => {\n switch (itemInfo.type) {\n case 'singleSelect':\n return (\n <MBMemberSelect\n id={itemInfo.id}\n value={itemState}\n hasError={hasError}\n onChange={(e): void => onChange(Number(e.target.value))}\n >\n <option className=\"placeholder\" value=\"\" hidden>選択してください</option>\n {itemInfo.options.map(option =>\n <option key={option.id} value={option.id}>{option.label}</option>,\n )}\n </MBMemberSelect>\n )\n case 'singleText':\n return (\n <MBMemberInput\n id={itemInfo.id}\n value={itemState}\n className=\"form-text_01 w_100 pc100\"\n hasError={hasError}\n onChange={(e): void => onChange(e.target.value)}\n />\n )\n default:\n return <></>\n }\n}\n","import React, {ChangeEvent, useCallback, useState} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MemberInfoForConfirmPage, MemberInfoForInputPage} from '../../../Props/MemberRegisterPageLocationStates'\nimport {SearchPostCode} from '../../../../Common/SearchPostCode'\nimport {MBMemberSelect} from '../../Atoms/MBMemberSelect'\nimport {CALENDAR, PAYMENT} from '../../../../Common/Constants'\nimport {MailMagazine} from '../../../DTO/MailMagazineDTO'\nimport {Signboard} from '../../../DTO/SignboardDTO'\nimport {validateAgreeCheck, validatePassword} from '../../../Utils/Validations/MembersValidation'\nimport {ExtendMetaDataErrors, validateMemberSignupInput, ValidationSignupInput} from '../../../Utils/Validations/ValidateMembersSignupInput'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ContractInputInfo, ContractInputInfoAll, ContractMethod, ContractTerm, ErrorMessageForInvalidCard, ErrorMessagesForSignupContract, findAmountByTermAndMethod, isFreeBucket, PaymentInputDetail} from '../../../Props/ContractInputInfo'\nimport {MailMagazineSelectContentBlock} from '../../Components/InputContentBlocks/MailMagazineSelectContentBlock'\nimport {PaymentInformation, RegisterOrganizationContentBlock} from '../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {SelectContractTermContents} from '../../Components/PaymentsRelations/InputContentBlocks/SelectContractTermContents'\nimport {animateScroll} from 'react-scroll'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {PasswordInputContent} from '../../Components/InputContentBlocks/PasswordInputContent'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBRequiredBadge} from '../../Atoms/Badges'\nimport {PIMWarningMessages} from '../../Atoms/Labels/PIMWarningMessages'\nimport {AgreementCheckBoxContentBlock} from '../../Components/InputContentBlocks/AgreementCheckBoxContentBlock'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {MembersAgreement} from '../../Ecosystems/MembersAgreement'\nimport MemberAgreementRepo from '../../../Repo/MemberAgreementRepo'\nimport {SignupSelectPaymentMethodContents} from './Components/SignupSelectPaymentMethodContents'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {ContactAddressInputContents} from '../../Components/InputContentBlocks/AddressInputs/ContactAddressInputContents'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {EnrollmentReasonSelectContentBlock, EnrollmentReasonSelectedInfo} from '../../Components/InputContentBlocks/EnrollmentReasonSelectContentBlock'\nimport {MemberNameInputs} from '../../Components/InputContentBlocks/MemberNameInputs'\nimport BucketHeader from '../../../DTO/BucketHeader'\nimport {GenderInput} from './Components/GenderInput'\nimport {useTranslation} from 'react-i18next'\nimport {ExtendMetaData, ExtendMetaDataInputInfo} from '../../../DTO/ExtendMetaDataDTO'\nimport {ExtendMetaDataInputBlock} from './Components/ExtendMetaDataInputBlock'\n\ntype MembersSignupInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n memberAgreementRepo: MemberAgreementRepo\n searchPostCode: SearchPostCode\n}\n\nexport type InputPageLocationState = {\n isInvalidCardError: boolean\n isMobileCarrierError: boolean\n memberInfo: MemberInfoForInputPage\n signboard: Signboard\n paymentMethodList: PaymentMethod[]\n contractInputInfo: ContractInputInfo\n extendMetaData: ExtendMetaData[]\n extendMetaDataInputInfo?: ExtendMetaDataInputInfo\n}\n\ntype State = {\n familyName: string\n firstName: string\n familyNameKana: string\n firstNameKana: string\n gender: string\n birthdayYear: string\n birthdayMonth: string\n birthdayDay: string\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding: string\n phoneMobile: string\n phoneTel: string\n password: string\n agreedIdList: number[]\n mailMagazineIdCheckedList: number[]\n enrollmentReasonSelectedInfo: Optional<EnrollmentReasonSelectedInfo>\n}\n\ntype ErrorState = {\n isInputError: boolean\n agreeCheckErrors: string[]\n familyNameErrors: string[]\n firstNameErrors: string[]\n familyNameKanaErrors: string[]\n firstNameKanaErrors: string[]\n genderErrors: string[]\n birthdayErrors: string[]\n birthdayYearErrors: string[]\n birthdayMonthErrors: string[]\n birthdayDayErrors: string[]\n postCodeErrors: string[]\n addressPrefectureCodeErrors: string[]\n addressCityErrors: string[]\n addressStreetErrors: string[]\n addressBuildingErrors: string[]\n phoneMobileErrors: string[]\n phoneTelErrors: string[]\n passwordErrors: string[]\n contractErrors: ErrorMessagesForSignupContract\n enrollmentReasonErrors: string[]\n extendMetaDataErrors: Optional<ExtendMetaDataErrors>\n}\n\nexport const MembersSignupInputPage: React.VFC<MembersSignupInputPageProps> = (props) => {\n const {t} = useTranslation('member')\n const [isSubmitButtonDisabled, setIsSubmitButtonDisabled] = useState(false)\n\n const location = useLocation<InputPageLocationState>()\n const locationState: InputPageLocationState = location.state\n\n const [contractInputInfoState, setContractInputInfoState] = useState<ContractInputInfoAll>({\n term: isFreeBucket(locationState?.paymentMethodList)\n ? 'permanent'\n : (locationState?.contractInputInfo?.term || ''),\n method: isFreeBucket(locationState?.paymentMethodList)\n ? 'none'\n : locationState?.contractInputInfo?.method,\n amount: findAmountByTermAndMethod(\n locationState?.paymentMethodList,\n locationState?.contractInputInfo?.term,\n locationState?.contractInputInfo?.method,\n ),\n creditCard: {\n creditCardType: 'newCard',\n newCreditCardInfo: {\n cardNumber:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.cardNumber || '',\n expireMonth:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireMonth || '',\n expireYear:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireYear || '',\n holderName:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.holderName || '',\n securityCode:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.securityCode || '',\n },\n myCreditCardInfo: {selectedCardId: '', securityCodeMap: []},\n },\n mobileCarrier: {\n carrierKey: locationState?.contractInputInfo?.mobileCarrier?.carrierKey || '',\n },\n convenienceStore: {\n convenienceStoreKey:\n locationState?.contractInputInfo?.convenienceStore?.convenienceStoreKey || '',\n },\n })\n\n const [state, setState] = useState<State>({\n familyName: locationState?.memberInfo?.familyName || '',\n firstName: locationState?.memberInfo?.firstName || '',\n familyNameKana: locationState?.memberInfo?.familyNameKana || '',\n firstNameKana: locationState?.memberInfo?.firstNameKana || '',\n gender: locationState?.memberInfo?.gender || '',\n birthdayYear: locationState?.memberInfo?.birthday?.split('/')[0] || '',\n birthdayMonth: locationState?.memberInfo?.birthday?.split('/')[1] || '',\n birthdayDay: locationState?.memberInfo?.birthday?.split('/')[2] || '',\n postCode: locationState?.memberInfo?.postCode || '',\n addressPrefectureCode: locationState?.memberInfo?.addressPrefectureCode || '',\n addressCity: locationState?.memberInfo?.addressCity || '',\n addressStreet: locationState?.memberInfo?.addressStreet || '',\n addressBuilding: locationState?.memberInfo?.addressBuilding || '',\n phoneMobile: locationState?.memberInfo?.phoneMobile || '',\n phoneTel: locationState?.memberInfo?.phoneTel || '',\n password: locationState?.memberInfo?.password || '',\n agreedIdList: locationState?.memberInfo?.agreedIdList || [],\n mailMagazineIdCheckedList: location.state?.memberInfo?.mailMagazineIdCheckedList\n || getDefaultMailMagazineIdCheckList(locationState?.signboard?.mailMagazineList || []),\n enrollmentReasonSelectedInfo: locationState?.memberInfo?.enrollmentReasonSelectedInfo ||\n getDefaultEnrollmentReasonSelectedInfo(locationState?.signboard?.mainService),\n })\n\n const [extendMetaDataInputState, setExtendMetaDataInputState] =\n useState<Optional<ExtendMetaDataInputInfo>>(\n locationState?.extendMetaDataInputInfo ??\n getDefaultExtendMetaDataInputInfo(locationState?.extendMetaData),\n )\n\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n agreeCheckErrors:\n (locationState?.memberInfo?.agreedIdList !== undefined)\n ? validateAgreeCheck(locationState.memberInfo.agreedIdList)\n : [],\n familyNameErrors: [],\n firstNameErrors: [],\n familyNameKanaErrors: [],\n firstNameKanaErrors: [],\n genderErrors: [],\n birthdayErrors: [],\n birthdayYearErrors: [],\n birthdayMonthErrors: [],\n birthdayDayErrors: [],\n postCodeErrors: [],\n addressPrefectureCodeErrors: [],\n addressCityErrors: [],\n addressStreetErrors: [],\n addressBuildingErrors: [],\n phoneMobileErrors: [],\n phoneTelErrors: [],\n passwordErrors: locationState?.isMobileCarrierError ? validatePassword('') : [],\n contractErrors: {\n invalidCardErrors: ErrorMessageForInvalidCard(\n locationState?.contractInputInfo?.creditCard?.creditCardType,\n locationState?.isInvalidCardError,\n ),\n paymentInputTermErrors: [],\n paymentInputMethodErrors: [],\n creditCardNumberErrors: [],\n creditCardExpireMonthErrors: [],\n creditCardExpireYearErrors: [],\n creditCardFutureExpireDateErrors: [],\n creditCardHolderNameErrors: [],\n creditCardSecurityCodeErrors: [],\n convenienceStoreErrors: [],\n mobileCarrierErrors: locationState?.isMobileCarrierError\n ? ['決済が完了しませんでした。再度お手続きを実施ください。']\n : [],\n },\n enrollmentReasonErrors: [],\n extendMetaDataErrors: undefined,\n })\n\n const [showAgreement, setShowAgreement] = useState(false)\n\n const [showPasswordChecked, setShowPasswordChecked] = useState(false)\n\n const handleAgreementButtonClick = useCallback((): void => {\n setShowAgreement(true)\n }, [])\n\n const handleAgree = useCallback((agreedIdList: number[]): void => {\n props.navigator.changeMembersSignupInputPageState({\n ...locationState.memberInfo,\n agreedIdList: agreedIdList,\n } as MemberInfoForInputPage,\n locationState.signboard,\n locationState.paymentMethodList,\n locationState.extendMetaData,\n locationState.contractInputInfo,\n locationState.extendMetaDataInputInfo,\n )\n setState((prevState) => {\n return {\n ...prevState,\n agreedIdList: agreedIdList,\n }\n })\n setErrorState((prevState) => {\n return {\n ...prevState,\n agreeCheckErrors: validateAgreeCheck(agreedIdList),\n }\n })\n setShowAgreement(false)\n }, [props.navigator, locationState])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n function getDefaultMailMagazineIdCheckList(mailMagazineList: MailMagazine[]): number[] {\n if (!mailMagazineList) {\n return []\n }\n return mailMagazineList.map((mailMagazine) => mailMagazine.id)\n }\n\n function set20yearsOld(e: ChangeEvent<HTMLSelectElement>): void {\n if (state.birthdayYear === '') {\n e.target.children.item(21)?.setAttribute('selected', 'true')\n updateState('birthdayYear', e.target.value)\n }\n }\n\n function goToMembersSignupInputConfirmPage(): void {\n setShowPasswordChecked(false)\n setIsSubmitButtonDisabled(true)\n\n const inputForValidation: ValidationSignupInput = {\n ...state,\n familyName: state.familyName.trim(),\n firstName: state.firstName.trim(),\n familyNameKana: state.familyNameKana.trim(),\n firstNameKana: state.firstNameKana.trim(),\n postCode: state.postCode.trim(),\n addressCity: state.addressCity.trim(),\n addressStreet: state.addressStreet.trim(),\n addressBuilding: addressBuilding.trim(),\n phoneMobile: phoneMobile.trim(),\n phoneTel: phoneTel.trim(),\n paymentInputTerm: contractInputInfoState?.term,\n paymentInputMethod: contractInputInfoState?.method,\n creditCardType: contractInputInfoState?.creditCard?.creditCardType || '',\n creditCardNumber:\n contractInputInfoState?.creditCard?.newCreditCardInfo.cardNumber || '',\n creditCardExpireMonth:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireMonth || '',\n creditCardExpireYear:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireYear || '',\n creditCardHolderName:\n contractInputInfoState?.creditCard?.newCreditCardInfo.holderName || '',\n creditCardSecurityCode:\n contractInputInfoState?.creditCard?.newCreditCardInfo.securityCode || '',\n convenienceStore: contractInputInfoState?.convenienceStore?.convenienceStoreKey || '',\n mobileCarrier: contractInputInfoState?.mobileCarrier?.carrierKey || '',\n enrollmentReasonValidateParam: {\n candidates: signboard.mainService.enrollmentReasonList || [],\n selected: state.enrollmentReasonSelectedInfo,\n },\n extendMetaDataParam: {\n extendMetaData: locationState?.extendMetaData,\n inputState: extendMetaDataInputState,\n },\n }\n const {\n enrollmentReasonValidateParam,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extendMetaDataParam,\n ...restForState\n } = inputForValidation\n const inputForState = {\n ...restForState,\n enrollmentReasonSelectedInfo: enrollmentReasonValidateParam.selected,\n }\n setState((prevState) => ({\n ...prevState,\n ...inputForState,\n }))\n\n const validationResult = validateMemberSignupInput(inputForValidation)\n\n if (validationResult.hasError) {\n setIsSubmitButtonDisabled(false)\n setErrorState({\n isInputError: true,\n agreeCheckErrors: validationResult.errors.agreedIdList,\n familyNameErrors: validationResult.errors.familyName,\n firstNameErrors: validationResult.errors.firstName,\n familyNameKanaErrors: validationResult.errors.familyNameKana,\n firstNameKanaErrors: validationResult.errors.firstNameKana,\n genderErrors: validationResult.errors.gender,\n birthdayErrors: validationResult.errors.birthdayCombination,\n birthdayYearErrors: validationResult.errors.birthdayYear,\n birthdayMonthErrors: validationResult.errors.birthdayMonth,\n birthdayDayErrors: validationResult.errors.birthdayDay,\n postCodeErrors: validationResult.errors.postCode,\n addressPrefectureCodeErrors: validationResult.errors.addressPrefectureCode,\n addressCityErrors: validationResult.errors.addressCity,\n addressStreetErrors: validationResult.errors.addressStreet,\n addressBuildingErrors: validationResult.errors.addressBuilding,\n phoneMobileErrors: validationResult.errors.phoneMobile,\n phoneTelErrors: validationResult.errors.phoneTel,\n passwordErrors: validationResult.errors.password,\n contractErrors: {\n invalidCardErrors: [],\n paymentInputTermErrors: validationResult.errors.paymentInputTerm,\n paymentInputMethodErrors: validationResult.errors.paymentInputMethod,\n creditCardNumberErrors: validationResult.errors.creditCardNumber,\n creditCardExpireMonthErrors: validationResult.errors.creditCardExpireMonth,\n creditCardExpireYearErrors: validationResult.errors.creditCardExpireYear,\n creditCardFutureExpireDateErrors: validationResult.errors.creditCardFutureExpireDate,\n creditCardHolderNameErrors: validationResult.errors.creditCardHolderName,\n creditCardSecurityCodeErrors: validationResult.errors.creditCardSecurityCode,\n convenienceStoreErrors: validationResult.errors.convenienceStore,\n mobileCarrierErrors: validationResult.errors.mobileCarrier,\n },\n enrollmentReasonErrors: validationResult.errors.enrollmentReasonValidateParam,\n extendMetaDataErrors: validationResult.errors.extendMetaData,\n })\n animateScroll.scrollToTop()\n return\n }\n\n const {\n birthdayYear,\n birthdayMonth,\n birthdayDay,\n paymentInputTerm,\n paymentInputMethod,\n creditCardNumber,\n creditCardExpireMonth,\n creditCardExpireYear,\n creditCardHolderName,\n creditCardSecurityCode,\n convenienceStore,\n mobileCarrier,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n creditCardType,\n ...rest\n } = inputForState\n const memberRegisterInformationProps: MemberInfoForConfirmPage = {\n mail: locationState.memberInfo.mail,\n invitationId: locationState.memberInfo.invitationId,\n birthday: birthdayYear + '/' + birthdayMonth + '/' + birthdayDay,\n mailMagazineIdCheckedList: state.mailMagazineIdCheckedList,\n ...rest,\n }\n\n if (!contractInputInfoState?.creditCard) {\n return\n }\n\n const contractInputInfo: ContractInputInfo = {\n term: paymentInputTerm ?? '',\n method: paymentInputMethod,\n amount: contractInputInfoState.amount,\n\n creditCard: {\n ...contractInputInfoState.creditCard,\n newCreditCardInfo: {\n cardNumber: creditCardNumber,\n expireMonth: creditCardExpireMonth,\n expireYear: creditCardExpireYear,\n holderName: creditCardHolderName,\n securityCode: creditCardSecurityCode,\n },\n },\n\n mobileCarrier: {\n carrierKey: mobileCarrier,\n },\n\n convenienceStore: {\n convenienceStoreKey: convenienceStore,\n },\n }\n\n\n props.navigator.goToMembersSignupInputConfirmPage(\n memberRegisterInformationProps,\n locationState.signboard,\n locationState.paymentMethodList,\n contractInputInfo,\n locationState.extendMetaData,\n extendMetaDataInputState,\n )\n }\n\n function updateState(name: string, value: string): void {\n setState((prevState) => ({\n ...prevState,\n [name]: value,\n }))\n }\n\n function handleChangeSelect(e: React.ChangeEvent<HTMLSelectElement>): void {\n const {name, value} = e.target\n updateState(name, value)\n }\n\n const handlePasswordInputChange = useCallback((password: string) => {\n updateState('password', password)\n }, [])\n\n if (!locationState\n || !locationState.memberInfo?.mail || !locationState.memberInfo?.invitationId\n || !locationState.signboard?.signupKey || !locationState.signboard?.logoImgUrl\n || !locationState.signboard?.signupName || !locationState.signboard?.mailMagazineList\n || !locationState.paymentMethodList\n ) return null\n\n const paymentInformationList: PaymentInformation[] =\n locationState.paymentMethodList\n .filter(paymentMethod =>\n Object.keys(PAYMENT.TERMS).includes(paymentMethod.term),\n )\n .map(paymentMethod => ({\n isFreeBucket: paymentMethod.method === 'none',\n termName: PAYMENT.TERMS[paymentMethod.term].displayLabel,\n contractAmount: paymentMethod.amount,\n order: PAYMENT.TERMS[paymentMethod.term].order,\n term: paymentMethod.term,\n }))\n\n const {\n isMobileCarrierError, isInvalidCardError,\n memberInfo, signboard, paymentMethodList, extendMetaData,\n } = locationState\n\n const {mail} = memberInfo\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n gender,\n birthdayYear, birthdayMonth, birthdayDay,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phoneMobile, phoneTel,\n password,\n agreedIdList,\n mailMagazineIdCheckedList,\n enrollmentReasonSelectedInfo,\n } = state\n const {\n isInputError,\n agreeCheckErrors,\n familyNameErrors, firstNameErrors,\n familyNameKanaErrors, firstNameKanaErrors,\n genderErrors,\n birthdayErrors, birthdayYearErrors, birthdayMonthErrors, birthdayDayErrors,\n postCodeErrors,\n addressPrefectureCodeErrors, addressCityErrors, addressStreetErrors, addressBuildingErrors,\n phoneMobileErrors, phoneTelErrors,\n passwordErrors,\n contractErrors,\n enrollmentReasonErrors,\n extendMetaDataErrors,\n } = errorState\n\n if (paymentInformationList.length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n const birthdayErrorMessages = [\n ...birthdayYearErrors,\n ...birthdayMonthErrors,\n ...birthdayDayErrors,\n ...birthdayErrors,\n ]\n\n return (\n <MembersPageTemplate hideFooterNavi={true}>\n {showAgreement ? (<div data-testid={'members-agreement-block'}>\n <MembersAgreement\n memberAgreementRepo={props.memberAgreementRepo}\n signboard={signboard}\n onAgreeClick={handleAgree}\n onDisagreeClick={handleAgree}\n />\n </div>) : (<div data-testid={'members-signup-input-block'}>\n <PageTitle>{`${signboard.signupName} 新規登録情報入力`}</PageTitle>\n\n <InputErrorSummary display={isInputError || isInvalidCardError}/>\n <ErrorSummary\n display={!isInputError && isMobileCarrierError}\n headline={'キャリア決済に失敗しました。'}\n detail={\n '入力項目をご確認の上、再実施いただくか、他の決済方法をご利用ください。\\n また、何度もこのメッセージが表示される場合には、各キャリアへ問い合わせをお願いします。'\n }\n />\n\n <StepGuide activity={'signup'} current={'enter'}/>\n\n <PIMStack alignItems={'center'} spacing={'16px'}>\n <RegisterOrganizationContentBlock\n signboard={signboard}\n title={t('新規登録情報入力.入会バケット情報.見出し')}\n paymentInformationList={paymentInformationList}\n />\n\n <AgreementCheckBoxContentBlock\n agreedIdList={agreedIdList}\n agreeCheckErrors={agreeCheckErrors}\n onClick={handleAgreementButtonClick}\n />\n\n <PIMCard\n headerProps={{title: t('新規登録情報入力.基本情報入力.見出し')}}\n testId={'block-input-basic-information'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n >\n <MBContentSubTitleTypography>\n {t('新規登録情報入力.基本情報入力.説明')}\n </MBContentSubTitleTypography>\n\n <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>\n メールアドレス\n </MBContentSubTitleTypography>\n <MBContentBodyTypography>\n {mail}\n </MBContentBodyTypography>\n </PIMStack>\n\n <MemberNameInputs\n memberName={{familyName, firstName, familyNameKana, firstNameKana}}\n memberNameErrors={\n {familyNameErrors, firstNameErrors, familyNameKanaErrors, firstNameKanaErrors}\n }\n onMemberNameChange={(memberName): void =>\n setState(prevState => ({\n ...prevState,\n ...memberName,\n }),\n )}\n />\n\n <GenderInput\n inputGender={gender}\n genderErrors={genderErrors}\n onChange={(inputGender): void =>\n setState(prevState => ({\n ...prevState,\n gender: inputGender,\n }),\n )}\n />\n\n <PIMStack spacing={'10px'} testId={'block-input-birthday-info'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <MBContentSubTitleTypography>生年月日</MBContentSubTitleTypography>\n <MBRequiredBadge/>\n </PIMStack>\n <PIMStack direction={'row'} alignItems={'center'}>\n <MBMemberSelect\n name=\"birthdayYear\"\n autoComplete=\"bday-year\"\n value={birthdayYear || ''}\n hasError={birthdayYearErrors.length > 0 || birthdayErrors.length > 0}\n onFocus={(e: React.FocusEvent<HTMLSelectElement>): void => {\n set20yearsOld(e)\n }}\n onChange={\n (e: React.ChangeEvent<HTMLSelectElement>): void => handleChangeSelect(e)\n }\n width={'26%'}\n id=\"year\">\n <option value=\"\" hidden disabled>年</option>\n {CALENDAR.YEARS.map((year, i) => (\n <option key={i} value={year || ''}>{year}</option>\n ))}\n </MBMemberSelect>\n <Spacer mr={'5px'}>\n <label htmlFor=\"year\" className=\"year-label\">年</label>\n </Spacer>\n <MBMemberSelect\n name=\"birthdayMonth\"\n autoComplete=\"bday-month\"\n value={birthdayMonth || ''}\n hasError={birthdayMonthErrors.length > 0 || birthdayErrors.length > 0}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>): void => {\n handleChangeSelect(e)\n }}\n width={'20%'}\n id=\"month\">\n <option value=\"\" hidden disabled>月</option>\n {CALENDAR.MONTHS.map((month, i) => (\n <option key={i} value={month || ''}>{month}</option>\n ))}\n </MBMemberSelect>\n <Spacer mr={'5px'}>\n <label htmlFor=\"month\" className=\"month-label\">月</label>\n </Spacer>\n <MBMemberSelect\n name=\"birthdayDay\"\n autoComplete=\"bday-day\"\n value={birthdayDay || ''}\n hasError={birthdayDayErrors.length > 0 || birthdayErrors.length > 0}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>): void => {\n handleChangeSelect(e)\n }}\n width={'20%'}\n id=\"day\">\n <option value=\"\" hidden disabled>日</option>\n {CALENDAR.DAYS.map((day, i) => (\n <option key={i} value={day || ''}>{day}</option>\n ))}\n </MBMemberSelect>\n <label htmlFor=\"day\" className=\"day-label\">日</label>\n </PIMStack>\n {birthdayErrorMessages.length > 0 && (\n <PIMWarningMessages messages={birthdayErrorMessages}/>\n )}\n </PIMStack>\n </PIMStack>\n </PIMCard>\n\n <PIMCard\n headerProps={{title: t('新規登録情報入力.連絡先入力.見出し')}}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <MBContentSubTitleTypography>\n {t('新規登録情報入力.連絡先入力.説明')}\n </MBContentSubTitleTypography>\n\n <ContactAddressInputContents\n activity={'signup'}\n searchPostCode={props.searchPostCode}\n contactAddress={{\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n phoneMobile,\n phoneTel,\n }}\n contactAddressErrors={{\n postCodeErrors,\n addressPrefectureCodeErrors,\n addressCityErrors,\n addressStreetErrors,\n addressBuildingErrors,\n phoneMobileErrors,\n phoneTelErrors,\n }}\n onChange={(address): void => {\n setState((prevState) => {\n return {\n ...prevState,\n postCode: address.postCode,\n addressPrefectureCode: address.addressPrefectureCode ?? '',\n addressCity: address.addressCity ?? '',\n addressStreet: address.addressStreet ?? '',\n addressBuilding: address.addressBuilding ?? '',\n phoneMobile: address.phoneMobile ?? '',\n phoneTel: address.phoneTel ?? '',\n }\n })\n }}\n />\n </PIMStack>\n </PIMCard>\n\n {(extendMetaData.length > 0 && extendMetaDataInputState !== undefined) &&\n <ExtendMetaDataInputBlock\n extendMetaData={extendMetaData}\n extendMetaDataInputState={extendMetaDataInputState}\n setExtendMetaDataInputState={\n (inputInfo): void => setExtendMetaDataInputState(inputInfo)\n }\n errorMessages={extendMetaDataErrors}\n />\n }\n\n <PasswordInputContent\n title={t('新規登録情報入力.パスワード入力.見出し')}\n topMessage={t('新規登録情報入力.パスワード入力.説明')}\n showRequiredBadge={true}\n password={password}\n onChange={handlePasswordInputChange}\n passwordErrors={passwordErrors}\n defaultShowPasswordChecked={showPasswordChecked}\n onCheckboxChange={(checked: boolean): void => {\n setShowPasswordChecked(checked)\n }}\n />\n\n {(signboard.mailMagazineList.length > 0) && (\n <MailMagazineSelectContentBlock\n data-testid={'block-mail-magazine'}\n title={t('新規登録情報入力.メルマガ選択.見出し')}\n topMessage={t('新規登録情報入力.メルマガ選択.説明')}\n note={t('新規登録情報入力.メルマガ選択.補足')}\n mailMagazineList={signboard.mailMagazineList}\n mailMagazineIdCheckedList={mailMagazineIdCheckedList}\n onChange={(mailMagazineIdCheckedList: number[]): void => {\n setState((prevState) => {\n return {\n ...prevState,\n mailMagazineIdCheckedList: mailMagazineIdCheckedList,\n }\n })\n }}\n />\n )}\n\n <EnrollmentReasonSelectContentBlock\n enrollmentReasonInfoList={signboard.mainService.enrollmentReasonList}\n enrollmentReasonSelectedInfo={enrollmentReasonSelectedInfo}\n onChange={(enrollmentReasonSelectedInfo): void => {\n setState(prevState => ({\n ...prevState,\n enrollmentReasonSelectedInfo: enrollmentReasonSelectedInfo,\n }))\n }}\n errorMessages={enrollmentReasonErrors}\n />\n\n {!isFreeBucket(paymentMethodList) && (<>\n <SelectContractTermContents\n paymentMethodList={paymentMethodList}\n paymentInformationList={paymentInformationList}\n contractInputInfoStateTerm={contractInputInfoState.term}\n onChange={(changeSelectedTerm: ContractTerm): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n term: changeSelectedTerm,\n method: undefined,\n amount: 0,\n }\n })\n }}\n errorMessage={contractErrors}\n />\n\n <SignupSelectPaymentMethodContents\n paymentMethodList={paymentMethodList}\n contractInputInfoState={contractInputInfoState}\n onChangeSelectedMethod={(changeSelectedMethod: ContractMethod): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n method: changeSelectedMethod,\n amount: findAmountByTermAndMethod(\n paymentMethodList, prevState.term, changeSelectedMethod,\n ),\n }\n })\n }}\n onChangeInputDetailInfo={(changeInputDetailInfo: PaymentInputDetail): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n creditCard: changeInputDetailInfo.creditCard,\n mobileCarrier: changeInputDetailInfo.mobileCarrier,\n convenienceStore: changeInputDetailInfo.convenienceStore,\n }\n })\n }}\n errorMessages={{\n ...errorState.contractErrors,\n creditCardTypeErrors: [],\n errorMyCreditCardId: '',\n myCreditCardSecurityCodeErrors: [],\n }}\n />\n </>)}\n\n </PIMStack>\n\n <p className=\"text-em_01\">上記の内容に間違いがなければ<br/>『登録情報の確認に進む』ボタンを押してください。</p>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-registration-information-button'}\n disabled={isSubmitButtonDisabled}\n onClick={(e: React.MouseEvent<HTMLButtonElement>): void => {\n const eventTarget = e.target as HTMLElement\n eventTarget.blur()\n goToMembersSignupInputConfirmPage()\n }}\n >\n 登録情報の確認に進む\n </PIMSubmitButton>\n </PIMPageActions>\n </div>)}\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (\n locationState: {\n memberInfo: MemberInfoForInputPage,\n signboard: Signboard\n paymentMethodList: PaymentMethod[]\n }): boolean => {\n if (!locationState?.memberInfo?.mail) {\n return true\n }\n if (!locationState?.memberInfo?.invitationId) {\n return true\n }\n if (!locationState?.signboard?.signupKey) {\n return true\n }\n if (!locationState?.signboard?.logoImgUrl) {\n return true\n }\n if (!locationState?.signboard?.signupName) {\n return true\n }\n if (!locationState?.signboard?.mailMagazineList) {\n return true\n }\n // noinspection RedundantIfStatementJS\n if (!locationState?.paymentMethodList) {\n return true\n }\n return false\n}\n\nconst getDefaultEnrollmentReasonSelectedInfo = (\n mainService: Optional<BucketHeader>,\n): Optional<EnrollmentReasonSelectedInfo> => {\n if (\n !mainService\n || !mainService.enrollmentReasonList\n || mainService.enrollmentReasonList.length === 0\n ) {\n return undefined\n }\n\n return {bucketId: mainService.id, enrollmentReasonId: undefined}\n}\n\nconst getDefaultExtendMetaDataInputInfo = (\n extendMetaData?: ExtendMetaData[],\n): Optional<ExtendMetaDataInputInfo> => {\n if (extendMetaData === undefined || extendMetaData.length === 0) {\n return undefined\n }\n\n const defaultInputInfo: ExtendMetaDataInputInfo = {}\n extendMetaData.map(block => {\n block.items.map(item => {\n switch (item.type) {\n case 'singleSelect':\n defaultInputInfo[item.id] = item.selected ?? undefined\n break\n case 'singleText':\n defaultInputInfo[item.id] = item.value ?? undefined\n break\n default:\n break\n }\n })\n })\n return defaultInputInfo\n}\n","import {EnrollmentReasonValidateParam, validateAddressBuilding, validateAddressCity, validateAddressPrefectureCode, validateAddressStreet, validateAgreeCheck, validateBirthdayCombination, validateBirthdayDay, validateBirthdayMonth, validateBirthdayYear, validateEnrollmentReason, validateExtendMetaData, ValidateExtendMetaDataParam, validateFamilyName, validateFamilyNameKana, validateFirstName, validateFirstNameKana, validateGender, validatePassword, validatePhoneMobile, validatePhoneTel, validatePostCode} from './MembersValidation'\nimport {validateConvenienceStore, validateCreditCardExpireMonth, validateCreditCardExpireYear, validateCreditCardHolderName, validateCreditCardNumber, validateCreditCardSecurityCode, validateFutureExpireDate, validateMobileCarrier, validatePaymentInputMethod, validatePaymentInputTerm} from './PaymentInputInfoValidation'\nimport {ContractMethod, ContractTerm, ConvenienceStoreKey, CreditCardType, MobileCarrierKey} from '../../Props/ContractInputInfo'\nimport {Optional} from '../../../Common/TypeHelper'\n\nexport type ValidationSignupInput = {\n agreedIdList: number[]\n familyName: string\n firstName: string\n familyNameKana: string\n firstNameKana: string\n gender: string\n birthdayYear: string\n birthdayMonth: string\n birthdayDay: string\n postCode: string\n addressPrefectureCode: string\n addressCity: string\n addressStreet: string\n addressBuilding: string\n phoneMobile: string\n phoneTel: string\n password: string\n paymentInputTerm: ContractTerm\n paymentInputMethod: Optional<ContractMethod>\n creditCardType: CreditCardType\n creditCardNumber: string\n creditCardExpireMonth: string\n creditCardExpireYear: string\n creditCardHolderName: string\n creditCardSecurityCode: string\n convenienceStore: ConvenienceStoreKey\n mobileCarrier: MobileCarrierKey\n enrollmentReasonValidateParam: EnrollmentReasonValidateParam\n extendMetaDataParam: ValidateExtendMetaDataParam\n}\n\nexport type ExtendMetaDataErrors = { [key: string]: string[] }\n\ntype CombinationResult = {\n birthdayCombination: string[]\n creditCardFutureExpireDate: string[]\n extendMetaData: Optional<ExtendMetaDataErrors>\n}\nexport type ValidationSignupResultDetail = {\n [K in keyof Omit<ValidationSignupInput, 'extendMetaDataParam'>]: string[]\n} & CombinationResult\n\nexport type ValidationSignupResult = {\n hasError: boolean\n errors: ValidationSignupResultDetail\n}\n\nexport const validateMemberSignupInput = (\n input: ValidationSignupInput,\n): ValidationSignupResult => {\n\n const details: ValidationSignupResultDetail = {\n agreedIdList: validateAgreeCheck(input.agreedIdList),\n familyName: validateFamilyName(input.familyName),\n firstName: validateFirstName(input.firstName),\n familyNameKana: validateFamilyNameKana(input.familyNameKana),\n firstNameKana: validateFirstNameKana(input.firstNameKana),\n gender: validateGender(input.gender),\n birthdayYear: validateBirthdayYear(input.birthdayYear),\n birthdayMonth: validateBirthdayMonth(input.birthdayMonth),\n birthdayDay: validateBirthdayDay(input.birthdayDay),\n birthdayCombination: validateBirthdayCombination(\n input.birthdayYear, input.birthdayMonth, input.birthdayDay),\n postCode: validatePostCode(input.postCode),\n addressPrefectureCode: validateAddressPrefectureCode(input.addressPrefectureCode),\n addressCity: validateAddressCity(input.addressCity),\n addressStreet: validateAddressStreet(input.addressStreet),\n addressBuilding: validateAddressBuilding(input.addressBuilding),\n phoneMobile: validatePhoneMobile(input.phoneMobile),\n phoneTel: validatePhoneTel(input.phoneTel),\n password: validatePassword(input.password),\n paymentInputTerm: validatePaymentInputTerm(input.paymentInputTerm),\n paymentInputMethod:\n validatePaymentInputMethod(input.paymentInputMethod),\n creditCardType: [],\n creditCardNumber: validateCreditCardNumber(\n input.paymentInputMethod, input.creditCardType, input.creditCardNumber),\n creditCardExpireMonth: validateCreditCardExpireMonth(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireMonth),\n creditCardExpireYear: validateCreditCardExpireYear(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireYear),\n creditCardFutureExpireDate: validateFutureExpireDate(\n input.paymentInputMethod,\n input.creditCardType,\n input.creditCardExpireMonth,\n input.creditCardExpireYear,\n ),\n creditCardHolderName: validateCreditCardHolderName(\n input.paymentInputMethod, input.creditCardType, input.creditCardHolderName),\n creditCardSecurityCode: validateCreditCardSecurityCode(\n input.paymentInputMethod, input.creditCardType, input.creditCardSecurityCode),\n convenienceStore: validateConvenienceStore(input.paymentInputMethod, input.convenienceStore),\n mobileCarrier: validateMobileCarrier(input.paymentInputMethod, input.mobileCarrier),\n enrollmentReasonValidateParam: validateEnrollmentReason(input.enrollmentReasonValidateParam),\n extendMetaData: validateExtendMetaData(input.extendMetaDataParam),\n }\n\n const {extendMetaData, ...rest} = details\n\n const hasError =\n Object.values(rest)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n const hasErrorExtendMetaData = extendMetaData !== undefined\n ? Object.values(extendMetaData)\n .map(error => error.length)\n .some(length => length > 0)\n : false\n\n return {\n hasError: hasError || hasErrorExtendMetaData,\n errors: details,\n }\n}\n","import {validatePassword} from './MembersValidation'\n\n\nexport type ValidationPasswordsInput = {\n password: string\n}\n\nexport type ValidationPasswordsInputResultDetail = {\n [K in keyof ValidationPasswordsInput]: string[]\n}\n\nexport type ValidationPasswordsResult = {\n hasError: boolean\n errors: ValidationPasswordsInputResultDetail\n}\n\nexport const validateMemberPasswordsInput = (\n input: ValidationPasswordsInput,\n): ValidationPasswordsResult => {\n\n const details: ValidationPasswordsInputResultDetail = {\n password: validatePassword(input.password),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","import React, {useCallback, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {\n validateMemberPasswordsInput,\n ValidationPasswordsInput,\n} from '../../../Utils/Validations/ValidateMembersPasswordInput'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {animateScroll} from 'react-scroll'\nimport {Logout} from '../../../../Common/Components/Logout'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {membersMsalInstance} from '../../../Auth/members-msa'\nimport {PasswordInputContent} from '../../Components/InputContentBlocks/PasswordInputContent'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {useAsync} from 'react-use'\nimport {useMsal} from '@azure/msal-react'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\n\ntype MembersEditPasswordPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype State = {\n password: string\n}\n\ntype ErrorState = {\n isInputError: boolean\n passwordErrors: string[]\n}\n\nexport const MembersEditPasswordPage: React.VFC<MembersEditPasswordPageProps> = (props) => {\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n const [state, setState] = useState<State>({\n password: '',\n })\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n passwordErrors: [],\n })\n const [isEditPasswordSucceeded, setIsEditPasswordSucceeded] = useState<boolean>(false)\n\n const [showPasswordChecked, setShowPasswordChecked] = useState(false)\n\n const throwMBMemberError = useMBMemberError()\n\n const {inProgress} = useMsal()\n\n const handlePasswordInputChange = useCallback((password: string) => {\n setState({password: password})\n }, [])\n\n const goToAccountInformationPage = useCallback((): void => {\n props.navigator.goToAccountInformationPage()\n }, [props.navigator])\n\n const editPassword = useCallback(\n async (): Promise<void> => {\n setShowPasswordChecked(false)\n\n setProcessing(true)\n\n const inputForValidation: ValidationPasswordsInput = {\n ...state,\n password: state.password,\n }\n\n setState((prevState) => ({\n ...prevState,\n ...inputForValidation,\n }))\n\n const validationResult = validateMemberPasswordsInput(inputForValidation)\n\n if (validationResult.hasError) {\n setProcessing(false)\n setErrorState({\n isInputError: true,\n passwordErrors: validationResult.errors.password,\n })\n animateScroll.scrollToTop()\n return\n\n }\n\n try {\n const result = await props.memberRepo.putPassword(inputForValidation.password)\n switch (result.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(result.errorMessageList)\n animateScroll.scrollToTop()\n break\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n\n setIsEditPasswordSucceeded(true)\n }\n , [props.memberRepo, state])\n\n const result = useAsync(async () => {\n return await props.memberRepo.getSelf()\n })\n\n if (result.loading) {\n return null\n }\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n if (!result.value) {\n throw new MBMemberError('UnknownError')\n }\n if (!result.value.data.member) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(result.value.status)\n\n const {mail} = result.value.data.member\n const {password} = state\n const {isInputError, passwordErrors} = errorState\n\n return (\n <MembersPageTemplate>\n <PageTitle>パスワード変更</PageTitle>\n\n <InputErrorSummary display={isInputError}/>\n\n <Spacer mb={'16px'}>\n {/*iPhoneのパスワード更新のため*/}\n <input type={'hidden'} id={'email'} value={mail}/>\n <PIMStack alignItems={'center'}>\n <PasswordInputContent\n title={'パスワードの入力'}\n topMessage={'新しいパスワードを設定してください。'}\n showRequiredBadge={false}\n password={password}\n onChange={handlePasswordInputChange}\n passwordErrors={passwordErrors}\n defaultShowPasswordChecked={showPasswordChecked}\n onCheckboxChange={(checked: boolean): void => {\n setShowPasswordChecked(checked)\n }}\n />\n </PIMStack>\n </Spacer>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『パスワードを変更する』ボタンを押してください。\n </MessageForAction>\n\n <ErrorDisplay errors={errorMessages}/>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'change-the-password-button'}\n disabled={processing}\n onClick={(): void => {\n editPassword()\n }}\n >\n パスワードを変更する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountInformationPage}>\n 登録情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n {isEditPasswordSucceeded && <Logout\n msalInstance={membersMsalInstance}\n postLogoutRedirectUri=\"/account/information/password/update_complete\"\n throwMBError={throwMBMemberError}\n navigate={(): void => {\n props.navigator.goToEditPasswordCompletePage()\n }}\n inProgress={inProgress}/>}\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMPrimaryButton} from '../../Atoms/Buttons/Bases/PIMPrimaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMCardActions} from '../../Atoms/Layouts/PIMCardActions'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport function MembersEditMailMagazineInfoPage(props: Props): Nullable<JSX.Element> {\n const {bucketKey} = useParams<{ bucketKey: string }>()\n\n const resultBucketInfo = useAsync(async () => {\n return await props.memberRepo.getBucketInfoByBucketKey(bucketKey)\n })\n const resultMemberBucketOptions = useAsync(async () => {\n return await props.memberRepo.getMemberBucketOptionsByBucketKey(bucketKey)\n })\n\n if (resultBucketInfo.loading) {\n return null\n }\n\n if (resultBucketInfo.error) {\n throw new MBMemberError(resultBucketInfo.error.message)\n }\n\n if (!resultBucketInfo.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultBucketInfo.value.status)\n\n if (!resultBucketInfo.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n if (resultMemberBucketOptions.loading) {\n return null\n }\n\n if (resultMemberBucketOptions.error) {\n throw new MBMemberError(resultMemberBucketOptions.error.message)\n }\n\n if (!resultMemberBucketOptions.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultMemberBucketOptions.value.status)\n\n if (!resultMemberBucketOptions.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n if (resultBucketInfo.value.data.mailMagazineList.length === 0) {\n throw new MBMemberError('NotFound')\n }\n\n const {mailMagazineList} = resultBucketInfo.value.data\n const filteredSubscribeMailMagazineIdList =\n mailMagazineList.filter((item) =>\n resultMemberBucketOptions.value.data?.subscribeMailMagazineIdList.includes(item.id))\n\n function goToEditMailMagazineInputPage(): void {\n props.navigator.goToEditMailMagazineInputPage(bucketKey)\n }\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={{...resultBucketInfo.value.data}}\n >\n <PageTitle>メルマガ情報</PageTitle>\n\n <ContentBlock data-testid=\"block-mailMagazine-info\">\n <MBContentBodyDivider/>\n\n <Spacer my={'18px'}>\n <MBContentSubTitleTypography>メルマガ</MBContentSubTitleTypography>\n {\n filteredSubscribeMailMagazineIdList.length === 0\n ? (\n <Spacer mt={'10px'}>\n <p className=\"\">メルマガのご希望はありません</p>\n </Spacer>\n )\n : (\n <Spacer mt={'10px'}>\n <ul className=\"list-disc_01 fts15 mb_0\">\n {filteredSubscribeMailMagazineIdList.map(item =>\n <li key={item.id}>{item.name}</li>,\n )}\n </ul>\n </Spacer>\n )\n }\n </Spacer>\n\n <MBContentBodyDivider/>\n\n <Spacer mt={'25px'}>\n <PIMCardActions>\n <PIMPrimaryButton onClick={goToEditMailMagazineInputPage}>\n メルマガ情報変更\n </PIMPrimaryButton>\n </PIMCardActions>\n </Spacer>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${resultBucketInfo.value.data.fcMyPageInfo.name ?? ''}に移動する`}\n url={resultBucketInfo.value.data.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback} from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\n\ntype MembersEditPasswordCompletePageProps = {\n navigator: NavigatorForMemberPage\n}\n\nexport const MembersEditPasswordCompletePage: React.VFC<MembersEditPasswordCompletePageProps> = (\n props,\n) => {\n const goToAccountTopPage = useCallback(() => {\n props.navigator.goToAccountTopPage()\n }, [props.navigator])\n\n return (\n <MembersPageTemplate>\n <PageTitle>パスワード変更完了</PageTitle>\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>パスワード変更完了</ContentTitle>\n <ContentTopMessage>\n パスワードの変更が完了し、ログアウトしました。<br/>\n 新しいパスワードでログインしてください。\n </ContentTopMessage>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n ログインページに移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {Nullable, Optional} from '../../../../Common/TypeHelper'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MailMagazineSelectContentBlock} from '../../Components/InputContentBlocks/MailMagazineSelectContentBlock'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MailMagazine} from '../../../DTO/MailMagazineDTO'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {useTranslation} from 'react-i18next'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype LocationStateForMemberEditMailMagazinePage = {\n bucketInfo: BucketInfo\n subscribeMailMagazineIdList: number[]\n}\n\nexport function MembersEditMailMagazineInputPage(props: Props): Nullable<JSX.Element> {\n const {t} = useTranslation('member')\n const {bucketKey} = useParams<{ bucketKey: string }>()\n const location = useLocation<LocationStateForMemberEditMailMagazinePage>()\n const locationState: LocationStateForMemberEditMailMagazinePage = location.state\n\n const [bucketInfo, setBucketInfo] = useState<Optional<BucketInfo>>(locationState?.bucketInfo)\n const [subscribeMailMagazineIdList, setSubscribeMailMagazineIdList] =\n useState<number[]>(locationState?.subscribeMailMagazineIdList || [])\n\n const throwMBMemberError = useMBMemberError()\n\n const resultBucketInfo = useAsync(async () => {\n return await props.memberRepo.getBucketInfoByBucketKey(bucketKey)\n })\n const resultMemberBucketOptions = useAsync(async () => {\n return await props.memberRepo.getMemberBucketOptionsByBucketKey(bucketKey)\n })\n\n useEffect(() => {\n if (locationState) {\n return\n }\n if (!resultBucketInfo.value) {\n return\n }\n if (!resultBucketInfo.value.data) {\n return\n }\n if (!resultMemberBucketOptions.value) {\n return\n }\n if (!resultMemberBucketOptions.value.data) {\n return\n }\n const _subscribeMailMagazineIdList: number[] =\n resultMemberBucketOptions.value.data.subscribeMailMagazineIdList\n\n\n const filteredSubscribeMailMagazineIdList =\n resultBucketInfo.value.data.mailMagazineList\n .filter((item: MailMagazine) => _subscribeMailMagazineIdList.includes(item.id))\n .map((item: MailMagazine) => item.id)\n\n setBucketInfo({...resultBucketInfo.value.data})\n if (!locationState) {\n setSubscribeMailMagazineIdList(filteredSubscribeMailMagazineIdList)\n }\n\n }, [resultBucketInfo.value, resultMemberBucketOptions.value, locationState])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n if (!locationState) {\n if (resultBucketInfo.loading) {\n return null\n }\n\n if (resultBucketInfo.error) {\n throw new MBMemberError(resultBucketInfo.error.message)\n }\n\n if (!resultBucketInfo.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultBucketInfo.value.status)\n\n if (!resultBucketInfo.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n if (resultMemberBucketOptions.loading) {\n return null\n }\n\n if (resultMemberBucketOptions.error) {\n throw new MBMemberError(resultMemberBucketOptions.error.message)\n }\n\n if (!resultMemberBucketOptions.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultMemberBucketOptions.value.status)\n\n if (!resultMemberBucketOptions.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n if (resultBucketInfo.value.data.mailMagazineList.length === 0) {\n throw new MBMemberError('NotFound')\n }\n }\n\n function isInvalidLocationState(\n locationState: LocationStateForMemberEditMailMagazinePage,\n ): boolean {\n if (!locationState) {\n return false\n }\n if (!locationState.bucketInfo) {\n return true\n }\n if (!locationState.subscribeMailMagazineIdList) {\n return true\n }\n // noinspection RedundantIfStatementJS\n if (!locationState.bucketInfo.mailMagazineList ||\n locationState.bucketInfo.mailMagazineList.length === 0) {\n return true\n }\n return false\n }\n\n function goToEditMailMagazineConfirmPage(): void {\n if (!bucketInfo) {\n throwMBMemberError('SystemError')\n return\n }\n props.navigator.goToEditMailMagazineConfirmPage(\n bucketKey,\n bucketInfo,\n subscribeMailMagazineIdList,\n )\n }\n\n if (!bucketInfo) {\n return null\n }\n\n return (\n <MembersPageTemplate hideFooterNavi={true} bucketInfo={bucketInfo}>\n <PageTitle>メルマガ情報変更</PageTitle>\n\n <StepGuide activity={'edit'} current={'enter'}/>\n\n <Spacer mb={'16px'}>\n <PIMStack alignItems={'center'}>\n <MailMagazineSelectContentBlock\n title={t('メルマガ情報変更.メルマガ選択.見出し')}\n topMessage={t('メルマガ情報変更.メルマガ選択.説明')}\n note={t('メルマガ情報変更.メルマガ選択.補足')}\n mailMagazineList={bucketInfo.mailMagazineList}\n mailMagazineIdCheckedList={subscribeMailMagazineIdList}\n onChange={(checkedIdList: number[]): void => {\n setSubscribeMailMagazineIdList(checkedIdList)\n }}\n />\n </PIMStack>\n </Spacer>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『変更内容の確認に進む』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-changes-button'}\n onClick={(): void => {\n goToEditMailMagazineConfirmPage()\n }}\n >\n 変更内容の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton\n onClick={(): void => {\n props.navigator.goToEditMailMagazineInfoPage(bucketKey)\n }}\n >\n メルマガ情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","import {Nullable} from '../../../../Common/TypeHelper'\nimport React, {useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {MailMagazineConfirmContentBlock} from '../../Components/ConfirmContentBlocks/MailMagazineConfirmContentBlock'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype LocationStateForMemberEditMailMagazinePage = {\n bucketInfo: BucketInfo\n subscribeMailMagazineIdList: number[]\n}\n\nexport function MembersEditMailMagazineConfirmPage(props: Props): Nullable<JSX.Element> {\n const {bucketKey} = useParams<{ bucketKey: string }>()\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location = useLocation<LocationStateForMemberEditMailMagazinePage>()\n const locationState: LocationStateForMemberEditMailMagazinePage = location.state\n\n const throwMBMemberError = useMBMemberError()\n\n function isInvalidLocationState(\n locationState: LocationStateForMemberEditMailMagazinePage,\n ): boolean {\n if (!locationState) {\n return true\n }\n if (!locationState.bucketInfo) {\n return true\n }\n if (!locationState.subscribeMailMagazineIdList) {\n return true\n }\n if (!locationState.bucketInfo.mailMagazineList ||\n locationState.bucketInfo.mailMagazineList.length === 0) {\n return true\n }\n return false\n }\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {bucketInfo, subscribeMailMagazineIdList} = locationState\n\n async function goToEditMailMagazineCompletePage(): Promise<void> {\n setProcessing(true)\n try {\n const response =\n await props.memberRepo.putSubscribeMailMagazineIdList(\n bucketKey,\n subscribeMailMagazineIdList,\n )\n\n switch (response.status) {\n case CommonResponseStatus.Ok:\n props.navigator.goToEditMailMagazineCompletePage(bucketKey, bucketInfo)\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InvalidRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.NoAuthority:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>メルマガ情報変更確認</PageTitle>\n\n <StepGuide activity={'edit'} current={'confirm'}/>\n\n <MailMagazineConfirmContentBlock\n title={'メルマガ'}\n mailMagazineIdCheckedList={subscribeMailMagazineIdList}\n mailMagazineList={bucketInfo.mailMagazineList}\n />\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『確定する』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'determine-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToEditMailMagazineCompletePage()}\n >\n 確定する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => props.navigator.goBack()}>\n メルマガ情報変更に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","class MemberInvitationDTO {\n signupKey: string\n mail: string\n\n constructor(signupKey: string, mail: string) {\n this.signupKey = signupKey\n this.mail = mail\n }\n}\n\nexport default MemberInvitationDTO\n","import React from 'react'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MBMemberEMailInput} from '../../Atoms/MBMemberEMailInput'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {ContentNotes} from '../../Molecules/BaseContentBlocks/ContentNotes'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {ColumnFlexContainer} from '../../Atoms/Containers'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\n\ntype MailAddressFormProps = {\n title: string\n topMessage: React.ReactNode\n note: string[]\n logoImgUrl?: string\n inputLabel: string\n inputValue: string\n hasErrors: boolean\n errorMessages: string[]\n onMailAddressChange: (mailAddress: string) => void\n onMailAddressBlur: (mailAddress: string) => void\n}\nexport const MailAddressFormContent: React.VFC<MailAddressFormProps> = (props) => {\n return (\n <ContentBlock data-testid={'block-mail-address-input'}>\n <ContentTitle logoUrl={props.logoImgUrl}>{props.title}</ContentTitle>\n <ContentTopMessage>{props.topMessage}</ContentTopMessage>\n\n <Spacer mb={'18px'} mt={'18px'}>\n <MBContentBodyDivider/>\n </Spacer>\n\n <Spacer>\n <ColumnFlexContainer gap={'10px'}>\n <label className=\"mail-address-label\" htmlFor=\"email\">\n <MBContentSubTitleTypography>{props.inputLabel}</MBContentSubTitleTypography>\n </label>\n <MBMemberEMailInput\n name=\"email\"\n value={props.inputValue}\n id=\"email\"\n placeholder=\"\"\n hasError={props.hasErrors}\n onChange={(e): void =>\n props.onMailAddressChange(e.target.value)}\n onBlur={(e): void =>\n props.onMailAddressBlur(e.target.value.trim())}\n />\n </ColumnFlexContainer>\n\n <ErrorDisplay\n errors={props.errorMessages}\n />\n\n <Spacer mt={'32px'}>\n <ContentNotes notes={props.note}/>\n </Spacer>\n </Spacer>\n </ContentBlock>\n )\n}\n","import React, {useState} from 'react'\nimport {useParams} from 'react-router-dom'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberInvitationDTO from '../../../DTO/MemberInvitationDTO'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {SignboardDTO} from '../../../DTO/SignboardDTO'\nimport {validateMemberMailInput} from '../../../Utils/Validations/ValidateMembersMailInput'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {animateScroll} from 'react-scroll'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {MailAddressFormContent} from '../../Components/InputContentBlocks/MailAddressFormContent'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersInvitationProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype ErrorState = {\n hasErrors: boolean\n inputErrors: string[]\n errorMessages: string[]\n}\n\nexport const MembersInvitationPage: React.VFC<MembersInvitationProps> =\n (props): Nullable<JSX.Element> => {\n const {t} = useTranslation('member')\n const {signupKey} = useParams<{ signupKey: string }>()\n\n const [mail, setMail] = useState('')\n const [mailErrors, setMailErrors] = useState<ErrorState>({\n hasErrors: false,\n inputErrors: [],\n errorMessages: [],\n })\n const [processing, setProcessing] = useState<boolean>(false)\n\n const throwMBMemberError = useMBMemberError()\n\n const result = useAsync(async () => {\n return await props.memberRepo.getSignboardBySignupKey(signupKey)\n })\n\n if (result.loading) {\n return null\n }\n\n if (result.error) {\n throw new MBMemberError(result.error.message)\n }\n\n if (!result.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(result.value.status)\n\n\n const goToInvitationCompletePage = async (signboard: SignboardDTO): Promise<void> => {\n setProcessing(true)\n setMailErrors({\n hasErrors: false,\n inputErrors: [],\n errorMessages: [],\n })\n\n const _mail = mail.trim()\n setMail(_mail)\n\n const validationResult = validateMemberMailInput({mail: _mail})\n\n if (validationResult.hasError) {\n setMailErrors({\n hasErrors: validationResult.hasError,\n inputErrors: validationResult.errors.mail,\n errorMessages: [],\n })\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n\n try {\n const resultSendOneTimeUrlMail =\n await props.memberRepo.sendOneTimeUrlMail(new MemberInvitationDTO(signupKey, _mail))\n\n switch (resultSendOneTimeUrlMail.status) {\n case CommonResponseStatus.Created:\n props.navigator.goToMembersInvitationCompletePage({\n id: signboard?.id || null,\n signupKey: signboard?.signupKey || '',\n shopId: signboard?.shopId || '',\n logoImgUrl: signboard?.logoImgUrl || '',\n signupReturnPageInfo: {\n url: signboard?.signupReturnPageInfo.url || '',\n name: signboard?.signupReturnPageInfo.name || '',\n },\n signupName: signboard?.signupName || '',\n mailMagazineList: signboard?.mailMagazineList || [],\n mainService: signboard.mainService,\n freeServices: signboard.freeServices,\n })\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setMailErrors({\n hasErrors: true,\n inputErrors: [],\n errorMessages: resultSendOneTimeUrlMail.errorMessageList,\n })\n break\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n if (!result.value.data) {\n throw new MBMemberError('SystemError')\n }\n\n const signboard = result.value.data\n\n return (\n <MembersPageTemplate>\n <PageTitle>{`${signboard?.signupName} 新規登録`}</PageTitle>\n\n <InputErrorSummary display={mailErrors.hasErrors}/>\n\n <MailAddressFormContent\n title={'本人確認メールアドレス入力'}\n topMessage={\n '新規登録をされる場合、メールによる本人確認が必要です。\\nご入力いただいたメールアドレス宛に新規登録ページのURLをお送りします。'}\n note={[\n 'ご登録は1人1アカウントとさせていただきます。',\n '1アカウントの複数人での利用、1人で複数アカウントの作成はご遠慮ください。',\n '既に登録されているメールアドレスでは利用登録できません。',\n t('新規登録.本人確認メールアドレス入力.注記 メール受信設定'),\n ]}\n logoImgUrl={signboard?.logoImgUrl}\n inputLabel={'メールアドレス'}\n inputValue={mail}\n hasErrors={mailErrors.hasErrors}\n errorMessages={[...mailErrors.inputErrors, ...mailErrors.errorMessages]}\n onMailAddressChange={((mailAddress): void => setMail(mailAddress))}\n onMailAddressBlur={((mailAddress): void => setMail(mailAddress))}\n />\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n 『送信する』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'send-button'}\n disabled={processing}\n onClick={(): void => {\n goToInvitationCompletePage(signboard)\n }}\n >\n 送信する\n </PIMSubmitButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n }\n","import React, {useCallback} from 'react'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {MBContentBodyItemWarningMessageTypography} from '../../Atoms/Typographies'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {LinkIconText} from '../../Molecules/LinkIconText'\nimport dayjs from 'dayjs'\n\n\ntype CompleteMessageContentProps = {\n title: string\n topMessage: string\n nextContractStartDate?: string\n onCvsSelectLinkClick?: () => void\n}\n\nexport const CompleteMessageContent: React.VFC<CompleteMessageContentProps> = (\n {\n title,\n topMessage,\n nextContractStartDate,\n onCvsSelectLinkClick,\n },\n) => {\n const handleCvsSelectLinkClick = useCallback((): void => {\n if (onCvsSelectLinkClick) onCvsSelectLinkClick()\n }, [onCvsSelectLinkClick])\n\n return (\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>{`${title}変更完了`}</ContentTitle>\n <ContentTopMessage>\n {`${topMessage}の変更が完了しました。`}<br/>\n {'ご登録されているメールアドレスに完了通知を送信しました。'}\n </ContentTopMessage>\n\n {isLastMonthOfNextContractStartDate(nextContractStartDate) &&\n <Spacer my={'10px'}>\n <PIMStack spacing={'15px'} testId={'cvs-select-message'}>\n <MBContentBodyItemWarningMessageTypography>\n 引き続き、以下のLinkよりお支払いのコンビニを選択し、支払い番号を払い出してください。\n </MBContentBodyItemWarningMessageTypography>\n <LinkIconText onClick={handleCvsSelectLinkClick}>\n お支払いのコンビニを選択する\n </LinkIconText>\n </PIMStack>\n </Spacer>\n }\n </ContentBlock>\n )\n}\n\nconst isLastMonthOfNextContractStartDate = (nextContractStartDate_YYYYMMDD?: string): boolean => {\n if (!nextContractStartDate_YYYYMMDD) return false\n\n const format_YYYYMM = 'YYYY/MM'\n\n const now = dayjs().format(format_YYYYMM)\n\n const lastMonthOfNextStartDate = dayjs(nextContractStartDate_YYYYMMDD).subtract(1, 'month')\n const nextStartDate = dayjs(lastMonthOfNextStartDate).format(format_YYYYMM)\n\n return now === nextStartDate\n}\n","import {Nullable} from '../../../../Common/TypeHelper'\nimport React from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {CompleteMessageContent} from '../../Components/CompleteContentBlocks/CompleteMessageContent'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\n\nexport function MembersEditMailMagazineCompletePage(): Nullable<JSX.Element> {\n const location = useLocation<BucketInfo>()\n const locationState: BucketInfo = location.state\n\n function isInvalidLocationState(\n locationState: BucketInfo,\n ): boolean {\n if (!locationState) {\n return true\n }\n if (!locationState.fcMyPageInfo.url) {\n return true\n }\n // noinspection RedundantIfStatementJS\n if (!locationState.mailMagazineList || locationState.mailMagazineList.length === 0) {\n return true\n }\n return false\n }\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={locationState}\n >\n <PageTitle>メルマガ情報変更完了</PageTitle>\n\n <StepGuide activity={'edit'} current={'complete'}/>\n\n <CompleteMessageContent title={'メルマガ情報'} topMessage={'メルマガ'}/>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${locationState.fcMyPageInfo.name ?? ''}に移動する`}\n url={locationState.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n\n </MembersPageTemplate>\n )\n}\n","import {validateBucketLeaveReason} from './MembersValidation'\n\nexport type ValidationLeaveBucketInput = {\n bucketLeaveReason: string\n}\n\nexport type ValidationLeaveBucketResultDetail = {\n [K in keyof ValidationLeaveBucketInput]: string[]\n}\n\nexport type ValidationLeaveBucketResult = {\n hasError: boolean\n errors: ValidationLeaveBucketResultDetail\n}\n\nexport const validateMemberLeaveBucketInput = (\n input: ValidationLeaveBucketInput,\n): ValidationLeaveBucketResult => {\n\n const details: ValidationLeaveBucketResultDetail = {\n bucketLeaveReason: validateBucketLeaveReason(input.bucketLeaveReason),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","export namespace Contract {\n export const SOURCE_TYPE = {\n AccountDeleted: 'accountDeleted',\n AutoCancelContract: 'autoCancelContract',\n ChangeContract: 'changeContract',\n ContractAutoPayment: 'contractAutoPayment',\n ContractManualPayment: 'contractManualPayment',\n ContractWithoutPayment: 'contractWithoutPayment',\n ExpiredPaymentLimit: 'expiredPaymentLimit',\n FailedContractAutoPayment: 'failedContractAutoPayment',\n FailedContractAutoPaymentDetected: 'failedContractAutoPaymentDetected',\n RequestForCancelContract: 'requestForCancelContract',\n StartManualPayment: 'startManualPayment',\n } as const\n\n export type SourceTypeType = typeof SOURCE_TYPE[keyof typeof SOURCE_TYPE]\n\n export const STATUS = {\n Ready: 'ready',\n Expired: 'expired',\n Initialized: 'initialized',\n Reserved: 'reserved',\n Completed: 'completed',\n Canceled: 'canceled',\n Error: 'error',\n } as const\n\n export type StatusType = typeof STATUS[keyof typeof STATUS]\n}\n","import React from 'react'\n\ntype Props = JSX.IntrinsicElements['textarea'] & {\n hasError: boolean\n}\nexport const MBMemberTextArea: React.VFC<Props> = (props) => {\n const {hasError, ...rest} = props\n return (\n <textarea\n {...rest}\n className={(hasError) ? `${props.className} _error` : props.className}\n >\n {props.children}\n </textarea>\n )\n}\n","import React from 'react'\nimport {Spacer} from '../../../Common/Components/Spacer'\nimport {MBContentSubTitleTypography} from '../Atoms/Typographies'\nimport {BucketInfo} from '../../DTO/BucketInfoDTO'\nimport {MembersPageTemplate} from '../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../Molecules/BaseContentBlocks/ContentTitle'\nimport {ExternalLinkButton} from '../Atoms/Buttons'\nimport {PIMPageActions} from '../Atoms/Layouts/PIMPageActions'\n\ntype LeavingMessageContentProps = {\n pageTitle: string\n bucketInfo?: Omit<BucketInfo, 'mailMagazineList'>\n}\n\nexport const LeavingMessageContent: React.VFC<LeavingMessageContentProps> = (props) => {\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={props.bucketInfo}\n >\n <PageTitle>{props.pageTitle}</PageTitle>\n\n <ContentBlock>\n <ContentTitle noMarginBottom={true}>退会手続き済み</ContentTitle>\n <Spacer mt={'24px'} mb={'16px'}>\n <MBContentSubTitleTypography>\n 退会手続き済みです。<br/>\n 退会の取り消しはできません。<br/>\n 現在の契約が満了後、再度入会のお手続きをしてください。\n </MBContentSubTitleTypography>\n </Spacer>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${props.bucketInfo?.fcMyPageInfo?.name ?? ''}に移動する`}\n url={props.bucketInfo?.fcMyPageInfo?.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {ErrorSummary} from './ErrorsAndAlert/ErrorSummary/ErrorSummary'\n\nexport const ProcessingErrorMessage: React.VFC = () => {\n return (\n <ErrorSummary\n testId={'processing-error-message'}\n display={true}\n headline={'現在システムメンテナンス中です。'}\n detail={\n '毎月1日 AM0:00 〜 AM5:00 はシステムメンテナンスのため、' +\n '「契約内容の閲覧」及び「お支払いに関する情報変更」並びに「退会に関する操作」はできません。\\n' +\n 'メンテナンス終了後に実施してください。'\n }\n />\n )\n}\n","import React from 'react'\nimport {\n MembersPageTemplate,\n MembersPageTemplateProps,\n} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ProcessingErrorMessage} from '../../Molecules/ProcessingErrorMessage'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\n\ntype ProcessingErrorPageProps = Pick<MembersPageTemplateProps, 'bucketInfo'> & {\n pageTitle: string\n buttonName?: string\n url?: string\n}\n\nexport const ProcessingErrorPage: React.VFC<ProcessingErrorPageProps> = (props) => {\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={props.bucketInfo}\n >\n <PageTitle>{props.pageTitle}</PageTitle>\n <ProcessingErrorMessage/>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${props.buttonName ?? ''}に移動する`}\n url={props.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {MembersPageTemplate, MembersPageTemplateProps} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {Spacer} from '../../../../Common/Components/Spacer'\n\ntype MembersMobileCarrierMaintenancePageProps = Pick<MembersPageTemplateProps, 'bucketInfo'> & {\n pageTitle: string\n operationName: string\n buttonName?: string\n url?: string\n}\n\n// eslint-disable-next-line max-len\nexport const MembersMobileCarrierMaintenancePage: React.VFC<MembersMobileCarrierMaintenancePageProps> = (\n props\n) => {\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={props.bucketInfo}\n >\n <PageTitle>{props.pageTitle}</PageTitle>\n <ErrorSummary\n display={true}\n headline={`現在キャリア決済メンテナンス期間のため、\\n${props.operationName}はできません。`}\n detail={'月末日19:00 ~ 翌月1日23:59:59\\n入会(キャリア決済へ支払い変更)日当日 〜 翌日1:00'}\n testId={'mobile-carrier-maintenance-message'}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${props.buttonName ?? ''}に移動する`}\n url={props.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {MembersPageTemplate, MembersPageTemplateProps} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {Spacer} from '../../../../Common/Components/Spacer'\n\ntype MembersBaseErrorPageProps = Pick<MembersPageTemplateProps, 'bucketInfo'> & {\n pageTitle: string\n errorSummaryHeadLine: string\n errorSummaryDetail: string\n errorSummaryAreaTestId: string\n buttonName?: string\n url?: string\n}\n\nexport const MembersBaseErrorPage: React.VFC<MembersBaseErrorPageProps> = (\n {\n bucketInfo,\n pageTitle,\n errorSummaryHeadLine,\n errorSummaryDetail,\n errorSummaryAreaTestId,\n buttonName,\n url,\n },\n) => {\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{pageTitle}</PageTitle>\n <ErrorSummary\n display={true}\n headline={errorSummaryHeadLine}\n detail={errorSummaryDetail}\n testId={errorSummaryAreaTestId}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${buttonName ?? ''}に移動する`}\n url={url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {MembersBaseErrorPage} from '../../Error/MembersBaseErrorPage'\nimport {MembersPageTemplateProps} from '../../../Molecules/BaseMembersPages/MembersPageTemplate'\n\nexport type CvsProcedureOrCompletedErrorPageProps = Pick<MembersPageTemplateProps, 'bucketInfo'> & {\n pageTitle: string\n errorSummaryHeadLine: string\n errorSummaryDetail: string\n\n}\nexport const CvsProcedureOrCompletedErrorPage: React.VFC<CvsProcedureOrCompletedErrorPageProps> = (\n {\n bucketInfo,\n pageTitle,\n errorSummaryHeadLine,\n errorSummaryDetail,\n },\n) => {\n return <MembersBaseErrorPage\n bucketInfo={bucketInfo}\n pageTitle={pageTitle}\n errorSummaryHeadLine={errorSummaryHeadLine}\n errorSummaryDetail={errorSummaryDetail}\n errorSummaryAreaTestId={'cvs-procedure-or-completed-error-messages'}\n buttonName={bucketInfo?.fcMyPageInfo.name}\n url={bucketInfo?.fcMyPageInfo.url}\n />\n}\n","import React, {useState} from 'react'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {BucketLeave} from '../../../DTO/BucketLeaveDTO'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {validateMemberLeaveBucketInput, ValidationLeaveBucketInput} from '../../../Utils/Validations/ValidateMembersLeaveBucketInput'\nimport {MBMemberTextArea} from '../../Atoms/MBMemberTextArea'\nimport {MembersLeaveBucketPageLocationState} from '../../../Props/MembersLeaveBucketPageLocationStates'\nimport {animateScroll} from 'react-scroll'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {LeavingMessageContent} from '../../Components/LeavingMessageContent'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ProcessingErrorPage} from '../Error/ProcessingErrorPage'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {MembersMobileCarrierMaintenancePage} from '../Error/MembersMobileCarrierMaintenancePage'\nimport {CvsProcedureOrCompletedErrorPage} from './Components/CvsProcedureOrCompletedErrorPage'\nimport {Contract} from '../../../Utils/Resources'\nimport STATUS = Contract.STATUS\n\ntype ErrorState = {\n isInputError: boolean\n bucketLeaveReasonErrors: string[]\n}\n\ntype MembersLeaveBucketInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport const MembersLeaveBucketInputPage: React.VFC<MembersLeaveBucketInputPageProps> = (props) => {\n const location = useLocation<MembersLeaveBucketPageLocationState>()\n const locationState: MembersLeaveBucketPageLocationState = location.state\n\n const {bucketKey} = useParams<{ bucketKey: string }>()\n const [bucketLeaveReason, setBucketLeaveReason]\n = useState<string>(locationState?.bucketLeaveReason || '')\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n bucketLeaveReasonErrors: [],\n })\n\n const getBucketInfoByBucketKeyResult = useAsync(async () => {\n return await props.memberRepo.getBucketInfoByBucketKey(bucketKey)\n })\n\n const getContractInfoByBucketKeyResult = useAsync(async () => {\n return await props.memberRepo.getContractInfoByBucketKey(bucketKey)\n })\n\n const getBucketLeaveByBucketKeyResult = useAsync(async () => {\n return await props.memberRepo.getBucketLeaveByBucketKey(bucketKey)\n })\n\n if (getBucketInfoByBucketKeyResult.loading) {\n return null\n }\n\n if (getBucketInfoByBucketKeyResult.error) {\n throw new MBMemberError(getBucketInfoByBucketKeyResult.error.message)\n }\n\n if (!getBucketInfoByBucketKeyResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(getBucketInfoByBucketKeyResult.value.status)\n\n if (!getBucketInfoByBucketKeyResult.value.data) {\n throw new MBMemberError('SystemError')\n }\n\n const _bucketInfo = {...getBucketInfoByBucketKeyResult.value.data}\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {mailMagazineList, ...rest} = _bucketInfo\n const bucketInfo: Omit<BucketInfo, 'mailMagazineList'> = rest\n const pageTitle = `${bucketInfo.name} 退会`\n\n if (getContractInfoByBucketKeyResult.loading) {\n return null\n }\n\n if (getContractInfoByBucketKeyResult.error) {\n throw new MBMemberError(getContractInfoByBucketKeyResult.error.message)\n }\n\n if (!getContractInfoByBucketKeyResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n switch (getContractInfoByBucketKeyResult.value.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.NoAuthority:\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.Processing:\n return (\n <ProcessingErrorPage\n pageTitle={pageTitle}\n bucketInfo={{...getBucketInfoByBucketKeyResult.value.data}}\n buttonName={getBucketInfoByBucketKeyResult.value.data.fcMyPageInfo.name}\n url={getBucketInfoByBucketKeyResult.value.data.fcMyPageInfo.url}\n />\n )\n default:\n throw new MBMemberError('UnknownError')\n }\n\n if (!getContractInfoByBucketKeyResult.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n const {now, next} = getContractInfoByBucketKeyResult.value.data\n\n if (getBucketLeaveByBucketKeyResult.loading) {\n return null\n }\n\n if (getBucketLeaveByBucketKeyResult.error) {\n throw new MBMemberError(getBucketLeaveByBucketKeyResult.error.message)\n }\n\n if (!getBucketLeaveByBucketKeyResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n switch (getBucketLeaveByBucketKeyResult.value.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.OvertimeError:\n return (\n <MembersMobileCarrierMaintenancePage\n pageTitle={pageTitle}\n operationName={'退会手続き'}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo.fcMyPageInfo.name}\n url={bucketInfo.fcMyPageInfo.url}\n />\n )\n case CommonResponseStatus.Forbidden:\n if (getBucketLeaveByBucketKeyResult.value.errorMessageList.length === 2) {\n const errorMessageList = getBucketLeaveByBucketKeyResult.value.errorMessageList\n return (\n <CvsProcedureOrCompletedErrorPage\n bucketInfo={bucketInfo}\n pageTitle={pageTitle}\n errorSummaryHeadLine={errorMessageList[0]}\n errorSummaryDetail={errorMessageList[1]}\n />\n )\n }\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.NoAuthority:\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.Processing:\n if (now.contractMethod.method === 'none') {\n return (\n <LeavingMessageContent\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n />\n )\n }\n throw new MBMemberError('SystemError')\n default:\n throw new MBMemberError('UnknownError')\n }\n\n if (!getBucketLeaveByBucketKeyResult.value.data) {\n throw new MBMemberError('SystemError')\n }\n const bucketLeave: BucketLeave =\n {...getBucketLeaveByBucketKeyResult.value.data}\n\n if (now.contractMethod.method !== 'none' && next === null) {\n throw new MBMemberError('SystemError')\n }\n\n if (next?.status === STATUS.Canceled) {\n return (\n <LeavingMessageContent\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n />\n )\n }\n\n const {isInputError, bucketLeaveReasonErrors} = errorState\n\n const goToMembersLeaveBucketConfirmPage = (): void => {\n const inputForValidation: ValidationLeaveBucketInput = {\n bucketLeaveReason: bucketLeaveReason,\n }\n\n const validationResult = validateMemberLeaveBucketInput(\n inputForValidation,\n )\n\n if (validationResult.hasError) {\n setErrorState({\n isInputError: true,\n bucketLeaveReasonErrors: validationResult.errors.bucketLeaveReason,\n })\n animateScroll.scrollToTop()\n return\n }\n\n props.navigator.goToMembersLeaveBucketConfirmPage({\n bucketInfo: bucketInfo,\n bucketLeave: bucketLeave,\n bucketLeaveReason: bucketLeaveReason,\n nowContract: now,\n })\n }\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{pageTitle}</PageTitle>\n\n <InputErrorSummary display={isInputError}/>\n\n <StepGuide activity={'leave'} current={'enter'}/>\n\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: '退会のご案内'}}\n testId={'block-leave-form'}\n >\n <PIMStack spacing={2} divider={<MBContentBodyDivider/>}>\n <PIMStack spacing={'10px'}>\n <MBContentSubTitleTypography>\n {bucketLeave?.leavePageTopMessage}\n </MBContentSubTitleTypography>\n <MBContentNoteWithMarkTypography\n note={\n now.contractMethod.method === 'none' ?\n `本日付で${bucketInfo.name}退会となります。`\n :\n `現在の契約期間満了後に${bucketInfo.name}退会となります。`\n }\n />\n </PIMStack>\n <PIMStack spacing={'10px'}>\n <label htmlFor=\"leave-reason\">\n <MBContentSubTitleTypography>\n 退会理由\n </MBContentSubTitleTypography>\n </label>\n <Spacer mb={'18px'}>\n <MBMemberTextArea\n className=\"form-textarea_01 w_100 pc100 mb_0\"\n name=\"bucketLeaveReason\"\n id=\"leave-reason\"\n value={bucketLeaveReason}\n rows={10}\n hasError={bucketLeaveReasonErrors.length > 0}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>): void => {\n setBucketLeaveReason(e.target.value)\n }}\n >\n </MBMemberTextArea>\n <ErrorDisplay errors={bucketLeaveReasonErrors}/>\n </Spacer>\n </PIMStack>\n </PIMStack>\n </PIMCard>\n </PIMStack>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n 『退会する』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'withdraw-button'}\n onClick={(): void => {\n goToMembersLeaveBucketConfirmPage()\n }}\n >\n 退会する\n </PIMSubmitButton>\n <ExternalLinkButton\n label={`${getBucketInfoByBucketKeyResult.value?.data?.fcMyPageInfo.name ?? ''}に移動する`}\n url={getBucketInfoByBucketKeyResult.value?.data?.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {ErrorSummaryCard, ErrorSummaryHeadline} from './ErrorSummary/ErrorSummary'\nimport styled from '@emotion/styled'\nimport {Color} from '../../Styles'\n\ntype Props = {\n headline: string\n alertMessages: string[]\n}\nexport const AlertList: React.VFC<Props> = (props) => {\n return (\n <AlertListCard>\n <Spacer mb={'10px'}>\n <ErrorSummaryHeadline headline={props.headline}/>\n </Spacer>\n <ul className=\"list-disc_01 fts13\">\n {props.alertMessages.map((alertMessage, i) => {\n return <li key={i}>{alertMessage}</li>\n })}\n </ul>\n </AlertListCard>\n )\n}\n\nconst AlertListCard = styled(ErrorSummaryCard)`\n background: ${Color.ErrorInputBackgroundColor};\n`\n","import React, {useState} from 'react'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {MembersLeaveBucketPageLocationState} from '../../../Props/MembersLeaveBucketPageLocationStates'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MBMemberInput} from '../../Atoms/MBMemberInput'\nimport {animateScroll} from 'react-scroll'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ConfirmContent} from '../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {AlertList} from '../../Molecules/ErrorsAndAlert/AlertList'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {useAsync} from 'react-use'\nimport {MembersMobileCarrierMaintenancePage} from '../Error/MembersMobileCarrierMaintenancePage'\nimport {CvsProcedureOrCompletedErrorPage} from './Components/CvsProcedureOrCompletedErrorPage'\nimport {LeavingMessageContent} from \"../../Components/LeavingMessageContent\"\n\ntype ErrorState = {\n isInputError: boolean\n agreeCheckErrors: string[]\n}\n\ntype MembersLeaveBucketConfirmPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport const MembersLeaveBucketConfirmPage: React.VFC<MembersLeaveBucketConfirmPageProps>\n = (props) => {\n const location = useLocation<MembersLeaveBucketPageLocationState>()\n const locationState: MembersLeaveBucketPageLocationState = location.state\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {bucketKey} = useParams<{ bucketKey: string }>()\n\n const [processing, setProcessing] = useState<boolean>(false)\n const [agreeCheck, setAgreeCheck] = useState<boolean>(false)\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n agreeCheckErrors: [],\n })\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [mobileCarrierMaintenance, setMobileCarrierMaintenance] = useState<boolean>(false)\n const [cvsProcedureOrCompletedError, setCvsProcedureOrCompletedError] = useState<boolean>(false)\n const [freeBucketLeaveProcessing, setFreeBucketLeaveProcessing] = useState<boolean>(false)\n const {bucketInfo, bucketLeaveReason, nowContract} = locationState\n const pageTitle = `${bucketInfo?.name} 退会確認`\n\n const throwMBMemberError = useMBMemberError()\n\n const getBucketLeaveByBucketKeyResult = useAsync(async () => {\n return await props.memberRepo.getBucketLeaveByBucketKey(bucketKey)\n })\n\n if (getBucketLeaveByBucketKeyResult.loading) {\n return null\n }\n\n if (getBucketLeaveByBucketKeyResult.error) {\n throw new MBMemberError(getBucketLeaveByBucketKeyResult.error.message)\n }\n\n if (!getBucketLeaveByBucketKeyResult.value) {\n throw new MBMemberError('UnknownError')\n }\n\n switch (getBucketLeaveByBucketKeyResult.value.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.OvertimeError:\n return (\n <MembersMobileCarrierMaintenancePage\n pageTitle={pageTitle}\n operationName={'退会手続き'}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo?.fcMyPageInfo.name}\n url={bucketInfo?.fcMyPageInfo.url}\n />\n )\n case CommonResponseStatus.Forbidden:\n if (isCvsProcedureOrCompletedError(getBucketLeaveByBucketKeyResult.value.errorMessageList)) {\n return (\n <CvsProcedureOrCompletedErrorPage\n bucketInfo={bucketInfo}\n pageTitle={pageTitle}\n errorSummaryHeadLine={getBucketLeaveByBucketKeyResult.value.errorMessageList[0]}\n errorSummaryDetail={getBucketLeaveByBucketKeyResult.value.errorMessageList[1]}\n />\n )\n }\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.NoAuthority:\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.Processing:\n if (nowContract.contractMethod.method === 'none') {\n return (\n <LeavingMessageContent\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n />\n )\n }\n throw new MBMemberError('SystemError')\n default:\n throw new MBMemberError('UnknownError')\n }\n\n if (!locationState.bucketLeave) {\n throw new MBMemberError('SystemError')\n }\n const leaveAttentionList = locationState.bucketLeave.leaveAttentionList\n\n const goToLeaveBucketCompletePage = async (): Promise<void> => {\n setProcessing(true)\n try {\n if (!agreeCheck) {\n setProcessing(false)\n setErrorState({\n isInputError: true,\n agreeCheckErrors: ['チェックが必要です。'],\n })\n animateScroll.scrollToTop()\n return\n }\n\n if (!bucketInfo) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n const response = await props.memberRepo.putBucketForLeave(\n bucketInfo.key,\n bucketLeaveReason,\n )\n\n switch (response.status) {\n case CommonResponseStatus.Ok:\n props.navigator.goToMembersLeaveBucketCompletePage(locationState)\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(response.errorMessageList)\n animateScroll.scrollToTop()\n return\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.OvertimeError:\n setMobileCarrierMaintenance(true)\n break\n case CommonResponseStatus.Forbidden:\n // eslint-disable-next-line max-depth\n if (isCvsProcedureOrCompletedError(response.errorMessageList)) {\n setCvsProcedureOrCompletedError(true)\n setErrorMessages(response.errorMessageList)\n break\n }\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.NoAuthority:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n case CommonResponseStatus.Processing:\n // eslint-disable-next-line max-depth\n if (nowContract.contractMethod.method === 'none') {\n setFreeBucketLeaveProcessing(true)\n break\n }\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n return (<>\n {mobileCarrierMaintenance && (\n <MembersMobileCarrierMaintenancePage\n pageTitle={pageTitle}\n operationName={'退会手続き'}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo?.fcMyPageInfo.name}\n url={bucketInfo?.fcMyPageInfo.url}\n />\n )}\n {cvsProcedureOrCompletedError && (\n <CvsProcedureOrCompletedErrorPage\n bucketInfo={bucketInfo}\n pageTitle={pageTitle}\n errorSummaryHeadLine={errorMessages[0]}\n errorSummaryDetail={errorMessages[1]}\n />\n )}\n {freeBucketLeaveProcessing && (\n <LeavingMessageContent\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n />\n )}\n {!mobileCarrierMaintenance && !cvsProcedureOrCompletedError && !freeBucketLeaveProcessing && (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{pageTitle}</PageTitle>\n\n <ErrorSummary\n display={errorState.isInputError}\n headline={'『内容を確認しました』にチェックが入っていません。'}\n />\n\n <StepGuide activity={'leave'} current={'confirm'}/>\n\n <ContentBlock data-testid={'block-leave-confirm'}>\n <PIMStack spacing={'18px'}>\n <ContentTitle noMarginBottom={true}>退会の確認</ContentTitle>\n <ConfirmContent\n label={'退会の理由'}\n values={[bucketLeaveReason]}\n />\n </PIMStack>\n\n <AlertList\n headline={'ご確認ください'}\n alertMessages={leaveAttentionList}\n />\n\n <p className=\"align_c mb_15\">\n 上記内容をご確認のうえ、<br/>下のチェックボックスにチェックを入れてください。\n </p>\n <p className=\"align_c mb_10\">\n <label>\n <MBMemberInput\n className=\"form-check_01\"\n type=\"checkbox\"\n hasError={errorState.agreeCheckErrors.length > 0}\n checked={agreeCheck}\n onChange={(): void => setAgreeCheck(!agreeCheck)}\n />\n <span className=\"txt\">内容を確認しました</span>\n </label>\n </p>\n <ErrorDisplay\n errors={errorState.agreeCheckErrors}\n style={{textAlign: 'center'}}\n />\n\n </ContentBlock>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『本当に退会する』ボタンを押してください。\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'really-withdraw-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToLeaveBucketCompletePage()}\n >\n 本当に退会する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => props.navigator.goBack()}>\n 退会理由の入力に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n )}\n </>)\n}\n\nconst isInvalidLocationState = (\n locationState: MembersLeaveBucketPageLocationState,\n): boolean => {\n if (!locationState) {\n return true\n }\n if (!locationState.bucketInfo) {\n return true\n }\n if (!locationState.bucketLeave) {\n return true\n }\n if (locationState.bucketLeaveReason == null) {\n return true\n }\n if (!locationState.nowContract) {\n return true\n }\n if (locationState.bucketLeave.leavePageTopMessage === undefined ||\n locationState.bucketLeave.leaveAttentionList === undefined) {\n return true\n }\n return false\n}\n\nconst isCvsProcedureOrCompletedError = (errorMessageList: string[]): boolean => {\n return errorMessageList.length === 2\n}\n","import React from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {MembersLeaveBucketPageLocationState} from '../../../Props/MembersLeaveBucketPageLocationStates'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {useTranslation} from 'react-i18next'\n\nexport const MembersLeaveBucketCompletePage: React.VFC = () => {\n const {t} = useTranslation('member')\n const location = useLocation<MembersLeaveBucketPageLocationState>()\n const locationState: MembersLeaveBucketPageLocationState = location.state\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {bucketInfo, nowContract} = locationState\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{`${bucketInfo?.name}退会完了`}</PageTitle>\n\n <StepGuide activity={'leave'} current={'complete'}/>\n\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>\n {`${bucketInfo?.name}退会手続き完了`}\n </ContentTitle>\n <ContentTopMessage\n note={\n nowContract.contractMethod.method === 'none' ?\n `本日付で${bucketInfo?.name}退会となります。`\n :\n `現在の契約期間満了後に${bucketInfo?.name}退会となります。`\n }\n >\n ご登録されているメールアドレスに完了通知を送信しました。<br/>\n {t('退会完了.メッセージ')}\n </ContentTopMessage>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${bucketInfo?.fcMyPageInfo.name ?? ''}に移動する`}\n url={bucketInfo?.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (\n locationState: MembersLeaveBucketPageLocationState,\n): boolean => {\n if (!locationState) {\n return true\n }\n if (!locationState.bucketInfo) {\n return true\n }\n if (!locationState.bucketLeave) {\n return true\n }\n if (!locationState.nowContract) {\n return true\n }\n if (!locationState.bucketInfo.name) {\n return true\n }\n return false\n}\n","import React, {useCallback} from 'react'\nimport styled from '@emotion/styled'\nimport {Color} from '../../../Styles'\n\nexport type PIMAccentButtonProps = {\n children: React.ReactNode\n onClick: React.MouseEventHandler<HTMLButtonElement>\n disabled?: boolean\n testId?: string\n}\n\nconst getBackgroundStyle = ({disabled}: PIMAccentButtonProps): string => (\n disabled ? `${Color.Grey600}` : `${Color.Green400}`\n)\nconst getBorderStyle = ({disabled}: PIMAccentButtonProps): string => (\n disabled ? `solid 1px ${Color.Grey600}` : `solid 1px ${Color.Green400}`\n)\nconst getColorStyle = ({disabled}: PIMAccentButtonProps): string => (\n disabled ? `rgba(255, 255, 255, 0.4)` : `${Color.White}`\n)\nconst getOpacityStyle = ({disabled}: PIMAccentButtonProps): number => disabled ? 0.4 : 1\nconst getPointerEventsStyle = ({disabled}: PIMAccentButtonProps): string => (\n disabled ? 'none' : 'auto'\n)\n\nconst StyledButton = styled.button`\n width: 100%;\n max-width: 305px;\n height: 47px;\n background: ${getBackgroundStyle};\n border: ${getBorderStyle};\n border-radius: 6px;\n box-shadow: 0 2px 3px 0 rgba(0, 0, 0, .05);\n padding: 0 16px;\n font-size: 1.6rem;\n font-weight: bold;\n color: ${getColorStyle};\n opacity: ${getOpacityStyle};\n pointer-events: ${getPointerEventsStyle};\n @media (min-width: 769px) {\n &:focus {\n opacity: 0.6;\n }\n &:hover {\n opacity: 0.6;\n }\n }\n`\n\n// TODO 色などデザインは別US対応予定\nexport const PIMAccentButton: React.VFC<PIMAccentButtonProps> = (props) => {\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n const eventTarget = e.target as HTMLElement\n eventTarget.blur()\n props.onClick(e)\n }, [props.onClick],\n )\n\n return (\n <StyledButton\n data-testid={props.testId}\n onClick={handleClick}\n disabled={props.disabled}\n >\n {props.children}\n </StyledButton>\n )\n}\n","import React, {useCallback, useState} from 'react'\nimport {Optional} from '../../../../Common/TypeHelper'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {useAsync, useAsyncRetry} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport dayjs from 'dayjs'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {ContractInformationContentBlock} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractInformationContentBlock'\nimport {ContractInfoWithContractDate, ConvenienceStoreInfo, CvsContractInfo, MobileCarrierInfo, MyCreditCardInfo} from '../../../Props/ContractInputInfo'\nimport {MBContentBodyTypography, MBContentNoteWithMarkTypography, MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ProcessingErrorPage} from '../Error/ProcessingErrorPage'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {CreditCardMethod, CvsMethod, FreeBucketMethod, MobileCarrierMethod} from '../../../DTO/MemberContractInfoDTO'\nimport {checkAsyncStateAndGetData, checkAsyncStateAndGetDataOrError, isError, memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {useMBMemberErrorUnknown} from '../../Hooks/UseMBMemberError'\nimport {PIMAccentButton} from '../../Atoms/Buttons/Bases/PIMAccentButton'\nimport {MBLoadingOverlay} from '../../Molecules/MBLoadingOverlay'\nimport {MBCvsPaymentDialog} from '../../Molecules/MBDialogs'\nimport {Contract} from '../../../Utils/Resources'\nimport STATUS = Contract.STATUS\n\nconst pageTitle = '契約情報'\n\ntype MembersEditContractInfoPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport const MembersEditContractInfoPage: React.VFC<MembersEditContractInfoPageProps> = (\n {\n navigator,\n memberRepo,\n },\n) => {\n const {bucketKey} = useParams<{ bucketKey: string }>()\n\n const [openCvsPaymentDialog, setOpenCvsPaymentDialog] = useState(false)\n const [openLoading, setOpenLoading] = useState(false)\n\n const throwMBMemberError = useMBMemberErrorUnknown()\n\n const resultBucketInfo = useAsync(async () => memberRepo.getBucketInfoByBucketKey(bucketKey))\n const resultContractInfo = useAsyncRetry(\n async () => memberRepo.getContractInfoByBucketKey(bucketKey),\n )\n\n const goToEditContractInputPage = useCallback(() => {\n navigator.goToEditContractInputPage(bucketKey)\n }, [navigator])\n\n const handleCvsPaymentDialogOkButtonClicked = useCallback(async (\n cvsInfo: ConvenienceStoreInfo,\n ) => {\n if (cvsInfo.convenienceStoreKey === '') return\n setOpenCvsPaymentDialog(false)\n setOpenLoading(true)\n\n try {\n const result = await memberRepo.postContinuanceCvs(bucketKey, cvsInfo.convenienceStoreKey)\n memberResponseStatusCheck(result.status)\n resultContractInfo.retry()\n } catch (e) {\n throwMBMemberError(e)\n }\n\n setOpenLoading(false)\n }, [memberRepo, throwMBMemberError, resultContractInfo])\n\n if (resultBucketInfo.loading || resultContractInfo.loading) return null\n\n const bucketInfo = checkAsyncStateAndGetData(resultBucketInfo)\n const contractInfo = checkAsyncStateAndGetDataOrError(resultContractInfo)\n if (isError(contractInfo)) {\n if (contractInfo.message === 'Processing') {\n return <ProcessingErrorPage\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo.fcMyPageInfo.name}\n url={bucketInfo.fcMyPageInfo.url}\n />\n } else {\n throw contractInfo\n }\n }\n const {contractDate, now, next} = contractInfo\n\n if (now.contractMethod.method === 'none') {\n throw new MBMemberError('NotFound')\n }\n if (next === null) {\n throw new MBMemberError('SystemError')\n }\n\n const nowContractInfo: ContractInfoWithContractDate = {\n term: now.term,\n method: now.contractMethod.method,\n amount: now.amount,\n contractDate: {\n contractDate: now.startDate,\n contractEndDate: now.endDate,\n },\n }\n\n const nowCardInfo = getCardInfo(now.contractMethod)\n const nextCardInfo = getCardInfo(next.contractMethod)\n const nowCarrierInfo = getCarrierInfo(now.contractMethod)\n const nextCarrierInfo = getCarrierInfo(next.contractMethod)\n const nowCvsInfo = getCvsInfo(now.contractMethod)\n const nextCvsInfo = getCvsInfo(next.contractMethod)\n\n const cvsPaymentButton = <>{contractInfo?.next?.contractMethod.method === 'convenience_store'\n && next.status === STATUS.Reserved\n && <Spacer mt={'25px'} dataTestId={'convenience-payment-block'}>\n <PIMPageActions spacing={0.5}>\n <PIMAccentButton\n testId={'convenience-payment-button'}\n onClick={(): void => setOpenCvsPaymentDialog(true)}\n disabled={\n !contractInfo.next.contractMethod.paymentMethodDetail.isPaymentAvailableTerm\n }\n >\n {'お支払いのコンビニを選択/確定する'}\n </PIMAccentButton>\n {!contractInfo.next.contractMethod.paymentMethodDetail.isPaymentAvailableTerm\n && contractInfo?.next?.contractMethod.paymentMethodDetail.paymentAvailableOn &&\n <MBContentNoteWithMarkTypography note={\n contractInfo?.next?.contractMethod.paymentMethodDetail.paymentAvailableOn\n + 'から、コンビニ支払いの手続きが可能となります。'}/>}\n </PIMPageActions>\n </Spacer>}\n\n <MBLoadingOverlay open={openLoading}/>\n <MBCvsPaymentDialog\n open={openCvsPaymentDialog}\n onCancelButtonClick={(): void => setOpenCvsPaymentDialog(false)}\n onOkButtonClick={handleCvsPaymentDialogOkButtonClicked}\n defaultConvenienceStoreKey={nextCvsInfo?.convenienceStoreKey}\n /></>\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{pageTitle}</PageTitle>\n\n <ContentBlock>\n <MBContentBodyDivider/>\n <Spacer mt={'18px'} mb={'5px'}>\n <MBContentSubTitleTypography>継続期間</MBContentSubTitleTypography>\n </Spacer>\n <Spacer mt={'5px'} mb={'18px'}>\n <MBContentBodyTypography>{makeDurationString(contractDate)}</MBContentBodyTypography>\n </Spacer>\n <MBContentBodyDivider/>\n </ContentBlock>\n\n <ContractInformationContentBlock\n title={'現在の契約情報'}\n contractInfoWithContractDate={nowContractInfo}\n cardInfo={nowCardInfo}\n carrierInfo={nowCarrierInfo}\n cvsInfo={nowCvsInfo}\n dataTestId={'block-now-contract-info'}\n />\n\n {\n (next.status === STATUS.Canceled)\n ? <LeavingMessageContent/>\n : <ContractInformationContentBlock\n title={'次回の契約情報'}\n contractInfoWithContractDate={{\n term: next.term,\n method: next.contractMethod.method,\n amount: next.amount,\n contractDate: {\n contractDate: next.startDate,\n contractEndDate: next.endDate,\n },\n }}\n cardInfo={nextCardInfo}\n carrierInfo={nextCarrierInfo}\n cvsInfo={nextCvsInfo}\n editButtonProps={{\n buttonName: 'お支払いに関する情報変更',\n onClick: (): void => goToEditContractInputPage(),\n disabled: !(next.status === STATUS.Reserved),\n }}\n cvsPaymentButton={cvsPaymentButton}\n dataTestId={'block-next-contract-info'}\n />\n }\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${bucketInfo.fcMyPageInfo.name ?? ''}に移動する`}\n url={bucketInfo.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n\n </MembersPageTemplate>\n )\n}\n\nconst makeDurationString = (signupDate: string): string => {\n const MONTHS_IN_A_YEAR = 12\n const dateTo = dayjs().startOf('month')\n const dateFrom = dayjs(signupDate).startOf('month')\n\n const durationYear = dateTo.diff(dateFrom, 'year')\n const durationMonth = dateTo.diff(dateFrom, 'month') % MONTHS_IN_A_YEAR\n\n return `${durationYear} 年 ${durationMonth} か月`\n}\n\nconst LeavingMessageContent = (): JSX.Element => {\n return (\n <ContentBlock data-testid={'block-next-contract-info'}>\n <ContentTitle noMarginBottom={true}>次回の契約情報</ContentTitle>\n <Spacer mt={'15px'} mb={'18px'}>\n <MBContentBodyTypography>退会手続き済み</MBContentBodyTypography>\n </Spacer>\n <MBContentBodyDivider/>\n </ContentBlock>\n )\n}\n\nconst getCardInfo = (\n contractMethod: CreditCardMethod | MobileCarrierMethod | CvsMethod | FreeBucketMethod,\n):\n Optional<MyCreditCardInfo> => {\n if (contractMethod.method === 'credit_card') {\n return contractMethod.paymentMethodDetail\n }\n return undefined\n}\n\nconst getCarrierInfo = (\n contractMethod: CreditCardMethod | MobileCarrierMethod | CvsMethod | FreeBucketMethod,\n):\n Optional<MobileCarrierInfo> => {\n if (contractMethod.method === 'mobile_carrier') {\n return contractMethod.paymentMethodDetail\n }\n return undefined\n}\n\nconst getCvsInfo = (\n contractMethod: CreditCardMethod | MobileCarrierMethod | CvsMethod | FreeBucketMethod,\n): Optional<CvsContractInfo> => {\n return contractMethod.method === 'convenience_store'\n ? contractMethod.paymentMethodDetail\n : undefined\n}\n","import React from 'react'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {ContractTerm, ErrorMessagesBaseForContractInput, generateContractTermLabelAndValueList} from '../../../../Props/ContractInputInfo'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentBodyItemTypography} from '../../../Atoms/Typographies'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMWarningMessages} from '../../../Atoms/Labels/PIMWarningMessages'\nimport {PaymentInformation} from '../../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\n\ntype ChangeNextContractTermContentProps = {\n paymentInformationList: PaymentInformation[]\n defaultValue: ContractTerm\n value: ContractTerm\n onChange: (changeSelectedTerm: ContractTerm) => void\n errorMessage: ErrorMessagesBaseForContractInput['paymentInputTermErrors']\n}\n\nexport const ChangeNextContractTermContent: React.VFC<ChangeNextContractTermContentProps> =\n ({\n paymentInformationList,\n defaultValue,\n value,\n onChange,\n errorMessage,\n }) => {\n const isFreeBucket = paymentInformationList.some(payInfo => payInfo.isFreeBucket)\n\n const paymentInformationListExceptCurrentTerm =\n paymentInformationList.find(value => value.term !== defaultValue)\n if (isFreeBucket || !paymentInformationListExceptCurrentTerm) {\n return <></>\n }\n\n return (\n <PIMCard\n headerProps={{title: '次回契約単位の変更', require: true}}\n testId={'block-change-contract-term-unit'}\n >\n {errorMessage.length > 0 && (\n <Spacer mb={'18px'} data-testid={'block-select-contract-term-warning-message'}>\n <PIMWarningMessages messages={errorMessage}/>\n </Spacer>\n )}\n <ContractUnitRadioButtons\n paymentInformationList={paymentInformationList}\n defaultValue={defaultValue}\n value={value}\n hasError={errorMessage.length > 0}\n onChange={(changeSelectedTerm: ContractTerm): void => {\n onChange(changeSelectedTerm)\n }}\n />\n </PIMCard>\n )\n }\n\ntype NextTermPaymentMethodPropsAddOnChange = {\n paymentInformationList: PaymentInformation[],\n defaultValue: ContractTerm\n value: ContractTerm\n hasError: boolean\n onChange: (changeSelectedTerm: ContractTerm) => void\n}\n\nconst ContractUnitRadioButtons: React.VFC<NextTermPaymentMethodPropsAddOnChange> = (\n {\n paymentInformationList,\n defaultValue,\n value,\n hasError,\n onChange,\n },\n) => {\n const contractTermLabelAndValueList =\n generateContractTermLabelAndValueList(\n paymentInformationList,\n )\n\n const foundCurrentContractTermLabelAndValue = contractTermLabelAndValueList\n .find(value => value.value === defaultValue)\n if (!foundCurrentContractTermLabelAndValue) {\n throw new MBMemberError('SystemError')\n }\n\n return (\n <PIMStack spacing={'16px'} divider={<MBContentBodyDivider/>} showEndDivider>\n <PIMStack spacing={1.5}>\n <MBMemberRadio\n labelName={'契約単位を変更しない'}\n value={foundCurrentContractTermLabelAndValue.value}\n isBoldLabel={true}\n fontRemSize={1.2}\n hasError={hasError}\n onChange={(): void => {\n onChange(foundCurrentContractTermLabelAndValue.value)\n }}\n checked={value === foundCurrentContractTermLabelAndValue.value}\n />\n <Spacer ml={'28px'}>\n <MBContentBodyItemTypography>\n {foundCurrentContractTermLabelAndValue.label}\n </MBContentBodyItemTypography>\n </Spacer>\n </PIMStack>\n {contractTermLabelAndValueList.map((labelAndValue, index) => (\n defaultValue !== labelAndValue.value && (\n <PIMStack spacing={1.5} key={index}>\n <MBMemberRadio\n labelName={'契約単位を変更する'}\n value={labelAndValue.value}\n isBoldLabel={true}\n fontRemSize={1.2}\n hasError={hasError}\n onChange={(): void => {\n onChange(labelAndValue.value)\n }}\n checked={value === labelAndValue.value}\n />\n <Spacer ml={'28px'}>\n <MBContentBodyItemTypography>\n {labelAndValue.label}\n </MBContentBodyItemTypography>\n </Spacer>\n </PIMStack>\n )\n ))}\n </PIMStack>\n )\n}\n","import {JoinDisplayInputDetailPaymentMethodForProps, JoinDisplayPaymentMethodsProps} from '../../Join/Components/JoinDisplayPaymentMethodsRadioList'\nimport {CreditCardInfo, DisplayCreditCardExpireDate, MobileCarrierInfo, MyCreditCardInfo, PaymentInputDetail, SecurityCodeForMyCreditCard, UsingMyCreditCardInfo} from '../../../../Props/ContractInputInfo'\nimport {findSecurityCodeByCardId, isCheckedMyCardId, isExpiredCreditCard, SelectCreditCardRadioList, SelectCreditCardRadioListForProps} from '../../../Components/PaymentsRelations/InputContentBlocks/SelectCreditCardRadioList'\nimport React, {useCallback} from 'react'\nimport {Nullable, Optional} from '../../../../../Common/TypeHelper'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MobileCarrierInputComponent} from '../../../Components/PaymentsRelations/InputContentBlocks/MobileCarrierInputComponent'\nimport {MBMemberRadio} from '../../../Atoms/MBMemberRadio'\nimport {ExpiredCardBadge, MBInUseBadge} from '../../../Atoms/Badges'\nimport {MBContentBodyItemWarningMessageTypography} from '../../../Atoms/Typographies'\nimport {CardInformationDiv} from '../../../Components/PaymentsRelations/InputContentBlocks/CardInformationDiv'\nimport {SecurityCodeInputForm} from '../../../Components/PaymentsRelations/InputContentBlocks/NewCreditCardInputComponent'\nimport {PAYMENT} from '../../../../../Common/Constants'\nimport {ContractInfo, NextContractInfo} from '../../../../DTO/MemberContractInfoDTO'\nimport dayjs from 'dayjs'\n\nexport type EditDisplayPaymentMethodsProps = JoinDisplayPaymentMethodsProps & {\n displayMyCreditCardExcludeCurrentCard: boolean\n isChangeContractTerm: boolean\n creditCardInfoForNextContract: Nullable<MyCreditCardInfo>\n nextContractInfoBeforeChange: Pick<NextContractInfo, 'contractMethod'>\n nowContractInfo: Pick<ContractInfo, 'term' | 'endDate'>\n} & Required<Pick<SelectCreditCardRadioListForProps, 'nextContractStartDate_YYYYMMDD'>>\n\nexport const EditDisplayPaymentMethodsRadioList: React.VFC<EditDisplayPaymentMethodsProps> = (\n {\n disabled,\n paymentMethodList,\n paymentInputDetailWithMethod,\n myCreditCardInfoList,\n errorMessages,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n onDeleteCardButtonClick,\n displayMyCreditCardExcludeCurrentCard,\n isChangeContractTerm,\n creditCardInfoForNextContract,\n nextContractStartDate_YYYYMMDD,\n nextContractInfoBeforeChange,\n nowContractInfo,\n },\n) => {\n return (\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showFirstDivider showEndDivider>\n {paymentMethodList.map((paymentMethod, idx) => {\n const checked = paymentInputDetailWithMethod.method === paymentMethod\n\n const {contractMethod} = nextContractInfoBeforeChange\n\n const disabledForCsv = isChangeContractTerm\n && paymentMethod === contractMethod.method\n && contractMethod.method === 'convenience_store'\n\n const disabledForCarrier = nowContractInfo.term === 'yearly'\n && paymentMethod === 'mobile_carrier'\n && isLastMonthInContractTerm(nowContractInfo.endDate)\n\n return (\n <div key={`payment-method-${idx}`}>\n <MBMemberRadio\n id={`payment-${idx}`}\n name=\"payment\"\n labelName={PAYMENT.METHODS_FOR_RADIO_LABEL[paymentMethod]}\n disabled={disabled || disabledForCsv || disabledForCarrier}\n hasError={errorMessages.paymentInputMethodErrors.length > 0}\n onChange={(): void => {\n onChangeSelectedMethod(paymentMethod)\n }}\n checked={checked}\n isBoldLabel\n />\n\n {disabled || disabledForCsv && (\n <div data-testid=\"csv-notice-message\">\n <Spacer mt={'10px'} ml={'5%'}>\n <MBContentBodyItemWarningMessageTypography>\n {`既にコンビニ決済となっています。\\nお支払いコンビニの選択及びお支払い番号の払い出しは${contractMethod.paymentMethodDetail.paymentAvailableOn}から実施できます。`}\n </MBContentBodyItemWarningMessageTypography>\n </Spacer>\n </div>\n )}\n {disabled || disabledForCarrier && (\n <div data-testid=\"carrier-notice-message\">\n <Spacer mt={'10px'} ml={'5%'}>\n <MBContentBodyItemWarningMessageTypography>\n {`キャリア決済への変更は現在の契約の最終月のみ実施できます。\\n ${getChangeTermForCarrier(nowContractInfo.endDate)}`}\n </MBContentBodyItemWarningMessageTypography>\n </Spacer>\n </div>\n )}\n\n <EditDisplayInputDetailPaymentMethod\n paymentMethod={paymentMethod}\n myCreditCardInfoList={myCreditCardInfoList}\n paymentInputDetailWithMethod={paymentInputDetailWithMethod}\n errorMessages={errorMessages}\n onChangeInputDetailInfo={\n (value: PaymentInputDetail): void => onChangeInputDetailInfo(value)\n }\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n displayMyCreditCardExcludeCurrentCard={displayMyCreditCardExcludeCurrentCard}\n displayCurrentCreditCard={isChangeContractTerm}\n creditCardInfoForNextContract={creditCardInfoForNextContract}\n nextContractStartDate_YYYYMMDD={nextContractStartDate_YYYYMMDD}\n />\n </div>\n )\n })}\n </PIMStack>\n )\n}\n\nconst isLastMonthInContractTerm = (nowContractEndDate: string): boolean => {\n const contractEndDate = dayjs(nowContractEndDate)\n const now = dayjs()\n\n const getYearOfContractEndDate = dayjs(contractEndDate).get('year')\n const nowYear = now.get('year')\n if (nowYear !== getYearOfContractEndDate) return true\n\n const getMonthOfContractEndDate = dayjs(contractEndDate).get('month')\n\n const nowMonth = now.get('month')\n\n return nowMonth !== getMonthOfContractEndDate\n}\n\nconst getChangeTermForCarrier = (nowContractEndDate: string): string => {\n const contractEndDate = dayjs(nowContractEndDate)\n const startDate = dayjs(contractEndDate).startOf('month').format('YYYY/MM/DD')\n const endDate = dayjs(contractEndDate).endOf('month').format('YYYY/MM/DD')\n\n return `${startDate} 〜 ${endDate}`\n}\n\ntype EditDisplayInputDetailPaymentMethodProps = JoinDisplayInputDetailPaymentMethodForProps & {\n displayMyCreditCardExcludeCurrentCard: boolean\n displayCurrentCreditCard: boolean\n creditCardInfoForNextContract: Nullable<MyCreditCardInfo>\n} & Required<Pick<SelectCreditCardRadioListForProps, 'nextContractStartDate_YYYYMMDD'>>\n\nconst EditDisplayInputDetailPaymentMethod:\n React.VFC<EditDisplayInputDetailPaymentMethodProps> =\n ({\n paymentMethod,\n paymentInputDetailWithMethod,\n errorMessages,\n onChangeInputDetailInfo,\n onDeleteCardButtonClick,\n myCreditCardInfoList,\n displayMyCreditCardExcludeCurrentCard,\n displayCurrentCreditCard,\n creditCardInfoForNextContract,\n nextContractStartDate_YYYYMMDD,\n }) => {\n const handleCreditCardInputDetailInfoChange = useCallback(\n (changeInputDetailInfo: CreditCardInfo): void =>\n onChangeInputDetailInfo({\n ...paymentInputDetailWithMethod,\n creditCard: changeInputDetailInfo,\n }), [paymentInputDetailWithMethod],\n )\n\n const currentCreditCard = myCreditCardInfoList?.find(value => {\n if (creditCardInfoForNextContract === null) return undefined\n return value.cardId === creditCardInfoForNextContract.cardId\n })\n\n const myCreditCardInfoListExcludeCurrentCreditCard: Optional<UsingMyCreditCardInfo[]>\n = myCreditCardInfoList?.filter(\n (myCreditCardInfo) => {\n return (myCreditCardInfo.cardId !== currentCreditCard?.cardId)\n },\n )\n const getMyCreditCardInfoListExcludeCurrentCreditCard = (): UsingMyCreditCardInfo[] => {\n if (!myCreditCardInfoListExcludeCurrentCreditCard) return []\n\n if (displayMyCreditCardExcludeCurrentCard) {\n return myCreditCardInfoListExcludeCurrentCreditCard\n }\n return []\n }\n\n if (paymentInputDetailWithMethod.method !== paymentMethod) {\n return <></>\n }\n switch (paymentInputDetailWithMethod.method) {\n case 'credit_card':\n return <Spacer ml={'5%'}>\n <ErrorDisplay errors={errorMessages.creditCardTypeErrors}/>\n {\n !displayCurrentCreditCard && currentCreditCard && (\n <Spacer mt={'18px'}>\n <PIMStack spacing={'18px'} divider={<MBContentBodyDivider/>} showEndDivider>\n <UnchangedCreditCardMethodItem\n currentCreditCard={currentCreditCard}\n creditCardInfo={paymentInputDetailWithMethod.creditCard}\n nextContractStartDate_YYYYMMDD={nextContractStartDate_YYYYMMDD}\n onChangeInputDetailInfo={(changeInputDetailInfo): void =>\n handleCreditCardInputDetailInfoChange(changeInputDetailInfo)\n }\n errorMessages={errorMessages}\n />\n </PIMStack>\n </Spacer>\n )\n }\n <Spacer mt={'18px'}>\n <SelectCreditCardRadioList\n myCreditCardInfoList={getMyCreditCardInfoListExcludeCurrentCreditCard()}\n creditCardInfo={paymentInputDetailWithMethod.creditCard}\n nextContractStartDate_YYYYMMDD={nextContractStartDate_YYYYMMDD}\n newCreditCardRegisterDisable={\n getMyCreditCardInfoListExcludeCurrentCreditCard().length >= 4\n }\n errorMessages={errorMessages}\n onChangeInputDetailInfo={(changeInputDetailInfo): void =>\n handleCreditCardInputDetailInfoChange(changeInputDetailInfo)\n }\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n />\n </Spacer>\n </Spacer>\n case 'mobile_carrier':\n return <MobileCarrierInputComponent\n mobileCarrierInputInfo={paymentInputDetailWithMethod.mobileCarrier}\n errorMessage={errorMessages}\n onChangeInputDetailInfo={\n (value: MobileCarrierInfo): void =>\n onChangeInputDetailInfo({\n creditCard: paymentInputDetailWithMethod.creditCard,\n mobileCarrier: value,\n convenienceStore: paymentInputDetailWithMethod.convenienceStore,\n })\n }\n />\n case 'convenience_store':\n return <></>\n case 'none':\n return <></>\n }\n }\n\ntype UnchangedCreditCardMethodItemProps = {\n currentCreditCard: UsingMyCreditCardInfo\n} & Pick<SelectCreditCardRadioListForProps,\n 'creditCardInfo' |\n 'nextContractStartDate_YYYYMMDD' |\n 'onChangeInputDetailInfo' |\n 'errorMessages'>\nconst UnchangedCreditCardMethodItem: React.VFC<UnchangedCreditCardMethodItemProps> = (props) => {\n const expired =\n isExpiredCreditCard(props.currentCreditCard.expireDate, props.nextContractStartDate_YYYYMMDD)\n const hasError =\n (props.errorMessages.errorMyCreditCardId === props.currentCreditCard.cardId)\n || (props.errorMessages.creditCardTypeErrors.length > 0)\n\n return (\n <div data-testid={'block-input-my-current-credit-card-information'}>\n <PIMStack spacing={1.5}>\n <PIMStack direction={'row'} alignItems={'baseline'} spacing={'6px'}>\n <MBMemberRadio\n id={'current-credit-card'}\n name=\"payment1\"\n labelName={'クレジットカードを変更しない'}\n disabled={expired}\n hasError={expired ? false : hasError}\n isBoldLabel={true}\n fontRemSize={1.2}\n value={props.currentCreditCard.cardId}\n onChange={(e): void => {\n props.onChangeInputDetailInfo({\n creditCardType: 'myCard',\n myCreditCardInfo: {\n selectedCardId: e.target.value,\n securityCodeMap:\n props.creditCardInfo.myCreditCardInfo.securityCodeMap,\n },\n newCreditCardInfo: props.creditCardInfo.newCreditCardInfo,\n })\n }}\n checked={isCheckedMyCardId(props.creditCardInfo, props.currentCreditCard)}\n />\n <PIMStack spacing={'2px'}>\n {expired && <div><ExpiredCardBadge/></div>}\n <MBInUseBadge/>\n </PIMStack>\n </PIMStack>\n\n {hasError && props.errorMessages.invalidCardErrors.length > 0 && (\n <Spacer ml={'28px'}>\n <PIMStack spacing={'6px'}>\n {props.errorMessages.invalidCardErrors.map((error, idx) => (\n <MBContentBodyItemWarningMessageTypography key={idx}>\n {error}\n </MBContentBodyItemWarningMessageTypography>\n ))}\n </PIMStack>\n </Spacer>\n )}\n\n <CardInformationDiv disabled={expired}>\n <PIMStack direction={'row'} alignItems={'baseline'}>\n {props.currentCreditCard.cardNumber}\n <DisplayCreditCardExpireDate expireDate={props.currentCreditCard.expireDate}/>\n </PIMStack>\n </CardInformationDiv>\n </PIMStack>\n\n {\n props.creditCardInfo.creditCardType === 'myCard' &&\n props.currentCreditCard.cardId === props.creditCardInfo.myCreditCardInfo.selectedCardId\n && (\n <Spacer ml={'10%'}>\n <SecurityCodeInputForm\n securityCode={\n findSecurityCodeByCardId(\n props.creditCardInfo.myCreditCardInfo.securityCodeMap,\n props.currentCreditCard.cardId,\n )?.securityCode || ''\n }\n errorMessages={\n hasError\n ? {\n ...props.errorMessages,\n creditCardSecurityCodeErrors: [],\n }\n : {\n ...props.errorMessages,\n invalidCardErrors: [],\n creditCardSecurityCodeErrors: [],\n myCreditCardSecurityCodeErrors: [],\n }\n }\n onChangeInputSecurityCode={(value): void => {\n const _securityCodeMap: SecurityCodeForMyCreditCard[] =\n Object.assign(props.creditCardInfo.myCreditCardInfo.securityCodeMap)\n const findCardIdInSecurityCodeMap =\n findSecurityCodeByCardId(_securityCodeMap, props.currentCreditCard.cardId)\n if (findCardIdInSecurityCodeMap) {\n findCardIdInSecurityCodeMap.securityCode = value\n }\n\n props.onChangeInputDetailInfo({\n creditCardType: 'myCard',\n myCreditCardInfo: {\n selectedCardId: props.creditCardInfo.myCreditCardInfo.selectedCardId,\n securityCodeMap: _securityCodeMap,\n },\n newCreditCardInfo: props.creditCardInfo.newCreditCardInfo,\n })\n }}\n />\n </Spacer>\n )\n }\n </div>\n )\n}\n","import {\n JoinPaymentMethodRadioListProps,\n JoinSelectPaymentMethodContentsProps,\n} from '../../Join/Components/JoinSelectPaymentMethodContents'\nimport {\n ContractMethod,\n getContractMethodsByTerm,\n MyCreditCardInfo,\n PaymentInputDetail,\n} from '../../../../Props/ContractInputInfo'\nimport {SelectCreditCardRadioListForProps} from '../../../Components/PaymentsRelations/InputContentBlocks/SelectCreditCardRadioList'\nimport React from 'react'\nimport {PIMCard} from '../../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {\n MBContentBodyItemWarningMessageTypography,\n MBContentNoteWithMarkTypography,\n} from '../../../Atoms/Typographies'\nimport {MBMemberError} from '../../../../Common/MBMemberError'\nimport {EditDisplayPaymentMethodsRadioList} from './EditDisplayPaymentMethodsRadioList'\nimport {Nullable} from '../../../../../Common/TypeHelper'\nimport {ContractInfo, NextContractInfo} from '../../../../DTO/MemberContractInfoDTO'\n\ntype ChangeNextPaymentMethodContentProps = JoinSelectPaymentMethodContentsProps & {\n displayMyCreditCardExcludeCurrentCard: boolean\n isChangeContractTerm: boolean\n isDisableContractMethodRadioButton: boolean\n creditCardInfoForNextContract: Nullable<MyCreditCardInfo>\n nextContractInfoBeforeChange: Pick<NextContractInfo, 'contractMethod'>\n nowContractInfo: Pick<ContractInfo, 'term' | 'endDate'>\n} & Required<Pick<SelectCreditCardRadioListForProps, 'nextContractStartDate_YYYYMMDD'>>\n\nexport const ChangeNextPaymentMethodContent: React.VFC<ChangeNextPaymentMethodContentProps> = (\n {\n paymentMethodList,\n myCreditCardInfoList,\n contractInputInfoState,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n errorMessages,\n onDeleteCardButtonClick,\n displayMyCreditCardExcludeCurrentCard,\n isChangeContractTerm,\n isDisableContractMethodRadioButton,\n creditCardInfoForNextContract,\n nextContractStartDate_YYYYMMDD,\n nextContractInfoBeforeChange,\n nowContractInfo,\n },\n) => {\n const contractMethods = getContractMethodsByTerm(paymentMethodList, contractInputInfoState.term)\n\n return (\n <PIMCard\n headerProps={{title: '次回契約のお支払い方法の変更', require: true}}\n testId={'block-input-next-payment-method'}\n >\n <PIMStack spacing={'18px'}>\n <PIMStack spacing={'6px'}>\n <MBContentNoteWithMarkTypography\n note={'次回契約のお支払い時に利用可能なクレジットカード情報のみ選択可能となっております。'}\n />\n {errorMessages.paymentInputMethodErrors.map((error, idx) => (\n <MBContentBodyItemWarningMessageTypography key={idx}>\n {error}\n </MBContentBodyItemWarningMessageTypography>\n ))}\n </PIMStack>\n\n <EditPaymentMethodRadioList\n contractMethods={contractMethods}\n myCreditCardInfoList={myCreditCardInfoList}\n contractInputInfo={contractInputInfoState}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(changeSelectedMethod: ContractMethod): void => {\n onChangeSelectedMethod(changeSelectedMethod)\n }}\n onChangeInputDetailInfo={(changeInputDetailInfo: PaymentInputDetail): void => {\n onChangeInputDetailInfo(changeInputDetailInfo)\n }}\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n displayMyCreditCardExcludeCurrentCard={displayMyCreditCardExcludeCurrentCard}\n isChangeContractTerm={isChangeContractTerm}\n isDisableContractMethodRadioButton={isDisableContractMethodRadioButton}\n creditCardInfoForNextContract={creditCardInfoForNextContract}\n nextContractStartDate_YYYYMMDD={nextContractStartDate_YYYYMMDD}\n nextContractInfoBeforeChange={nextContractInfoBeforeChange}\n nowContractInfo={nowContractInfo}\n />\n </PIMStack>\n </PIMCard>\n )\n}\ntype EditPaymentMethodRadioListProps = JoinPaymentMethodRadioListProps & {\n displayMyCreditCardExcludeCurrentCard: boolean\n isChangeContractTerm: boolean\n isDisableContractMethodRadioButton: boolean\n creditCardInfoForNextContract: Nullable<MyCreditCardInfo>\n nextContractInfoBeforeChange: Pick<NextContractInfo, 'contractMethod'>\n nowContractInfo: Pick<ContractInfo, 'term' | 'endDate'>\n} & Required<Pick<SelectCreditCardRadioListForProps, 'nextContractStartDate_YYYYMMDD'>>\n\nconst EditPaymentMethodRadioList: React.VFC<EditPaymentMethodRadioListProps> = (\n {\n contractMethods,\n myCreditCardInfoList,\n contractInputInfo,\n errorMessages,\n onChangeSelectedMethod,\n onChangeInputDetailInfo,\n onDeleteCardButtonClick,\n displayMyCreditCardExcludeCurrentCard,\n isChangeContractTerm,\n isDisableContractMethodRadioButton,\n creditCardInfoForNextContract,\n nextContractStartDate_YYYYMMDD,\n nextContractInfoBeforeChange,\n nowContractInfo,\n },\n) => {\n if (Object.keys(contractMethods).length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n const disabled = (contractInputInfo.term === '' && isDisableContractMethodRadioButton)\n\n return <EditDisplayPaymentMethodsRadioList\n paymentMethodList={contractMethods}\n myCreditCardInfoList={myCreditCardInfoList}\n paymentInputDetailWithMethod={contractInputInfo}\n disabled={disabled}\n errorMessages={errorMessages}\n onChangeSelectedMethod={(value: ContractMethod): void => onChangeSelectedMethod(value)}\n onChangeInputDetailInfo={(value: PaymentInputDetail): void => onChangeInputDetailInfo(value)}\n onDeleteCardButtonClick={onDeleteCardButtonClick}\n displayMyCreditCardExcludeCurrentCard={displayMyCreditCardExcludeCurrentCard}\n isChangeContractTerm={isChangeContractTerm}\n creditCardInfoForNextContract={creditCardInfoForNextContract}\n nextContractStartDate_YYYYMMDD={nextContractStartDate_YYYYMMDD}\n nextContractInfoBeforeChange={nextContractInfoBeforeChange}\n nowContractInfo={nowContractInfo}\n />\n}\n","import React, {useCallback, useEffect, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {useAsync, useAsyncRetry} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {PaymentInformation} from '../../Components/RegisterOrganizationContentBlocks/RegisterOrganizationContentBlock'\nimport {PAYMENT} from '../../../../Common/Constants'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {ContractInputInfo, ContractInputInfoAll, ContractTerm, ErrorMessageForInvalidCard, ErrorMessagesForContractEdit, findAmountByTermAndMethod, findSecurityCodeByCardIdForValidation, getDefaultSecurityCodeMapForMyCreditCard, makeStringCreditCardExpireDate, MyCreditCardInfo, UsingMyCreditCardInfo} from '../../../Props/ContractInputInfo'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {NextContractInfo} from '../../../DTO/MemberContractInfoDTO'\nimport {validateMemberContractInput, ValidationContractInput} from '../../../Utils/Validations/ValidateMembersContractInput'\nimport {animateScroll} from 'react-scroll/modules'\nimport {LeavingMessageContent} from '../../Components/LeavingMessageContent'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {ProcessingErrorPage} from '../Error/ProcessingErrorPage'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MBLoadingOverlay} from '../../Molecules/MBLoadingOverlay'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {MBDeleteCreditCardConfirmDialog} from '../../Molecules/MBDialogs'\nimport {Nullable} from '../../../../Common/TypeHelper'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {checkAsyncStateAndGetDataOrError, isError, memberResponseStatusCheck} from '../../../Utils/MemberResponseStatusCheck'\nimport {ChangeNextContractTermContent} from './Components/ChangeNextContractTermContent'\nimport {ChangeNextPaymentMethodContent} from './Components/ChangeNextPaymentMethodContent'\nimport {MembersMobileCarrierMaintenancePage} from '../Error/MembersMobileCarrierMaintenancePage'\nimport {ErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/ErrorSummary'\nimport {Contract} from '../../../Utils/Resources'\nimport STATUS = Contract.STATUS\n\nconst pageTitle = 'お支払いに関する情報変更'\n\nexport type MembersEditContractInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype EditContractInputPageLocationState = {\n isInvalidCardError: boolean\n isMobileCarrierError: boolean\n bucketInfo: BucketInfo\n paymentMethodList: PaymentMethod[]\n contractInputInfo: ContractInputInfo\n myCreditCardInfoList: UsingMyCreditCardInfo[]\n nextContractInfo: NextContractInfo\n}\n\nexport const MembersEditContractInputPage:\n React.VFC<MembersEditContractInputPageProps> = (props) => {\n const {bucketKey} = useParams<{ bucketKey: string }>()\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location = useLocation<EditContractInputPageLocationState>()\n const locationState: EditContractInputPageLocationState = location.state || {}\n\n const [openDialog, setOpenDialog] = useState(false)\n const [deleteCardInfo, setDeleteCardInfo] = useState<MyCreditCardInfo>()\n const [loadingOpen, setLoadingOpen] = useState(false)\n\n const [bucketInfo, setBucketInfo]\n = useState<BucketInfo>(locationState?.bucketInfo || {} as BucketInfo)\n\n const [paymentMethodList, setPaymentMethodList] =\n useState<PaymentMethod[]>(locationState?.paymentMethodList || [])\n const [myCreditCardInfoList, setMyCreditCardInfoList] =\n useState<UsingMyCreditCardInfo[]>(locationState?.myCreditCardInfoList || [])\n const [contractInputInfoState, setContractInputInfoState] = useState<ContractInputInfoAll>({\n term: locationState?.contractInputInfo?.term || '',\n method: locationState?.contractInputInfo?.method,\n amount: findAmountByTermAndMethod(\n locationState?.paymentMethodList,\n locationState?.contractInputInfo?.term,\n locationState?.contractInputInfo?.method,\n ),\n creditCard: {\n creditCardType: locationState?.contractInputInfo?.creditCard?.creditCardType || '',\n newCreditCardInfo: {\n cardNumber:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.cardNumber || '',\n expireMonth:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireMonth || '',\n expireYear:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.expireYear || '',\n holderName:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.holderName || '',\n securityCode:\n locationState?.contractInputInfo?.creditCard?.newCreditCardInfo.securityCode || '',\n },\n myCreditCardInfo: {\n selectedCardId:\n locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.selectedCardId || '',\n securityCodeMap:\n locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.securityCodeMap || [],\n },\n },\n mobileCarrier: {\n carrierKey: locationState?.contractInputInfo?.mobileCarrier?.carrierKey || '',\n },\n convenienceStore: {\n convenienceStoreKey:\n locationState?.contractInputInfo?.convenienceStore?.convenienceStoreKey || '',\n },\n })\n const [errorState, setErrorState] = useState<ErrorMessagesForContractEdit>({\n isInputError: locationState.isInvalidCardError || false,\n invalidCardErrors:\n ErrorMessageForInvalidCard(\n locationState?.contractInputInfo?.creditCard?.creditCardType,\n locationState?.isInvalidCardError,\n ),\n paymentInputTermErrors: [],\n paymentInputMethodErrors: [],\n creditCardTypeErrors: [],\n creditCardNumberErrors: [],\n creditCardExpireMonthErrors: [],\n creditCardExpireYearErrors: [],\n creditCardFutureExpireDateErrors: [],\n creditCardHolderNameErrors: [],\n creditCardSecurityCodeErrors: [],\n errorMyCreditCardId: (locationState.isInvalidCardError\n && locationState.contractInputInfo.creditCard.creditCardType === 'myCard'\n )\n ? locationState?.contractInputInfo?.creditCard?.myCreditCardInfo.selectedCardId\n : '',\n myCreditCardSecurityCodeErrors: [],\n convenienceStoreErrors: [],\n mobileCarrierErrors: locationState?.isMobileCarrierError\n ? ['決済が完了しませんでした。再度お手続きを実施ください。']\n : [],\n })\n\n const throwMBMemberError = useMBMemberError()\n\n const resultGetSelfCreditCards = useAsyncRetry(async () =>\n await props.memberRepo.getSelfCreditCards())\n\n const handleDialogCancelButtonClick = useCallback((): void => {\n setOpenDialog(false)\n }, [openDialog])\n\n const handleDeleteCardButtonClick = useCallback((deleteCardInfo: MyCreditCardInfo): void => {\n setOpenDialog(true)\n setDeleteCardInfo(deleteCardInfo)\n }, [openDialog, deleteCardInfo])\n\n const handleDialogDeleteCardButtonClick = useCallback(async (cardId: string): Promise<void> => {\n if (next === null) {\n throw new MBMemberError('SystemError')\n }\n\n setOpenDialog(false)\n setLoadingOpen(true)\n props.navigator.changeEditContractInputPageState(\n bucketInfo,\n paymentMethodList,\n contractInputInfoState,\n myCreditCardInfoList,\n next,\n )\n\n try {\n const deleteCardResult = await props.memberRepo.deleteCreditCard(cardId)\n switch (deleteCardResult.status) {\n case CommonResponseStatus.Ok:\n case CommonResponseStatus.NotFound:\n setContractInputInfoState((prevState) => ({\n ...prevState,\n method: 'credit_card',\n creditCard: {\n ...prevState.creditCard,\n creditCardType: '',\n myCreditCardInfo: {\n selectedCardId: '',\n securityCodeMap: prevState.creditCard.myCreditCardInfo.securityCodeMap,\n },\n },\n }))\n resultGetSelfCreditCards.retry()\n break\n case CommonResponseStatus.BadRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n case CommonResponseStatus.InvalidRequest:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n }\n\n setLoadingOpen(false)\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [\n props.navigator,\n props.memberRepo,\n resultGetSelfCreditCards,\n ])\n\n const resultBucketInfo = useAsync(async () =>\n await props.memberRepo.getBucketInfoByBucketKey(bucketKey))\n const resultContractInfo = useAsync(async () =>\n await props.memberRepo.getContractInfoByBucketKey(bucketKey))\n\n useEffect(() => {\n if (!resultGetSelfCreditCards.value) {\n return\n }\n setMyCreditCardInfoList(resultGetSelfCreditCards.value.data)\n\n if (\n locationState?.bucketInfo &&\n locationState?.paymentMethodList &&\n locationState?.myCreditCardInfoList &&\n locationState?.contractInputInfo &&\n locationState?.nextContractInfo\n ) {\n return\n }\n\n if (!resultBucketInfo.value) {\n return\n }\n if (!resultContractInfo.value) {\n return\n }\n if (!resultContractInfo?.value?.data?.candidatePaymentMethodList) {\n return\n }\n const bucketInfoDTO = resultBucketInfo.value.data\n const {candidatePaymentMethodList} = resultContractInfo.value.data\n\n setBucketInfo((prevState) => ({\n ...prevState,\n ...bucketInfoDTO,\n }))\n\n setPaymentMethodList([...candidatePaymentMethodList])\n\n }, [\n resultGetSelfCreditCards.value,\n resultBucketInfo.value,\n resultContractInfo.value,\n ])\n\n useEffect(() => {\n if (locationState?.contractInputInfo) {\n return\n }\n if (!resultContractInfo.value?.data) {\n return\n }\n\n setContractInputInfoState((prevState) => ({\n ...prevState,\n term: locationState?.nextContractInfo?.term\n || !isContractTerms(paymentMethodList) && resultContractInfo?.value?.data?.next?.term\n || '',\n creditCard: {\n creditCardType: '',\n newCreditCardInfo: {\n cardNumber: '',\n expireMonth: '',\n expireYear: '',\n holderName: '',\n securityCode: '',\n },\n myCreditCardInfo: {\n selectedCardId: '',\n securityCodeMap: getDefaultSecurityCodeMapForMyCreditCard(myCreditCardInfoList),\n },\n },\n }))\n }, [\n locationState?.contractInputInfo,\n resultContractInfo,\n myCreditCardInfoList,\n paymentMethodList,\n ])\n\n if (resultBucketInfo.loading) {\n return null\n }\n\n if (resultBucketInfo.error) {\n throw new MBMemberError(resultBucketInfo.error.message)\n }\n\n if (!resultBucketInfo.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultBucketInfo.value.status)\n\n if (!resultBucketInfo.value.data) {\n throw new MBMemberError('UnknownError')\n }\n\n if (resultGetSelfCreditCards.loading) {\n return null\n }\n\n if (resultGetSelfCreditCards.error) {\n throw new MBMemberError(resultGetSelfCreditCards.error.message)\n }\n\n if (!resultGetSelfCreditCards.value) {\n throw new MBMemberError('UnknownError')\n }\n\n memberResponseStatusCheck(resultGetSelfCreditCards.value.status)\n\n if (resultContractInfo.loading) {\n return null\n }\n\n const contractInfo = checkAsyncStateAndGetDataOrError(resultContractInfo)\n if (isError(contractInfo)) {\n if (contractInfo.message === 'Processing') {\n return <ProcessingErrorPage\n pageTitle={pageTitle}\n bucketInfo={resultBucketInfo.value.data}\n buttonName={resultBucketInfo.value.data.fcMyPageInfo.name}\n url={resultBucketInfo.value.data.fcMyPageInfo.url}\n />\n } else {\n throw contractInfo\n }\n }\n\n const {now, next} = contractInfo\n\n if (now.contractMethod.method === 'none') {\n throw new MBMemberError('NotFound')\n }\n if (next === null) {\n throw new MBMemberError('SystemError')\n }\n if (next.status === STATUS.Canceled) {\n return (\n <LeavingMessageContent\n pageTitle={pageTitle}\n bucketInfo={bucketInfo}\n />\n )\n }\n if (!(next.status === STATUS.Reserved)) {\n throw new MBMemberError('SystemError')\n }\n if (next.contractMethod.method === 'mobile_carrier'\n && next.contractMethod.paymentMethodDetail.isUnableToCancelContract) {\n const bucketInfo = resultBucketInfo.value.data\n return (\n <MembersMobileCarrierMaintenancePage\n pageTitle={pageTitle}\n operationName={'お支払いに関する情報変更手続き'}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo.fcMyPageInfo.name}\n url={bucketInfo.fcMyPageInfo.url}\n />\n )\n }\n\n const currentTerm: ContractTerm = locationState?.nextContractInfo?.term || next.term || ''\n const getCreditCardInfoForNextContract = (): Nullable<MyCreditCardInfo> => {\n if (locationState?.nextContractInfo?.contractMethod.method === 'credit_card') {\n return locationState?.nextContractInfo?.contractMethod.paymentMethodDetail\n }\n if (next.contractMethod.method === 'credit_card') {\n return next.contractMethod.paymentMethodDetail\n }\n return null\n }\n const creditCardInfoForNextContract = getCreditCardInfoForNextContract()\n\n if (paymentMethodList.length === 0) {\n return null\n }\n const paymentInformationList: PaymentInformation[] =\n paymentMethodList\n .filter(paymentMethod =>\n Object.keys(PAYMENT.TERMS).includes(paymentMethod.term),\n )\n .map(paymentMethod => ({\n isFreeBucket: paymentMethod.method === 'none',\n termName: PAYMENT.TERMS[paymentMethod.term].displayLabel,\n contractAmount: paymentMethod.amount,\n order: PAYMENT.TERMS[paymentMethod.term].order,\n term: paymentMethod.term,\n }))\n\n if (paymentInformationList.length === 0) {\n throw new MBMemberError('SystemError')\n }\n\n const goToEditContractInfoPage = (): void => {\n props.navigator.goToEditContractInfoPage(bucketKey)\n }\n\n const goToEditContractConfirmPage = (): void => {\n setProcessing(true)\n\n const inputForValidation: ValidationContractInput = {\n paymentInputTerm: contractInputInfoState.term,\n paymentInputMethod: contractInputInfoState.method,\n creditCardType: contractInputInfoState.creditCard.creditCardType,\n creditCardNumber:\n contractInputInfoState?.creditCard?.newCreditCardInfo.cardNumber || '',\n creditCardExpireMonth:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireMonth || '',\n creditCardExpireYear:\n contractInputInfoState?.creditCard?.newCreditCardInfo.expireYear || '',\n creditCardHolderName:\n contractInputInfoState?.creditCard?.newCreditCardInfo.holderName || '',\n creditCardSecurityCode:\n contractInputInfoState?.creditCard?.newCreditCardInfo.securityCode || '',\n myCreditCardSecurityCode:\n findSecurityCodeByCardIdForValidation(contractInputInfoState.creditCard.myCreditCardInfo)\n || '',\n convenienceStore: contractInputInfoState?.convenienceStore?.convenienceStoreKey || '',\n mobileCarrier: contractInputInfoState?.mobileCarrier?.carrierKey || '',\n nextContractStartDate: next.startDate,\n }\n\n const validationResult = validateMemberContractInput(inputForValidation)\n\n if (validationResult.hasError) {\n setErrorState({\n isInputError: true,\n invalidCardErrors: [],\n paymentInputTermErrors: validationResult.errors.paymentInputTerm,\n paymentInputMethodErrors: validationResult.errors.paymentInputMethod,\n errorMyCreditCardId:\n contractInputInfoState.creditCard.creditCardType === 'myCard'\n ? contractInputInfoState.creditCard.myCreditCardInfo.selectedCardId\n : '',\n creditCardTypeErrors: validationResult.errors.creditCardType,\n creditCardNumberErrors: validationResult.errors.creditCardNumber,\n creditCardExpireMonthErrors: validationResult.errors.creditCardExpireMonth,\n creditCardExpireYearErrors: validationResult.errors.creditCardExpireYear,\n creditCardFutureExpireDateErrors: validationResult.errors.creditCardFutureExpireDate,\n creditCardHolderNameErrors: validationResult.errors.creditCardHolderName,\n creditCardSecurityCodeErrors: validationResult.errors.creditCardSecurityCode,\n myCreditCardSecurityCodeErrors: validationResult.errors.myCreditCardSecurityCode,\n convenienceStoreErrors: [],\n mobileCarrierErrors: validationResult.errors.mobileCarrier,\n })\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n\n if (next.contractMethod.method === 'mobile_carrier') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {isUnableToCancelContract, ...nextRest} = next.contractMethod.paymentMethodDetail\n\n props.navigator.goToEditContractConfirmPage(\n bucketInfo,\n paymentMethodList,\n {\n ...contractInputInfoState, amount: findAmountByTermAndMethod(\n paymentMethodList,\n contractInputInfoState.term,\n contractInputInfoState.method,\n ),\n },\n myCreditCardInfoList,\n {\n ...next,\n contractMethod: {\n method: 'mobile_carrier',\n paymentMethodDetail: nextRest,\n },\n },\n )\n return\n }\n\n props.navigator.goToEditContractConfirmPage(\n bucketInfo,\n paymentMethodList,\n {\n ...contractInputInfoState, amount: findAmountByTermAndMethod(\n paymentMethodList,\n contractInputInfoState.term,\n contractInputInfoState.method,\n ),\n },\n myCreditCardInfoList,\n next,\n )\n return\n }\n\n return (\n <>\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n <PageTitle>{pageTitle}</PageTitle>\n\n <InputErrorSummary display={errorState.isInputError}/>\n <ErrorSummary\n display={!errorState.isInputError && locationState.isMobileCarrierError}\n headline={'キャリア決済に失敗しました。'}\n detail={\n '入力項目をご確認の上、再実施いただくか、他の決済方法をご利用ください。\\n また、何度もこのメッセージが表示される場合には、各キャリアへ問い合わせをお願いします。'\n }\n />\n\n <StepGuide activity={'edit'} current={'enter'}/>\n\n <PIMStack alignItems={'center'} spacing={2}>\n <ChangeNextContractTermContent\n paymentInformationList={paymentInformationList}\n defaultValue={currentTerm}\n value={contractInputInfoState.term}\n onChange={(changeSelectedTerm: ContractTerm): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n term: changeSelectedTerm,\n method: undefined,\n amount: 0,\n creditCard: {\n ...prevState.creditCard,\n creditCardType: '',\n },\n }\n })\n }}\n errorMessage={errorState.paymentInputTermErrors}\n />\n\n <ChangeNextPaymentMethodContent\n paymentMethodList={paymentMethodList}\n myCreditCardInfoList={myCreditCardInfoList}\n contractInputInfoState={contractInputInfoState}\n displayMyCreditCardExcludeCurrentCard={\n myCreditCardInfoList.length > 1 || paymentMethodList.length > 1\n }\n isChangeContractTerm={\n isChangeTerm(currentTerm, contractInputInfoState.term)\n }\n isDisableContractMethodRadioButton={isContractTerms(paymentMethodList)}\n nextContractStartDate_YYYYMMDD={\n locationState?.nextContractInfo?.startDate || next.startDate\n }\n creditCardInfoForNextContract={creditCardInfoForNextContract}\n onChangeSelectedMethod={(changeSelectedMethod): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n method: changeSelectedMethod,\n amount: findAmountByTermAndMethod(\n paymentMethodList, prevState.term, changeSelectedMethod,\n ),\n }\n })\n }}\n onChangeInputDetailInfo={(changeInputDetailInfo): void => {\n setContractInputInfoState((prevState) => {\n return {\n ...prevState,\n creditCard: changeInputDetailInfo.creditCard,\n mobileCarrier: changeInputDetailInfo.mobileCarrier,\n convenienceStore: changeInputDetailInfo.convenienceStore,\n }\n })\n }}\n errorMessages={errorState}\n onDeleteCardButtonClick={handleDeleteCardButtonClick}\n nextContractInfoBeforeChange={next}\n nowContractInfo={now}\n />\n\n </PIMStack>\n\n <MessageForAction>上記の内容に間違いがなければ<br/>『変更内容の確認に進む』ボタンを押してください。</MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-changes-button'}\n disabled={processing}\n onClick={(): void => {\n goToEditContractConfirmPage()\n }}\n >\n 変更内容の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToEditContractInfoPage}>\n 契約情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n\n <MBLoadingOverlay open={loadingOpen}/>\n {\n deleteCardInfo &&\n <MBDeleteCreditCardConfirmDialog\n open={openDialog}\n creditCardInfo={\n deleteCardInfo.cardNumber + makeStringCreditCardExpireDate(deleteCardInfo.expireDate)\n }\n onCancelButtonClick={handleDialogCancelButtonClick}\n onOkButtonClick={(): Promise<void> =>\n handleDialogDeleteCardButtonClick(deleteCardInfo.cardId)\n }\n />\n }\n </>\n )\n}\n\nconst isContractTerms = (paymentMethodList: PaymentMethod[]): boolean => {\n return Array.from(new Set(\n paymentMethodList.map(payMethod => payMethod.term),\n )).length > 1\n}\n\nconst isChangeTerm = (currentTerm: string, inputTerm: string): boolean => {\n\n return (currentTerm === inputTerm)\n}\n\n","import {\n validateCreditCardExpireMonth,\n validateCreditCardExpireYear,\n validateCreditCardHolderName,\n validateCreditCardNumber,\n validateCreditCardSecurityCode,\n validateCreditCardType,\n validateFutureExpireDate,\n validateMobileCarrier,\n validateMyCreditCardSecurityCode,\n validatePaymentInputMethod,\n validatePaymentInputTerm,\n} from './PaymentInputInfoValidation'\nimport {ContractMethod, ContractTerm, CreditCardType} from '../../Props/ContractInputInfo'\nimport {Optional} from '../../../Common/TypeHelper'\n\nexport type ValidationContractInput = {\n paymentInputTerm: ContractTerm\n paymentInputMethod: Optional<ContractMethod>\n creditCardType: CreditCardType\n creditCardNumber: string\n creditCardExpireMonth: string\n creditCardExpireYear: string\n creditCardHolderName: string\n creditCardSecurityCode: string\n myCreditCardSecurityCode: string\n convenienceStore: string\n mobileCarrier: string\n nextContractStartDate: string\n}\n\ntype CombinationResult = {\n creditCardFutureExpireDate: string[]\n}\n\nexport type ValidationContractResultDetail = {\n [K in keyof Omit<ValidationContractInput, 'nextContractStartDate'>]: string[]\n} & CombinationResult\n\nexport type ValidationContractResult = {\n hasError: boolean\n errors: Omit<ValidationContractResultDetail, 'nextContractStartDate'>\n}\n\nexport const validateMemberContractInput = (\n input: ValidationContractInput,\n): ValidationContractResult => {\n\n const details: ValidationContractResultDetail = {\n paymentInputTerm: validatePaymentInputTerm(input.paymentInputTerm, true),\n paymentInputMethod:\n validatePaymentInputMethod(input.paymentInputMethod, true),\n creditCardType: validateCreditCardType(input.paymentInputMethod, input.creditCardType),\n creditCardNumber: validateCreditCardNumber(\n input.paymentInputMethod, input.creditCardType, input.creditCardNumber),\n creditCardExpireMonth: validateCreditCardExpireMonth(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireMonth),\n creditCardExpireYear: validateCreditCardExpireYear(\n input.paymentInputMethod, input.creditCardType, input.creditCardExpireYear),\n creditCardFutureExpireDate: validateFutureExpireDate(\n input.paymentInputMethod,\n input.creditCardType,\n input.creditCardExpireMonth,\n input.creditCardExpireYear,\n input.nextContractStartDate,\n ),\n creditCardHolderName: validateCreditCardHolderName(\n input.paymentInputMethod, input.creditCardType, input.creditCardHolderName),\n creditCardSecurityCode: validateCreditCardSecurityCode(\n input.paymentInputMethod, input.creditCardType, input.creditCardSecurityCode),\n myCreditCardSecurityCode: validateMyCreditCardSecurityCode(\n input.paymentInputMethod, input.creditCardType, input.myCreditCardSecurityCode),\n convenienceStore: [],\n mobileCarrier: validateMobileCarrier(input.paymentInputMethod, input.mobileCarrier),\n }\n\n const hasError =\n Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","import {\n BucketContractInputInfo,\n BucketContractInputInfoCreditCard,\n BucketContractInputInfoMobileCarrier,\n} from './MemberJoinBucketDTO'\n\nexport interface BucketEditContractInputInfoConvenienceStore extends BucketContractInputInfo {\n paymentMethod: 'convenience_store',\n}\n\nexport class MemberEditContractDTO {\n bucketKey: string\n contractInputInfo: BucketContractInputInfoCreditCard |\n BucketEditContractInputInfoConvenienceStore |\n BucketContractInputInfoMobileCarrier\n\n constructor(\n bucketKey: string,\n contractInputInfo: BucketContractInputInfoCreditCard |\n BucketEditContractInputInfoConvenienceStore |\n BucketContractInputInfoMobileCarrier,\n ) {\n this.bucketKey = bucketKey\n this.contractInputInfo = contractInputInfo\n }\n}\n","import React, {useEffect, useState} from 'react'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {PaymentMethod} from '../../../DTO/PaymentMethodDTO'\nimport {ContractInputInfo, ContractMethod, UsingMyCreditCardInfo} from '../../../Props/ContractInputInfo'\nimport {ContractInfo} from '../../../DTO/MemberContractInfoDTO'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport H from 'history'\nimport {useLocation} from 'react-router-dom'\nimport {Nullable, Optional} from '../../../../Common/TypeHelper'\nimport {TokenResponse, useGmo} from '../../Hooks/UseGmo'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ContractTermConfirmContent} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractTermConfirmContent'\nimport {ContractPaymentMethodConfirm} from '../../Components/PaymentsRelations/ConfirmContentBlocks/ContractPaymentMethodConfirm'\nimport {BucketContractInputInfoCreditCard, BucketContractInputInfoMobileCarrier} from '../../../DTO/MemberJoinBucketDTO'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {CommonResponseDTO} from '../../../../Network/CommonResponse'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {MembersMobileCarrierMaintenancePage} from '../Error/MembersMobileCarrierMaintenancePage'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {checkResponseAndGetDataOrError, isError} from '../../../Utils/MemberResponseStatusCheck'\nimport {MobileCarrierStartPaymentInfoDTO} from '../../../DTO/MobileCarrierStartPaymentInfoDTO'\nimport {BucketEditContractInputInfoConvenienceStore, MemberEditContractDTO} from '../../../DTO/MemberEditContractDTO'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\n\ntype Props = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\nexport type EditContractConfirmPageLocationState = {\n bucketInfo: BucketInfo\n paymentMethodList: PaymentMethod[]\n contractInputInfo: ContractInputInfo\n myCreditCardInfoList: UsingMyCreditCardInfo[]\n nextContractInfo: ContractInfo\n}\n\nexport const MembersEditContractConfirmPage = (props: Props): Nullable<JSX.Element> => {\n const scriptUrl: Optional<string> = process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_URL\n const timeout: Optional<number> =\n parseInt(process.env.REACT_APP_MEMBUCKET_ADMIN_APP_GMO_SCRIPT_TIMEOUT ?? '5000', 10)\n\n const [tokenResponse, setTokenResponse] = useState<TokenResponse>()\n\n const location: H.Location<EditContractConfirmPageLocationState> =\n useLocation<EditContractConfirmPageLocationState>()\n const locationState: EditContractConfirmPageLocationState = location.state\n\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n const pageTitle = 'お支払いに関する情報変更確認'\n\n const throwMBMemberError = useMBMemberError()\n\n if (!scriptUrl) {\n throw new MBMemberError('SystemError')\n }\n const [loading, error, gmo] = useGmo(scriptUrl)\n\n const [gmoTimeoutErrorFlg, setGmoTimeoutErrorFlg] = useState(false)\n const [mobileCarrierMaintenance, setMobileCarrierMaintenance] = useState<boolean>(false)\n\n useEffect(() => {\n if (!locationState?.contractInputInfo) {\n return\n }\n if (locationState.contractInputInfo.creditCard?.creditCardType === 'myCard') {\n return\n }\n\n if (gmo) {\n if (locationState.contractInputInfo.method !== 'credit_card') {\n return\n }\n if (!locationState.contractInputInfo.creditCard) {\n return\n }\n\n const shopCode = locationState.bucketInfo.shopId\n if (!shopCode) {\n throw new MBMemberError('SystemError')\n }\n\n const {cardNumber, expireMonth, expireYear, holderName, securityCode} =\n locationState.contractInputInfo.creditCard.newCreditCardInfo\n\n gmo.init(shopCode)\n\n const timeoutId = setTimeout(() => {\n setGmoTimeoutErrorFlg(true)\n }, timeout)\n\n gmo.getToken({\n tokennumber: 2,\n cardno: cardNumber,\n expire: expireYear.slice(-2) + expireMonth,\n securitycode: securityCode,\n holdername: holderName,\n }, (result: TokenResponse) => {\n clearTimeout(timeoutId)\n setTokenResponse(result)\n })\n }\n }, [gmo])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n if (locationState.contractInputInfo.method === 'credit_card'\n && locationState.contractInputInfo.creditCard?.creditCardType === 'newCard') {\n if (gmoTimeoutErrorFlg) {\n throw new MBMemberError('SystemError')\n }\n\n if (error) {\n throw new MBMemberError('SystemError')\n }\n if (loading) {\n return null\n }\n if (!gmo) {\n return null\n }\n\n if (!tokenResponse) {\n return null\n }\n }\n\n function isInvalidLocationState(locationState: EditContractConfirmPageLocationState): boolean {\n if (!locationState) {\n return true\n }\n if (!locationState.bucketInfo) {\n return true\n }\n if (!locationState.myCreditCardInfoList) {\n return true\n }\n if (!locationState.paymentMethodList) {\n return true\n }\n if (!locationState.contractInputInfo) {\n return true\n }\n if (!locationState.contractInputInfo.method) {\n return true\n }\n // noinspection RedundantIfStatementJS\n if (!locationState.nextContractInfo) {\n return true\n }\n\n return false\n }\n\n const {\n bucketInfo,\n contractInputInfo,\n myCreditCardInfoList,\n nextContractInfo,\n } = locationState\n\n const {creditCard} = contractInputInfo\n\n const goToEditContractCompletePage = async (): Promise<void> => {\n setProcessing(true)\n\n try {\n if (!contractInputInfo.method) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('InvalidOperation')\n }\n const method: ContractMethod = contractInputInfo.method\n\n const generateBucketContractInputInfo = ():\n BucketContractInputInfoCreditCard |\n BucketEditContractInputInfoConvenienceStore |\n BucketContractInputInfoMobileCarrier => {\n const selectedMyCreditCardInfo =\n creditCard?.myCreditCardInfo.securityCodeMap\n .find(item => item.cardId === creditCard.myCreditCardInfo.selectedCardId)\n\n switch (method) {\n case 'credit_card':\n if (creditCard.creditCardType === 'newCard') {\n return {\n contractTerm: contractInputInfo.term,\n paymentMethod: 'credit_card',\n tokenList: tokenResponse?.tokenObject.token || [],\n creditCardExpireDate:\n `${creditCard.newCreditCardInfo.expireMonth}/${creditCard.newCreditCardInfo.expireYear}`,\n cardId: undefined,\n securityCode: undefined,\n }\n }\n\n return {\n contractTerm: contractInputInfo.term,\n paymentMethod: 'credit_card',\n tokenList: [],\n creditCardExpireDate: undefined,\n cardId: creditCard?.myCreditCardInfo.selectedCardId,\n securityCode: selectedMyCreditCardInfo?.securityCode,\n }\n case 'mobile_carrier':\n return {\n contractTerm: contractInputInfo.term,\n paymentMethod: 'mobile_carrier',\n paymentMethodDetail: contractInputInfo.mobileCarrier.carrierKey,\n }\n case 'convenience_store':\n return {\n contractTerm: contractInputInfo.term,\n paymentMethod: 'convenience_store',\n }\n default:\n throw new MBMemberError('InvalidOperation')\n }\n }\n\n const putBucketContractInfoResult:\n CommonResponseDTO<Nullable<MobileCarrierStartPaymentInfoDTO>> =\n await props.memberRepo.putBucketContractInfo(new MemberEditContractDTO(\n bucketInfo.key,\n generateBucketContractInputInfo(),\n ))\n const validatePutBucketContractInfoResult:\n Nullable<MobileCarrierStartPaymentInfoDTO> | MBMemberError\n = checkResponseAndGetDataOrError(putBucketContractInfoResult)\n\n const changeContractByCreditCardOrConvenienceStore = (): void => {\n if (isError(validatePutBucketContractInfoResult)) {\n if (validatePutBucketContractInfoResult.message === 'OvertimeError') {\n setMobileCarrierMaintenance(true)\n return\n }\n if (validatePutBucketContractInfoResult.message === 'InvalidCreditCard') {\n props.navigator.backToEditContractInputPageCauseCreditCardError(\n locationState.bucketInfo,\n locationState.paymentMethodList,\n locationState.myCreditCardInfoList,\n locationState.contractInputInfo,\n locationState.nextContractInfo,\n )\n return\n }\n if (validatePutBucketContractInfoResult.message === 'NotFound') {\n throw new MBMemberError('SystemError')\n }\n throw validatePutBucketContractInfoResult\n }\n\n if (method === 'convenience_store') {\n props.navigator.goToEditContractCompletePage(bucketInfo, nextContractInfo.startDate)\n return\n }\n\n props.navigator.goToEditContractCompletePage(bucketInfo)\n }\n if (method === 'credit_card' || method === 'convenience_store') {\n changeContractByCreditCardOrConvenienceStore()\n return\n }\n\n const changeContractByMobileCarrier = (): void => {\n if (isError(validatePutBucketContractInfoResult)) {\n if (validatePutBucketContractInfoResult.message === 'BadRequest') {\n setErrorMessages(\n validatePutBucketContractInfoResult.errorMessageList ?? ['リクエストが不正です。'],\n )\n setProcessing(false)\n return\n }\n if (validatePutBucketContractInfoResult.message === 'OvertimeError') {\n setMobileCarrierMaintenance(true)\n return\n }\n throw validatePutBucketContractInfoResult\n }\n\n if (!putBucketContractInfoResult?.data) {\n throw new MBMemberError('ServerError')\n }\n props.navigator.goToEditContractMobileCarrierTransitionPage(\n {...putBucketContractInfoResult.data},\n )\n }\n if (method === 'mobile_carrier') {\n changeContractByMobileCarrier()\n return\n }\n\n // 期待しない支払い方法の場合はエラー\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('InvalidOperation')\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }\n\n const determineButtonLabel = locationState.contractInputInfo.method === 'mobile_carrier' ?\n '決済に進む' : '確定する'\n\n return (\n mobileCarrierMaintenance\n ? <MembersMobileCarrierMaintenancePage\n pageTitle={pageTitle}\n operationName={'お支払いに関する情報変更手続き'}\n bucketInfo={bucketInfo}\n buttonName={bucketInfo?.fcMyPageInfo.name}\n url={bucketInfo?.fcMyPageInfo.url}\n />\n :\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={bucketInfo}\n >\n\n <PageTitle>{pageTitle}</PageTitle>\n\n <StepGuide activity={'edit'} current={'confirm'}/>\n\n <ContractTermConfirmContent\n title={'次回契約単位'}\n term={contractInputInfo.term}\n contractMethod={contractInputInfo.method}\n nextContractStartDate={nextContractInfo.startDate}\n />\n\n <ContractPaymentMethodConfirm\n title={'次回契約のお支払い方法'}\n amount={contractInputInfo.amount}\n method={contractInputInfo.method}\n methodDetail={{\n paymentInputDetailWithMethod: contractInputInfo,\n myCreditCardInfoList: myCreditCardInfoList,\n maskedCardNo: tokenResponse?.tokenObject.maskedCardNo,\n }}\n />\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『{determineButtonLabel}』ボタンを押してください。\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'determine-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToEditContractCompletePage()}\n >\n {determineButtonLabel}\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => props.navigator.goBack()}>\n お支払いに関する情報変更に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {BucketInfo} from '../../../DTO/BucketInfoDTO'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {ExternalLinkButton} from '../../Atoms/Buttons'\nimport {CompleteMessageContent} from '../../Components/CompleteContentBlocks/CompleteMessageContent'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\n\ntype MembersEditContractCompletePageProps = {\n navigator: NavigatorForMemberPage\n}\n\ntype MembersEditContractCompletePageLocationState = {\n bucketInfo: BucketInfo\n nextContractStartDate?: string\n}\nexport const MembersEditContractCompletePage: React.VFC<MembersEditContractCompletePageProps> = (\n {\n navigator,\n },\n) => {\n const location = useLocation<MembersEditContractCompletePageLocationState>()\n const locationState: MembersEditContractCompletePageLocationState = location.state\n\n const handleCvsSelectLinkClick = useCallback((): void => {\n navigator.goToEditContractInfoPage(locationState.bucketInfo.key)\n }, [navigator, locationState])\n\n const isInvalidLocationState = (\n locationState: MembersEditContractCompletePageLocationState,\n ): boolean => {\n if (!locationState) {\n return true\n }\n if (!locationState.bucketInfo.fcMyPageInfo.url) {\n return true\n }\n return false\n }\n\n if (isInvalidLocationState(location.state)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n return (\n <MembersPageTemplate\n hideFooterNavi={true}\n bucketInfo={locationState.bucketInfo}\n >\n\n <PageTitle>お支払いに関する情報変更完了</PageTitle>\n\n <StepGuide activity={'edit'} current={'complete'}/>\n\n <CompleteMessageContent\n title={'次回契約のお支払いに関する情報'}\n topMessage={'次回のお支払いに関する情報'}\n nextContractStartDate={locationState.nextContractStartDate}\n onCvsSelectLinkClick={(): void => handleCvsSelectLinkClick()}\n />\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <ExternalLinkButton\n label={`${locationState.bucketInfo.fcMyPageInfo.name ?? ''}に移動する`}\n url={locationState.bucketInfo.fcMyPageInfo.url}\n />\n </PIMPageActions>\n </Spacer>\n\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback} from 'react'\nimport {Logout} from '../../../../Common/Components/Logout'\nimport {membersMsalInstance} from '../../../Auth/members-msa'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {useLocation} from 'react-router-dom'\nimport {useMsal} from '@azure/msal-react'\n\ntype MembersAuthLogoutPageProps = {\n to?: string\n}\nexport const MembersAuthLogoutPage: React.VFC<MembersAuthLogoutPageProps> = ({to}) => {\n const throwMBError = useMBMemberError()\n const {search} = useLocation()\n const {inProgress} = useMsal()\n const toUrl = to ?? (new URLSearchParams(search).get('to') ?? '/account')\n const replaceLocation = toUrl\n ? useCallback((): void => location.replace(toUrl), [toUrl])\n : undefined\n\n const logoutUrl = process.env.REACT_APP_MEMBER_LOGOUT_URL ?? '/logout'\n if (logoutUrl !== '/logout') {\n const redirTo = toUrl.startsWith('/') ? window.location.origin + toUrl : toUrl\n window.location.href = logoutUrl.replace(\"{}\", encodeURIComponent(redirTo))\n return null\n }\n\n return <>\n <Logout\n msalInstance={membersMsalInstance}\n navigate={replaceLocation}\n throwMBError={throwMBError}\n postLogoutRedirectUri={toUrl}\n inProgress={inProgress}\n />\n </>\n}\n","export class MemberVerifyIdentityDTO {\n mail: string\n\n constructor(mail: string) {\n this.mail = mail\n }\n}\n","import React, {useCallback, useState} from 'react'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {MailAddressFormContent} from '../../Components/InputContentBlocks/MailAddressFormContent'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MemberVerifyIdentityDTO} from '../../../DTO/MemberVerifyIdentityDTO'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {validateMemberMailInput} from '../../../Utils/Validations/ValidateMembersMailInput'\nimport {animateScroll} from 'react-scroll'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {useTranslation} from 'react-i18next'\n\ntype ErrorState = {\n hasErrors: boolean\n inputErrors: string[]\n errorMessages: string[]\n}\n\ntype MembersVerifyIdentityProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport const MembersVerifyIdentityPage: React.VFC<MembersVerifyIdentityProps> = (props) => {\n const {t} = useTranslation('member')\n const [mail, setMail] = useState('')\n const [mailValidateError, setMailValidateError] = useState<ErrorState>({\n hasErrors: false,\n inputErrors: [],\n errorMessages: [],\n })\n const [processing, setProcessing] = useState<boolean>(false)\n\n const throwMBMemberError = useMBMemberError()\n\n const handleSendButtonClick = useCallback(async (): Promise<void> => {\n setProcessing(true)\n setMailValidateError({\n hasErrors: false,\n inputErrors: [],\n errorMessages: [],\n })\n\n const validationResult = validateMemberMailInput({mail: mail}, true)\n\n if (validationResult.hasError) {\n setMailValidateError({\n hasErrors: validationResult.hasError,\n inputErrors: validationResult.errors.mail,\n errorMessages: [],\n })\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n\n try {\n const postResult = await props.memberRepo.postVerifyIdentityMail(\n new MemberVerifyIdentityDTO(mail),\n )\n switch (postResult.status) {\n case CommonResponseStatus.Ok:\n props.navigator.goToMembersVerifiedIdentityPage()\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setMailValidateError({\n hasErrors: true,\n inputErrors: [],\n errorMessages: postResult.errorMessageList,\n })\n break\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [mail])\n\n return (\n <MembersPageTemplate>\n <PageTitle>{'パスワード再設定用メールアドレス入力'}</PageTitle>\n\n <InputErrorSummary display={mailValidateError.hasErrors}/>\n\n <MailAddressFormContent\n title={'本人確認メールアドレス入力'}\n topMessage={t('パスワード再設定用メールアドレス入力.本人確認メールアドレス入力.説明')}\n note={[t('パスワード再設定用メールアドレス入力.本人確認メールアドレス入力.注記 メール受信設定')]}\n inputLabel={t('パスワード再設定用メールアドレス入力.本人確認メールアドレス入力.ラベル メールアドレス')}\n inputValue={mail}\n hasErrors={mailValidateError.hasErrors}\n errorMessages={[...mailValidateError.inputErrors, ...mailValidateError.errorMessages]}\n onMailAddressChange={(mailAddress: string): void => {\n setMail(mailAddress)\n }}\n onMailAddressBlur={(mailAddress: string): void => {\n setMail(mailAddress)\n }}\n />\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>\n 『送信する』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'send-button'}\n disabled={processing}\n onClick={(): Promise<void> => handleSendButtonClick()}\n >\n 送信する\n </PIMSubmitButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {SendConfirmMailContent} from '../../Components/CompleteContentBlocks/SendConfirmMailContent'\nimport {useTranslation} from 'react-i18next'\n\nexport const MembersSendMailForVerificationIdentityPage: React.VFC = () => {\n const {t} = useTranslation('member')\n return (\n <MembersPageTemplate>\n <PageTitle>{'パスワード再設定用メール送信完了'}</PageTitle>\n\n <SendConfirmMailContent\n title={'メール送信完了'}\n topMessage={'パスワード再設定用メールを送信しました。\\n' +\n '届いたメールのワンタイムURLからパスワードの再設定を行ってください。\\n' +\n 'メールに記載されているURLの有効期限は3時間となっています。'}\n note={[\n t('パスワード再設定用メール送信完了.注記 有効メールアドレス'),\n t('パスワード再設定用メール送信完了.注記 メール受信設定'),\n ]}\n dataTestId=\"block-send-confirm-mail\"\n />\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\n\ntype MemberPasswordResetRedirectPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport const MemberResetPasswordRedirectPage: React.VFC<MemberPasswordResetRedirectPageProps> = (\n props,\n) => {\n const {oneTimeToken} = useParams<{ oneTimeToken: string }>()\n\n const resultGetVerifyIdentityInfo = useAsync(async () => {\n return await props.memberRepo.getVerifyIdentityInfo(oneTimeToken)\n })\n\n if (resultGetVerifyIdentityInfo.loading) {\n return <></>\n }\n\n if (resultGetVerifyIdentityInfo.error) {\n throw new MBMemberError('ServerError')\n }\n\n if (!resultGetVerifyIdentityInfo.value) {\n throw new MBMemberError('UnknownError')\n }\n\n switch (resultGetVerifyIdentityInfo.value.status) {\n case CommonResponseStatus.Ok:\n if (!resultGetVerifyIdentityInfo.value.data) {\n throw new MBMemberError('ServerError')\n }\n props.navigator.goToResetPasswordInputPage(\n oneTimeToken,\n {\n mail: resultGetVerifyIdentityInfo.value.data.mail,\n name: resultGetVerifyIdentityInfo.value.data.name,\n agreementList: resultGetVerifyIdentityInfo.value.data.agreementList,\n },\n )\n break\n case CommonResponseStatus.NotFound:\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.Forbidden:\n throw new MBMemberError('InvalidOneTimeUrl')\n case CommonResponseStatus.InternalServerError:\n throw new MBMemberError('ServerError')\n default:\n throw new MBMemberError('UnknownError')\n }\n\n return null\n}\n","import React from 'react'\nimport {MemberVerifyIdentityInfo} from '../../../../DTO/MemberVerifyIdentityInfoDTO'\nimport {ContentBlock} from '../../../Molecules/BaseContentBlocks/ContentBlock'\nimport {ContentTitle} from '../../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBContentBodyTypography, MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {ColumnFlexContainer} from '../../../Atoms/Containers'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {useTranslation} from 'react-i18next'\n\ntype MemberRegisterInfoContentProps = {\n memberInfo: MemberVerifyIdentityInfo\n}\nexport const ConfirmRegistrationContent: React.VFC<MemberRegisterInfoContentProps> = (props) => {\n const {t} = useTranslation('member')\n\n return (\n <ContentBlock data-testid={'block-confirm-registration'}>\n <ContentTitle>{t('パスワード再設定.登録情報.見出し')}</ContentTitle>\n <ContentTopMessage>{t('パスワード再設定.登録情報.説明')}</ContentTopMessage>\n <Spacer>\n <Spacer mb={'18px'}>\n <MBContentBodyDivider/>\n </Spacer>\n <ColumnFlexContainer gap={'10px'}>\n <MBContentSubTitleTypography>お名前</MBContentSubTitleTypography>\n <MBContentBodyTypography>{`${props.memberInfo.name} さん`}</MBContentBodyTypography>\n </ColumnFlexContainer>\n <Spacer my={'18px'}>\n <MBContentBodyDivider/>\n </Spacer>\n <ColumnFlexContainer gap={'10px'}>\n <MBContentSubTitleTypography>\n {t('パスワード再設定.登録情報.ラベル メールアドレス')}\n </MBContentSubTitleTypography>\n <MBContentBodyTypography>{props.memberInfo.mail}</MBContentBodyTypography>\n </ColumnFlexContainer>\n <Spacer mt={'18px'}>\n <MBContentBodyDivider/>\n </Spacer>\n </Spacer>\n </ContentBlock>\n )\n}\n","export class MemberResetPasswordDTO {\n password: string\n agreementIdCheckedList: number[]\n\n constructor(password: string, agreementIdCheckedList: number[]) {\n this.password = password\n this.agreementIdCheckedList = agreementIdCheckedList\n }\n}\n","import React, {useCallback, useMemo, useState} from 'react'\nimport {MemberVerifyIdentityInfo} from '../../../DTO/MemberVerifyIdentityInfoDTO'\nimport {useLocation} from 'react-router-dom'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ConfirmRegistrationContent} from './Components/ConfirmRegistrationContent'\nimport {PasswordInputContent} from '../../Components/InputContentBlocks/PasswordInputContent'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {validateMemberPasswordsInput} from '../../../Utils/Validations/ValidateMembersPasswordInput'\nimport {animateScroll} from 'react-scroll'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport {AgreementCheckBoxContentBlock} from '../../Components/InputContentBlocks/AgreementCheckBoxContentBlock'\nimport {MembersAgreementList} from '../../Ecosystems/MembersAgreement'\nimport {validateAgreeCheck} from '../../../Utils/Validations/MembersValidation'\nimport AgreementDTO from '../../../DTO/AgreementDTO'\nimport {MemberResetPasswordDTO} from '../../../DTO/MemberResetPasswordDTO'\n\ntype MemberResetPasswordInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\n\ntype MemberResetPasswordInputPageLocationState = {\n oneTimeToken: string\n memberInfo: MemberVerifyIdentityInfo\n}\n\ntype State = {\n password: string\n agreedIdList: number[]\n}\n\ntype ErrorState = {\n isInputError: boolean\n passwordErrors: string[]\n agreeCheckErrors: string[]\n}\n\nexport const MemberResetPasswordInputPage: React.VFC<MemberResetPasswordInputPageProps> = (\n {navigator, memberRepo},\n) => {\n const locationState = useLocation<MemberResetPasswordInputPageLocationState>().state\n\n const [state, setState] = useState<State>({password: '', agreedIdList: []})\n const [showPasswordChecked, setShowPasswordChecked] = useState(false)\n const [processing, setProcessing] = useState<boolean>(false)\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false, passwordErrors: [], agreeCheckErrors: [],\n })\n const [showAgreement, setShowAgreement] = useState(false)\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n\n const throwMBMemberError = useMBMemberError()\n\n const agreementList = useMemo(() => (\n locationState?.memberInfo?.agreementList ?? []).map(json => AgreementDTO.fromJSON(json),\n ), [locationState, locationState?.memberInfo, locationState?.memberInfo?.agreementList])\n\n const handlePasswordInputChange = useCallback(\n (password: string) => setState(prevState => ({...prevState, password})), [])\n const handleResetPasswordButtonClicked = useCallback(async (): Promise<void> => {\n setShowPasswordChecked(false)\n setProcessing(true)\n\n const {password, agreedIdList} = state\n\n const agreeCheckErrors = validateAgreeCheck(agreedIdList)\n const passwordValidateResult = validateMemberPasswordsInput({password: password})\n if (agreeCheckErrors.length !== 0 || passwordValidateResult.hasError) {\n setProcessing(false)\n setErrorState(prevState => ({\n ...prevState,\n isInputError: true,\n passwordErrors: passwordValidateResult.errors.password,\n agreeCheckErrors,\n }))\n animateScroll.scrollToTop()\n return\n }\n\n try {\n const resultPutResetPassword = await memberRepo.putResetPassword(\n locationState.oneTimeToken,\n new MemberResetPasswordDTO(password, agreedIdList),\n )\n\n switch (resultPutResetPassword.status) {\n case CommonResponseStatus.Ok:\n navigator.goToResetPasswordCompletePage()\n break\n case CommonResponseStatus.BadRequest:\n setProcessing(false)\n setErrorMessages(resultPutResetPassword.errorMessageList)\n animateScroll.scrollToTop()\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.Forbidden:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('InvalidOneTimeUrl')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [memberRepo, navigator, state.password, state.agreedIdList, locationState.oneTimeToken])\n\n const handleOpenAgreementButtonClicked = useCallback((): void => {\n if (processing) return\n setShowAgreement(true)\n }, [processing])\n const handleAgreeButtonClicked = useCallback((agreedIdList: number[]): void => {\n setState(prevState => ({...prevState, agreedIdList}))\n setErrorState(prevState => ({...prevState, agreeCheckErrors: validateAgreeCheck(agreedIdList)}))\n setShowAgreement(false)\n window.scrollTo(0, 0)\n }, [])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {password} = state\n const {isInputError, passwordErrors, agreeCheckErrors} = errorState\n\n return (\n <MembersPageTemplate>\n {showAgreement\n ? <MembersAgreementList\n agreementList={agreementList}\n pageTitle={'利用規約'}\n onAgreeClick={handleAgreeButtonClicked}\n onDisagreeClick={handleAgreeButtonClicked}/>\n : <>\n <PageTitle>パスワード再設定</PageTitle>\n\n <InputErrorSummary display={isInputError}/>\n\n <ConfirmRegistrationContent memberInfo={locationState.memberInfo}/>\n\n <PIMStack alignItems={'center'} spacing={2}>\n <AgreementCheckBoxContentBlock\n agreedIdList={state.agreedIdList}\n agreeCheckErrors={agreeCheckErrors}\n onClick={handleOpenAgreementButtonClicked}\n />\n\n <PasswordInputContent\n title={'パスワードの再設定'}\n topMessage={'再設定するパスワードを入力してください。'}\n showRequiredBadge={false}\n password={password}\n onChange={handlePasswordInputChange}\n passwordErrors={passwordErrors}\n defaultShowPasswordChecked={showPasswordChecked}\n onCheckboxChange={(checked: boolean): void => setShowPasswordChecked(checked)}\n />\n </PIMStack>\n\n <MessageForAction>上記の内容に間違いがなければ<br/>『パスワードを再設定する』ボタンを押してください。</MessageForAction>\n\n <ErrorDisplay errors={errorMessages}/>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'reset-password-button'}\n disabled={processing}\n onClick={(): Promise<void> => handleResetPasswordButtonClicked()}\n >\n パスワードを再設定する\n </PIMSubmitButton>\n </PIMPageActions>\n </>}\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (\n locationState: MemberResetPasswordInputPageLocationState,\n): boolean => !locationState\n || Object.values(locationState).some(value => value === undefined)\n || Object.values(locationState.memberInfo).some(value => value === undefined)\n || locationState.memberInfo.agreementList.length === 0\n","import React, {useCallback} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\n\ntype MemberResetPasswordCompletePageProps = {\n navigator: NavigatorForMemberPage\n}\nexport const MemberResetPasswordCompletePage: React.VFC<MemberResetPasswordCompletePageProps> = (\n props,\n) => {\n const handleGoToAccountTopPageButtonClick = useCallback(() => {\n props.navigator.goToAccountTopPage()\n }, [props.navigator])\n\n return (\n <MembersPageTemplate>\n <PageTitle>パスワード再設定完了</PageTitle>\n\n <ContentBlock data-testid={'block-reset-password-complete'}>\n <ContentTitle>パスワード再設定完了</ContentTitle>\n <ContentTopMessage>\n {'パスワード再設定が完了しました。\\n設定したパスワードでログインしてください。'}\n </ContentTopMessage>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={handleGoToAccountTopPageButtonClick}>\n ログインページに移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useEffect} from 'react'\nimport {Spacer} from '../../../Common/Components/Spacer'\nimport {MembersPageAuthTemplate} from '../Components/MembersPageAuthTemplate'\nimport {NavigatorForMemberPage} from '../../Navigator/NavigatorForMemberPage'\nimport {ColumnFlexContainer} from '../Atoms/Containers'\nimport {MBContentBodyItemTypography} from '../Atoms/Typographies'\nimport {LinkButton} from '../Atoms/Buttons'\nimport {Color} from '../Styles'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersRedirectPageProps = {\n navigator: NavigatorForMemberPage\n}\nexport const MembersRedirectPage: React.VFC<MembersRedirectPageProps> = ({navigator}) => {\n const {t} = useTranslation('member')\n\n useEffect(() => {\n const timeoutId = setTimeout(() => navigator.goToAccountTopPage(), 10 * 1000)\n return () => {\n clearTimeout(timeoutId)\n }\n }, [navigator])\n\n return (\n <MembersPageAuthTemplate>\n <Spacer mt={'24px'}>\n <ColumnFlexContainer textAlign={'center'} gap={3}>\n <MBContentBodyItemTypography>リダイレクト中です。</MBContentBodyItemTypography>\n <div>\n <MBContentBodyItemTypography>10秒後に自動で画面遷移します。</MBContentBodyItemTypography>\n <MBContentBodyItemTypography>画面遷移しない場合は、以下のURLより移動してください。</MBContentBodyItemTypography>\n <LinkButton\n color={Color.LinkButton}\n onClick={(): void => {\n navigator.goToAccountTopPage()\n }}\n >\n {t('MYアカウント.ページ名')}\n </LinkButton>\n </div>\n </ColumnFlexContainer>\n </Spacer>\n </MembersPageAuthTemplate>\n )\n}\n","import {useMemo} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {Nullable} from '../../../Common/TypeHelper'\n\nexport const UrlQueryParams = {\n status: {\n ok: 'OK',\n canceled: 'Canceled',\n paymentSystemError: 'Payment System Error',\n },\n}\n\nexport const useQuery = (param: keyof typeof UrlQueryParams): Nullable<string> => {\n const {search} = useLocation()\n\n const query = useMemo(() => new URLSearchParams(search), [search])\n\n return query.get(param)\n}\n","import React, {useCallback, useEffect} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport MemberAgreementRepo from '../../../Repo/MemberAgreementRepo'\nimport {ConvenienceStoreInfo, CreditCardInfo, MobileCarrierKey} from '../../../Props/ContractInputInfo'\nimport {UrlQueryParams, useQuery} from '../../Hooks/UseQuery'\n\ntype MembersSignupResultPageProps = {\n navigator: NavigatorForMemberPage\n repo: MemberRepo\n memberAgreementRepo: MemberAgreementRepo\n}\nexport const MembersSignupResultPage: React.VFC<MembersSignupResultPageProps> = (props) => {\n const {temporaryEnrollmentId} = useParams<{ temporaryEnrollmentId: string }>()\n\n const status = useQuery('status')\n if (!status) {\n throw new MBMemberError('SystemError')\n }\n\n const throwMBMemberError = useMBMemberError()\n\n const goToSignupRegisterPage = useCallback(async () => {\n try {\n const resultGetSignupResult = await props.repo.getSignupComplete(temporaryEnrollmentId)\n\n switch (resultGetSignupResult.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n if (!resultGetSignupResult.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n props.navigator.goToMembersRegisteredPageForMobileCarrier(\n resultGetSignupResult.data.memberInfo,\n resultGetSignupResult.data.signboard,\n resultGetSignupResult.data.bucketMemberIdList,\n resultGetSignupResult.data.contractInfo,\n )\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n\n\n }, [props.repo, temporaryEnrollmentId])\n\n const goToSignupInputPage = useCallback(async () => {\n try {\n const resultGetSignupPreRegisterInfo =\n await props.repo.getSignupPreRegisterInfo(temporaryEnrollmentId)\n\n switch (resultGetSignupPreRegisterInfo.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n if (!resultGetSignupPreRegisterInfo || !resultGetSignupPreRegisterInfo.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n const {\n contractInfo, extendMetaData: extendMetaDataInputInfo, ...preRegisterMemberInfo\n } = resultGetSignupPreRegisterInfo.data\n const invitationId = preRegisterMemberInfo.invitationId\n\n const resultGetInvitationInfo =\n await props.repo.getInvitationInfo(invitationId)\n\n switch (resultGetInvitationInfo.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n if (!resultGetInvitationInfo || !resultGetInvitationInfo.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n const {mail, signboard, paymentMethodList, extendMetaData} = resultGetInvitationInfo.data\n const signupKey = signboard.signupKey\n\n const resultGetAgreementList =\n await props.memberAgreementRepo.get(signupKey)\n\n switch (resultGetAgreementList.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n if (!resultGetAgreementList || !resultGetAgreementList.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n const agreementList = resultGetAgreementList.data.map((agreement) => agreement.id)\n\n const {enrollmentReason, ...restMemberInfo} = preRegisterMemberInfo\n\n props.navigator.backToMembersSignupInputPageCauseMobileCarrierError(\n {\n mail: mail,\n agreedIdList: agreementList,\n password: '',\n enrollmentReasonSelectedInfo: enrollmentReason,\n ...restMemberInfo,\n },\n signboard,\n paymentMethodList,\n {\n term: contractInfo.contractTerm,\n method: contractInfo.paymentMethod,\n amount: 0,\n creditCard: {\n creditCardType: 'newCard',\n newCreditCardInfo: {\n cardNumber: '',\n expireMonth: '',\n expireYear: '',\n holderName: '',\n securityCode: '',\n },\n myCreditCardInfo: {selectedCardId: '', securityCodeMap: []},\n } as CreditCardInfo,\n mobileCarrier: {carrierKey: contractInfo.paymentMethodDetail as MobileCarrierKey},\n convenienceStore: {convenienceStoreKey: ''} as ConvenienceStoreInfo,\n },\n extendMetaData,\n extendMetaDataInputInfo,\n )\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [props.repo, props.memberAgreementRepo, temporaryEnrollmentId])\n\n useEffect(() => {\n switch (status) {\n case UrlQueryParams.status.ok:\n goToSignupRegisterPage()\n break\n case UrlQueryParams.status.canceled:\n goToSignupInputPage()\n break\n default:\n throw new MBMemberError('SystemError')\n }\n }, [status])\n\n return null\n}\n","import React, {useCallback, useEffect} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {MobileCarrierStartPaymentInfo} from '../../../DTO/MobileCarrierStartPaymentInfoDTO'\n\ntype LocationState = {\n mobileCarrierStartPaymentInfo: MobileCarrierStartPaymentInfo\n}\nexport const MembersMobileCarrierTransitionPage: React.VFC = () => {\n const location = useLocation<LocationState>()\n const locationState: LocationState = location.state\n\n const {startURL, accessID, token} = locationState.mobileCarrierStartPaymentInfo\n\n const form = document.createElement('form')\n\n useEffect(() => {\n form.action = startURL\n form.method = 'POST'\n form.setAttribute('data-testid', 'form-post-carrier-payment-info')\n\n form.innerHTML = `<input type=hidden name=AccessID value=${accessID} data-testid=input-access-id> <input type=hidden name=Token value=${token} data-testid=input-token>`\n\n document.body.append(form)\n\n postMobileCarrierPaymentInfo()\n }, [form, locationState.mobileCarrierStartPaymentInfo])\n\n const postMobileCarrierPaymentInfo = useCallback((): void => {\n form.submit()\n }, [])\n\n\n return null\n}\n","import React, {useCallback, useEffect} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport MemberAgreementRepo from '../../../Repo/MemberAgreementRepo'\nimport {ConvenienceStoreInfo, CreditCardInfo, MobileCarrierKey} from '../../../Props/ContractInputInfo'\nimport {UrlQueryParams, useQuery} from '../../Hooks/UseQuery'\n\ntype MembersJoinResultPageProps = {\n navigator: NavigatorForMemberPage\n repo: MemberRepo\n memberAgreementRepo: MemberAgreementRepo\n}\nexport const MembersJoinResultPage: React.VFC<MembersJoinResultPageProps> = (props) => {\n const {temporaryEnrollmentId} = useParams<{ temporaryEnrollmentId: string }>()\n\n const status = useQuery('status')\n if (!status) {\n throw new MBMemberError('SystemError')\n }\n\n const throwMBMemberError = useMBMemberError()\n\n const goToJoinCompletePage = useCallback(async () => {\n try {\n const resultGetBelongToBucketComplete =\n await props.repo.getBelongToBucketComplete(temporaryEnrollmentId)\n\n switch (resultGetBelongToBucketComplete.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n if (!resultGetBelongToBucketComplete.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n props.navigator.goToJoinCompletePage(\n {\n mail: resultGetBelongToBucketComplete.data.memberInfo.mail,\n familyName: resultGetBelongToBucketComplete.data.memberInfo.familyName,\n firstName: resultGetBelongToBucketComplete.data.memberInfo.firstName,\n familyNameKana: '', firstNameKana: '',\n gender: null,\n birthday: '',\n postCode: '',\n addressPrefectureCode: '', addressCity: '', addressStreet: '', addressBuilding: '',\n phoneMobile: '', phoneTel: '',\n agreedIdList: [],\n mailMagazineIdCheckedList: [],\n enrollmentReasonSelectedInfo: undefined,\n },\n resultGetBelongToBucketComplete.data.signboard,\n resultGetBelongToBucketComplete.data.bucketMemberIdList,\n resultGetBelongToBucketComplete.data.contractInfo,\n )\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [props.repo, temporaryEnrollmentId])\n\n const goToJoinInputPage = useCallback(async () => {\n try {\n const resultGetJoinPreRegisterInfo =\n await props.repo.getJoinPreRegisterInfo(temporaryEnrollmentId)\n\n switch (resultGetJoinPreRegisterInfo.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n if (!resultGetJoinPreRegisterInfo || !resultGetJoinPreRegisterInfo.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n const signupKey = resultGetJoinPreRegisterInfo.data.signupKey\n\n const resultGetAgreementList =\n await props.memberAgreementRepo.get(signupKey)\n\n switch (resultGetAgreementList.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('NotFound')\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n if (!resultGetAgreementList || !resultGetAgreementList.data) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n const agreementList = resultGetAgreementList.data.map((agreement) => agreement.id)\n const mailMagazineIdCheckedList = resultGetJoinPreRegisterInfo.data.mailMagazineIdCheckedList\n const contractInfo = resultGetJoinPreRegisterInfo.data.contractInfo\n const enrollmentReason = resultGetJoinPreRegisterInfo.data.enrollmentReason\n\n props.navigator.backToMembersJoinInputPageCauseMobileCarrierError(\n signupKey,\n {\n term: contractInfo.contractTerm,\n method: contractInfo.paymentMethod,\n amount: 0,\n creditCard: {\n creditCardType: 'newCard',\n newCreditCardInfo: {\n cardNumber: '',\n expireMonth: '',\n expireYear: '',\n holderName: '',\n securityCode: '',\n },\n myCreditCardInfo: {\n selectedCardId: '',\n securityCodeMap: [],\n },\n } as CreditCardInfo,\n convenienceStore: {convenienceStoreKey: ''} as ConvenienceStoreInfo,\n mobileCarrier: {carrierKey: contractInfo.paymentMethodDetail as MobileCarrierKey},\n },\n agreementList,\n mailMagazineIdCheckedList,\n enrollmentReason,\n )\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n }, [props.repo, props.memberAgreementRepo, temporaryEnrollmentId])\n\n useEffect(() => {\n switch (status) {\n case UrlQueryParams.status.ok:\n goToJoinCompletePage()\n break\n case UrlQueryParams.status.canceled:\n goToJoinInputPage()\n break\n default:\n throw new MBMemberError('SystemError')\n }\n }, [status])\n\n return null\n}\n","import React from 'react'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../../Atoms/Badges'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {FlexContainer} from '../../../Atoms/Containers'\nimport {MBMemberInput} from '../../../Atoms/MBMemberInput'\nimport {MBAddressSearchButton} from '../../../Atoms/Buttons'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {MBMemberSelect} from '../../../Atoms/MBMemberSelect'\nimport {ADDRESS} from '../../../../../Common/Constants'\nimport {SearchPostCode} from '../../../../../Common/SearchPostCode'\nimport {ShippingOnlyAddress} from '../../../../DTO/MemberShippingAddressDTO'\nimport {convertOnBlur} from '../../../../Utils/ConvertOnBlur'\nimport {useTranslation} from 'react-i18next'\n\nexport type InputMode = 'signup' | 'edit'\n\nexport type AddressErrors = {\n postCodeErrors: string[]\n addressPrefectureCodeErrors: string[]\n addressCityErrors: string[]\n addressStreetErrors: string[]\n addressBuildingErrors: string[]\n}\n\nexport type ShippingAddressProps = {\n activity: InputMode\n searchPostCode: SearchPostCode\n address: ShippingOnlyAddress\n addressErrors: AddressErrors\n onChange: (address: ShippingOnlyAddress) => void\n}\nexport const ShippingAddressInputs: React.VFC<ShippingAddressProps> = (\n {\n activity,\n searchPostCode,\n address,\n addressErrors,\n onChange,\n },\n) => {\n const {t} = useTranslation('member')\n const updateAddress = (\n name: string,\n value: string,\n address: ShippingOnlyAddress\n ): ShippingOnlyAddress => ({\n ...address,\n [name]: value,\n })\n\n const handleChangeInput = (\n e: React.ChangeEvent<HTMLInputElement>,\n address: ShippingOnlyAddress,\n ): ShippingOnlyAddress => {\n const {name, value} = e.target\n return updateAddress(name, value, address)\n }\n\n const handleChangeSelect = (\n e: React.ChangeEvent<HTMLSelectElement>,\n address: ShippingOnlyAddress,\n ): ShippingOnlyAddress => {\n const {name, value} = e.target\n return updateAddress(name, value, address)\n }\n\n const handleBlurInput = (\n e: React.FocusEvent<HTMLInputElement>,\n address: ShippingOnlyAddress\n ): ShippingOnlyAddress => {\n const {name, value} = e.target\n return updateAddress(name, convertOnBlur(name, value), address)\n }\n\n const settingPostCode = (address: ShippingOnlyAddress): void => {\n if (address.postCode.length !== 7) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchPostCode.search(address.postCode, (searchAddress: any) => {\n const regionId = searchAddress.region_id.toString()\n address = {\n ...address,\n addressPrefectureCode: (regionId) ? regionId.padStart(2, '0') : '',\n addressCity: `${searchAddress.locality}${searchAddress.street}`,\n }\n if (activity === 'edit') {\n address = {\n ...address,\n addressStreet: '',\n addressBuilding: '',\n }\n }\n onChange(address)\n })\n }\n\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <div data-testid={'form-post-code'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"post-code-input\">\n <MBContentSubTitleTypography>郵便番号</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <FlexContainer alignItems={'center'} justifyContent={'flex-start'} gap={'9px'}>\n <MBMemberInput\n type=\"tel\"\n name=\"postCode\"\n autoComplete=\"postal-code\"\n value={address.postCode}\n className=\"form-text_01 w_120px mr_10\"\n id=\"post-code-input\"\n placeholder=\"例)1234567\"\n hasError={addressErrors.postCodeErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <MBAddressSearchButton\n onClick={(): void => {\n settingPostCode(address)\n }}\n />\n </FlexContainer>\n <ErrorDisplay errors={addressErrors.postCodeErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-prefecture'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-prefecture-select\">\n <MBContentSubTitleTypography>都道府県</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberSelect\n id=\"address-prefecture-select\"\n name=\"addressPrefectureCode\"\n autoComplete=\"address-level1\"\n value={address.addressPrefectureCode}\n width={'60%'}\n hasError={addressErrors.addressPrefectureCodeErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeSelect(e, address),\n )\n }}\n >\n <option className=\"placeholder\" value=\"\" hidden>選択してください</option>\n {Object.keys(ADDRESS.PREFECTURES).sort().map(code => (\n <option key={code} value={code}>{ADDRESS.PREFECTURES[code]}</option>),\n )}\n </MBMemberSelect>\n <ErrorDisplay errors={addressErrors.addressPrefectureCodeErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-city'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-city-input\">\n <MBContentSubTitleTypography>市区町村</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressCity\"\n autoComplete=\"address-level2\"\n value={address.addressCity}\n className=\"form-text_01 w_100\"\n id=\"address-city-input\"\n placeholder={t('入力フォームプレースホルダ.住所.市区町村')}\n hasError={addressErrors.addressCityErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressCityErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-street'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"address-street-input\">\n <MBContentSubTitleTypography>以降の住所</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressStreet\"\n autoComplete=\"address-line1\"\n value={address.addressStreet}\n className=\"form-text_01 w_100 pc100\"\n id=\"address-street-input\"\n placeholder={t('入力フォームプレースホルダ.住所.以降の住所')}\n hasError={addressErrors.addressStreetErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressStreetErrors}/>\n </Spacer>\n </div>\n\n <div data-testid={'form-address-building'}>\n <label htmlFor=\"address-building-input\">\n <MBContentSubTitleTypography>建物・部屋</MBContentSubTitleTypography>\n </label>\n <Spacer mt={'10px'}>\n <MBMemberInput\n type=\"text\"\n name=\"addressBuilding\"\n autoComplete=\"address-line2\"\n value={address.addressBuilding || ''}\n className=\"form-text_01 w_100 pc100\"\n id=\"address-building-input\"\n placeholder={t('入力フォームプレースホルダ.住所.建物・部屋')}\n hasError={addressErrors.addressBuildingErrors.length > 0}\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, address),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, address),\n )\n }}\n />\n <ErrorDisplay errors={addressErrors.addressBuildingErrors}/>\n </Spacer>\n </div>\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {AddressErrors, ShippingAddressInputs, InputMode} from './ShippingAddressInputs'\nimport {SearchPostCode} from '../../../../../Common/SearchPostCode'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../../Atoms/Typographies'\nimport {MBRequiredBadge} from '../../../Atoms/Badges'\nimport {ErrorDisplay} from '../../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {Spacer} from '../../../../../Common/Components/Spacer'\nimport {MBMemberInput} from '../../../Atoms/MBMemberInput'\nimport {FlexContainer} from '../../../Atoms/Containers'\nimport {ShippingAddress} from '../../../../DTO/MemberShippingAddressDTO'\nimport {MemberNameInputs} from '../MemberNameInputs'\nimport {convertOnBlur} from '../../../../Utils/ConvertOnBlur'\nimport {useTranslation} from 'react-i18next'\n\nexport type ShippingAddressErrors = AddressErrors & {\n familyNameErrors: string[],\n firstNameErrors: string[],\n familyNameKanaErrors: string[],\n firstNameKanaErrors: string[],\n phoneErrors: string[]\n}\n\ntype ShippingAddressInputContentsProps = {\n activity: InputMode\n searchPostCode: SearchPostCode\n shippingAddress: ShippingAddress\n shippingAddressErrors: ShippingAddressErrors\n onChange: (shippingAddress: ShippingAddress) => void\n}\n\nexport const ShippingAddressInputContents: React.VFC<ShippingAddressInputContentsProps> = (\n {\n activity,\n searchPostCode,\n shippingAddress,\n shippingAddressErrors,\n onChange,\n },\n) => {\n const {t} = useTranslation('member')\n\n const updateAddress = (\n name: string,\n value: string,\n shippingAddress: ShippingAddress,\n ): ShippingAddress => ({\n ...shippingAddress,\n [name]: value,\n })\n\n const handleChangeInput = (\n e: React.ChangeEvent<HTMLInputElement>,\n shippingAddress: ShippingAddress,\n ): ShippingAddress => {\n const {\n name,\n value,\n } = e.target\n return updateAddress(name, value, shippingAddress)\n }\n\n const handleBlurInput = (\n e: React.FocusEvent<HTMLInputElement>,\n shippingAddress: ShippingAddress,\n ): ShippingAddress => {\n const {name, value} = e.target\n return updateAddress(name, convertOnBlur(name, value), shippingAddress)\n }\n\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n phone,\n } = shippingAddress\n const {\n familyNameErrors, firstNameErrors,\n familyNameKanaErrors, firstNameKanaErrors,\n phoneErrors,\n } = shippingAddressErrors\n\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n testId={'block-shipping-address-form'}\n >\n <MemberNameInputs\n memberName={{familyName, firstName, familyNameKana, firstNameKana}}\n memberNameErrors={\n {familyNameErrors, firstNameErrors, familyNameKanaErrors, firstNameKanaErrors}\n }\n onMemberNameChange={(memberName): void =>\n onChange({\n ...shippingAddress,\n ...memberName,\n })\n }\n />\n\n <ShippingAddressInputs\n activity={activity}\n searchPostCode={searchPostCode}\n address={shippingAddress}\n addressErrors={shippingAddressErrors}\n onChange={(address): void =>\n onChange({\n ...address,\n familyName: familyName,\n firstName: firstName,\n familyNameKana: familyNameKana,\n firstNameKana: firstNameKana,\n phone: phone,\n })\n }\n />\n\n <div data-testid={'form-phone'}>\n <PIMStack direction={'row'} alignItems={'center'} spacing={'6px'}>\n <label htmlFor=\"phone-input\">\n <MBContentSubTitleTypography>電話番号</MBContentSubTitleTypography>\n </label>\n <MBRequiredBadge/>\n </PIMStack>\n <Spacer mt={'10px'} mb={'12px'}>\n <FlexContainer alignItems={'center'} justifyContent={'flex-start'} gap={'9px'}>\n <MBMemberInput\n type=\"tel\"\n name=\"phone\"\n autoComplete=\"tel\"\n value={phone}\n className=\"form-text_01 w_100\"\n id=\"phone-input\"\n placeholder={t('入力フォームプレースホルダ.電話番号.携帯')}\n hasError={\n phoneErrors.length > 0\n }\n onChange={(e): void => {\n onChange(\n handleChangeInput(e, shippingAddress),\n )\n }}\n onBlur={(e): void => {\n onChange(\n handleBlurInput(e, shippingAddress),\n )\n }}\n />\n </FlexContainer>\n <ErrorDisplay errors={phoneErrors}/>\n </Spacer>\n </div>\n </PIMStack>\n )\n}\n","import {\n validateAddressBuilding,\n validateShippingAddressCity,\n validateShippingAddressPrefectureCode,\n validateShippingAddressStreet,\n validateFamilyName,\n validateFamilyNameKana,\n validateFirstName,\n validateFirstNameKana,\n validatePhone,\n validatePostCode,\n} from './MembersValidation'\nimport {ValidationSignupInput} from './ValidateMembersSignupInput'\nimport {ValidationAddressInput} from './ValidateMembersAddressInput'\n\nexport type ValidationShippingAddressInput =\n Pick<ValidationSignupInput,\n 'familyName' | 'firstName'\n | 'familyNameKana' | 'firstNameKana'> &\n Pick<ValidationAddressInput,\n 'postCode'\n | 'addressPrefectureCode' | 'addressCity' | 'addressStreet' | 'addressBuilding'> & {\n phone: string\n}\n\nexport type ValidateShippingAddressResultDetail = {\n [K in keyof ValidationShippingAddressInput]: string[]\n}\n\nexport type ValidationShippingAddressResult = {\n hasError: boolean\n errors: ValidateShippingAddressResultDetail\n}\n\nexport const validateShippingAddressInput = (\n input: ValidationShippingAddressInput,\n): ValidationShippingAddressResult => {\n const details: ValidateShippingAddressResultDetail = {\n familyName: validateFamilyName(input.familyName),\n firstName: validateFirstName(input.firstName),\n familyNameKana: validateFamilyNameKana(input.familyNameKana),\n firstNameKana: validateFirstNameKana(input.firstNameKana),\n postCode: validatePostCode(input.postCode),\n addressPrefectureCode: validateShippingAddressPrefectureCode(input.addressPrefectureCode),\n addressCity: validateShippingAddressCity(input.addressCity),\n addressStreet: validateShippingAddressStreet(input.addressStreet),\n addressBuilding: validateAddressBuilding(input.addressBuilding),\n phone: validatePhone(input.phone),\n }\n\n const hasError = Object.values(details)\n .map(errorArray => errorArray.length)\n .some(length => length > 0)\n\n return {\n hasError: hasError,\n errors: details,\n }\n}\n","import React, {useCallback, useState} from 'react'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {\n ShippingAddressErrors,\n ShippingAddressInputContents,\n} from '../../Components/InputContentBlocks/AddressInputs/ShippingAddressInputContents'\nimport {SearchPostCode} from '../../../../Common/SearchPostCode'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {MBContentSubTitleTypography} from '../../Atoms/Typographies'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {useLocation} from 'react-router-dom'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {ShippingAddress} from '../../../DTO/MemberShippingAddressDTO'\nimport {\n validateShippingAddressInput,\n ValidationShippingAddressInput,\n} from '../../../Utils/Validations/ValidationShippingAddressInput'\nimport {animateScroll} from 'react-scroll'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useAsync} from 'react-use'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {checkAsyncStateAndGetDataOrError, isError} from '../../../Utils/MemberResponseStatusCheck'\n\ntype MembersShippingAddressNewInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n searchPostCode: SearchPostCode\n}\n\ntype ErrorState = ShippingAddressErrors & {\n isInputError: boolean\n}\n\nexport const MembersShippingAddressInputPage: React.VFC<MembersShippingAddressNewInputPageProps>\n = (\n {\n navigator,\n memberRepo,\n searchPostCode,\n },\n) => {\n const location = useLocation<ShippingAddress>()\n const locationState = location.state\n\n const [state, setState] = useState<ShippingAddress>({\n familyName: locationState?.familyName ?? '',\n firstName: locationState?.firstName ?? '',\n familyNameKana: locationState?.familyNameKana ?? '',\n firstNameKana: locationState?.firstNameKana ?? '',\n postCode: locationState?.postCode ?? '',\n addressPrefectureCode: locationState?.addressPrefectureCode ?? '',\n addressCity: locationState?.addressCity ?? '',\n addressStreet: locationState?.addressStreet ?? '',\n addressBuilding: locationState?.addressBuilding ?? '',\n phone: locationState?.phone ?? '',\n })\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n familyNameErrors: [],\n firstNameErrors: [],\n familyNameKanaErrors: [],\n firstNameKanaErrors: [],\n postCodeErrors: [],\n addressPrefectureCodeErrors: [],\n addressCityErrors: [],\n addressStreetErrors: [],\n addressBuildingErrors: [],\n phoneErrors: [],\n })\n\n const [processing, setProcessing] = useState<boolean>(false)\n\n const goToShippingAddressInputConfirmPage = useCallback(() => {\n setProcessing(true)\n\n const inputForValidation: ValidationShippingAddressInput = {\n ...state,\n familyName: state.familyName.trim(),\n firstName: state.firstName.trim(),\n familyNameKana: state.familyNameKana.trim(),\n firstNameKana: state.firstNameKana.trim(),\n postCode: state.postCode.trim(),\n addressPrefectureCode: state.addressPrefectureCode.trim(),\n addressCity: state.addressCity.trim(),\n addressStreet: state.addressStreet.trim(),\n addressBuilding: state.addressBuilding?.trim() ?? '',\n phone: state.phone.trim(),\n }\n setState(prevState => ({\n ...prevState,\n ...inputForValidation,\n }))\n\n const validationResult = validateShippingAddressInput(inputForValidation)\n if (validationResult.hasError) {\n setErrorState({\n isInputError: true,\n familyNameErrors: validationResult.errors.familyName,\n firstNameErrors: validationResult.errors.firstName,\n familyNameKanaErrors: validationResult.errors.familyNameKana,\n firstNameKanaErrors: validationResult.errors.firstNameKana,\n postCodeErrors: validationResult.errors.postCode,\n addressPrefectureCodeErrors: validationResult.errors.addressPrefectureCode,\n addressCityErrors: validationResult.errors.addressCity,\n addressStreetErrors: validationResult.errors.addressStreet,\n addressBuildingErrors: validationResult.errors.addressBuilding,\n phoneErrors: validationResult.errors.phone,\n })\n\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n\n navigator.goToShippingAddressInputConfirmPage(state)\n }, [navigator, state, errorState, processing])\n\n\n const goToAccountInformationPage = useCallback((): void => {\n navigator.goToAccountInformationPage()\n }, [navigator])\n\n const resultGetShippingAddressList = useAsync(async () => {\n return await memberRepo.getShippingAddressList()\n })\n\n if (!locationState) {\n if (resultGetShippingAddressList.loading) {\n return null\n }\n\n const shippingAddress = checkAsyncStateAndGetDataOrError(resultGetShippingAddressList)\n if (isError(shippingAddress)) {\n throw shippingAddress\n }\n if (shippingAddress.length > 0) {\n throw new MBMemberError('SystemError')\n }\n }\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報入力</PageTitle>\n\n <InputErrorSummary display={errorState.isInputError}/>\n\n <StepGuide activity={'signup'} current={'enter'}/>\n\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: '商品配送先情報入力'}}\n testId={'block-form'}\n >\n <PIMStack\n divider={<MBContentBodyDivider/>}\n spacing={'18px'}\n >\n <MBContentSubTitleTypography>商品配送先情報を入力してください。</MBContentSubTitleTypography>\n\n <ShippingAddressInputContents\n activity={'signup'}\n searchPostCode={searchPostCode}\n shippingAddress={state}\n shippingAddressErrors={errorState}\n onChange={(shippingAddress): void => {\n setState((prevState) => {\n return {\n ...prevState,\n ...shippingAddress,\n }\n })\n }}\n />\n\n </PIMStack>\n </PIMCard>\n </PIMStack>\n\n <Spacer mt={'16px'}>\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『登録内容の確認に進む』ボタンを押してください。\n </MessageForAction>\n </Spacer>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-changes-button'}\n disabled={processing}\n onClick={(): void => {\n goToShippingAddressInputConfirmPage()\n }}\n >\n 登録内容の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountInformationPage}>\n 登録情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n )\n}\n","import React from 'react'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\nimport {formatPostCode} from '../../../../../Common/Components/PostCodeInformation'\nimport {ADDRESS} from '../../../../../Common/Constants'\nimport {ShippingOnlyAddress} from '../../../../DTO/MemberShippingAddressDTO'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\n\nexport const ShippingAddressConfirms: React.VFC<ShippingOnlyAddress> = (\n {\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n },\n) => {\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <ConfirmContent\n label={'郵便番号'} values={[formatPostCode(postCode) || '']}\n testDataId={'confirm-content-post-code'}\n />\n <ConfirmContent\n label={'都道府県'} values={[ADDRESS.PREFECTURES[addressPrefectureCode]]}\n testDataId={'confirm-content-address-prefecture'}\n />\n <ConfirmContent\n label={'市区町村'} values={[addressCity]}\n testDataId={'confirm-content-address-city'}\n />\n <ConfirmContent\n label={'以降の住所'} values={[addressStreet]}\n testDataId={'confirm-content-address-street'}\n />\n <ConfirmContent\n label={'建物・部屋'} values={[addressBuilding ?? '']}\n testDataId={'confirm-content-address-building'}\n />\n </PIMStack>\n )\n}\n","import React from 'react'\nimport {ShippingAddress} from '../../../../DTO/MemberShippingAddressDTO'\nimport {MBContentBodyDivider} from '../../../Atoms/Dividers'\nimport {PIMStack} from '../../../Atoms/Layouts/Bases/PIMStack'\nimport {MemberNameConfirms} from '../MemberNameConfirms'\nimport {ShippingAddressConfirms} from './ShippingAddressConfirms'\nimport {ConfirmContent} from '../../../Molecules/BaseContentBlocks/ConfirmContent'\n\nexport const ShippingAddressConfirmContents: React.VFC<ShippingAddress> = (\n {\n familyName,\n firstName,\n familyNameKana,\n firstNameKana,\n postCode,\n addressPrefectureCode,\n addressCity,\n addressStreet,\n addressBuilding,\n phone,\n },\n) => {\n return (\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n showEndDivider\n testId={'confirm-shipping-address'}\n >\n <MemberNameConfirms\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n />\n <ShippingAddressConfirms\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n />\n <ConfirmContent\n label={'電話番号'} values={[phone]}\n testDataId={'confirm-content-phone'}\n />\n </PIMStack>\n )\n}\n","import React, {useCallback, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport H from 'history'\nimport {useLocation} from 'react-router-dom'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MemberShippingAddressDTO, ShippingAddress} from '../../../DTO/MemberShippingAddressDTO'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {ShippingAddressConfirmContents} from '../../Components/ConfirmContentBlocks/AddressConfirms/ShippingAddressConfirmContents'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {useMBMemberErrorUnknown} from '../../Hooks/UseMBMemberError'\nimport {animateScroll} from 'react-scroll'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {checkResponseAndGetDataOrError, isError} from '../../../Utils/MemberResponseStatusCheck'\n\ntype MembersShippingAddressInputConfirmPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport const MembersShippingAddressInputConfirmPage:\n React.VFC<MembersShippingAddressInputConfirmPageProps> = (\n {\n navigator,\n memberRepo,\n },\n) => {\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location: H.Location<ShippingAddress> = useLocation<ShippingAddress>()\n const locationState: ShippingAddress = location.state\n\n const throwMBMemberError = useMBMemberErrorUnknown()\n\n const goToShippingAddressInputCompletePage = useCallback(async (): Promise<void> => {\n setProcessing(true)\n try {\n const resultPostShippingAddress = await memberRepo.postShippingAddress(\n new MemberShippingAddressDTO(\n locationState.familyName,\n locationState.firstName,\n locationState.familyNameKana,\n locationState.firstNameKana,\n locationState.postCode,\n locationState.addressPrefectureCode,\n locationState.addressCity,\n locationState.addressStreet,\n locationState.addressBuilding,\n locationState.phone,\n ),\n )\n const checkStatus = checkResponseAndGetDataOrError(resultPostShippingAddress)\n if (checkStatus === null) {\n navigator.goToShippingAddressInputCompletePage()\n return\n }\n\n if (isError(checkStatus) && checkStatus.message === 'BadRequest') {\n setProcessing(false)\n setErrorMessages(resultPostShippingAddress.errorMessageList)\n animateScroll.scrollToTop()\n } else if (isError(checkStatus) && checkStatus.message === 'Conflict') {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('InvalidOperation')\n } else {\n // noinspection ExceptionCaughtLocallyJS\n throw checkStatus\n }\n\n } catch (e) {\n throwMBMemberError(e)\n }\n }, [memberRepo, navigator, locationState, processing])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phone,\n } = locationState\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報確認</PageTitle>\n\n <StepGuide activity={'signup'} current={'confirm'}/>\n\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: '商品配送先情報'}}\n testId={'block-confirms'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <ContentTopMessage>登録はまだ完了していません。<br/>下記内容を確認してください。</ContentTopMessage>\n\n <ShippingAddressConfirmContents\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n phone={phone}\n />\n\n </PIMStack>\n </PIMCard>\n </PIMStack>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『確定・登録する』ボタンを押してください。\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'determine-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToShippingAddressInputCompletePage()}\n >\n 確定・登録する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => navigator.goBack()}>\n 商品配送先情報入力に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (locationState: ShippingAddress): boolean => {\n if (!locationState) {\n return true\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {addressBuilding, ...rest} = locationState\n return Object.values(rest).some(value => value === undefined)\n}\n","import React, {useCallback} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersShippingAddressInputCompletePageProps = {\n navigator: NavigatorForMemberPage\n}\nexport const MembersShippingAddressInputCompletePage:\n React.VFC<MembersShippingAddressInputCompletePageProps> = (\n {\n navigator,\n },\n) => {\n const {t} = useTranslation('member')\n\n const goToAccountTopPage = useCallback((): void => {\n navigator.goToAccountTopPage()\n }, [navigator])\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報登録完了</PageTitle>\n\n <StepGuide activity={'signup'} current={'complete'}/>\n\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>商品配送先情報登録完了</ContentTitle>\n <Spacer mb={'16px'}>\n <ContentTopMessage>\n 商品配送先情報登録を行いました。<br/>\n ご登録されているメールアドレスに完了通知を送信しました。\n </ContentTopMessage>\n </Spacer>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n {t('MYアカウント.ページ名')}に移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback, useEffect, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {SearchPostCode} from '../../../../Common/SearchPostCode'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {PIMCardNoTopMessage} from '../../Atoms/Cards/PIMCard'\nimport {\n ShippingAddressErrors,\n ShippingAddressInputContents,\n} from '../../Components/InputContentBlocks/AddressInputs/ShippingAddressInputContents'\nimport {ShippingAddressInfo} from '../../../DTO/MemberShippingAddressDTO'\nimport {useAsync} from 'react-use'\nimport {checkAsyncStateAndGetData} from '../../../Utils/MemberResponseStatusCheck'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useLocation, useParams} from 'react-router-dom'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {\n validateShippingAddressInput,\n ValidationShippingAddressInput,\n} from '../../../Utils/Validations/ValidationShippingAddressInput'\nimport {animateScroll} from 'react-scroll'\nimport {InputErrorSummary} from '../../Molecules/ErrorsAndAlert/ErrorSummary/InputErrorSummary'\n\ntype MembersEditShippingAddressInputPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n searchPostCode: SearchPostCode\n}\n\ntype ErrorState = ShippingAddressErrors & {\n isInputError: boolean\n}\n\nexport const MembersEditShippingAddressInputPage:\n React.VFC<MembersEditShippingAddressInputPageProps> = (\n {\n navigator,\n memberRepo,\n searchPostCode,\n },\n) => {\n const {shippingAddressId} = useParams<{ shippingAddressId: string }>()\n const numShippingAddressId = Number(shippingAddressId)\n if (isNaN(numShippingAddressId)) {\n throw new MBMemberError('SystemError')\n }\n\n const location = useLocation<ShippingAddressInfo>()\n const locationState: ShippingAddressInfo = location.state\n\n const [state, setState] = useState<ShippingAddressInfo>({\n shippingAddressId: locationState?.shippingAddressId ?? 0,\n familyName: locationState?.familyName ?? '',\n firstName: locationState?.firstName ?? '',\n familyNameKana: locationState?.familyNameKana ?? '',\n firstNameKana: locationState?.firstNameKana ?? '',\n postCode: locationState?.postCode ?? '',\n addressPrefectureCode: locationState?.addressPrefectureCode ?? '',\n addressCity: locationState?.addressCity ?? '',\n addressStreet: locationState?.addressStreet ?? '',\n addressBuilding: locationState?.addressBuilding ?? '',\n phone: locationState?.phone ?? '',\n })\n\n const [errorState, setErrorState] = useState<ErrorState>({\n isInputError: false,\n familyNameErrors: [],\n firstNameErrors: [],\n familyNameKanaErrors: [],\n firstNameKanaErrors: [],\n postCodeErrors: [],\n addressPrefectureCodeErrors: [],\n addressCityErrors: [],\n addressStreetErrors: [],\n addressBuildingErrors: [],\n phoneErrors: [],\n })\n\n const [processing, setProcessing] = useState<boolean>(false)\n\n const goToEditShippingAddressConfirmPage = useCallback(async (): Promise<void> => {\n setProcessing(true)\n\n const inputForValidation: ValidationShippingAddressInput = {\n ...state,\n familyName: state.familyName.trim(),\n firstName: state.firstName.trim(),\n familyNameKana: state.familyNameKana.trim(),\n firstNameKana: state.firstNameKana.trim(),\n postCode: state.postCode.trim(),\n addressPrefectureCode: state.addressPrefectureCode.trim(),\n addressCity: state.addressCity.trim(),\n addressStreet: state.addressStreet.trim(),\n addressBuilding: state.addressBuilding?.trim() ?? '',\n phone: state.phone.trim(),\n }\n setState(prevState => ({\n ...prevState,\n ...inputForValidation,\n }))\n\n const validationResult = validateShippingAddressInput(inputForValidation)\n if (validationResult.hasError) {\n setErrorState({\n isInputError: true,\n familyNameErrors: validationResult.errors.familyName,\n firstNameErrors: validationResult.errors.firstName,\n familyNameKanaErrors: validationResult.errors.familyNameKana,\n firstNameKanaErrors: validationResult.errors.firstNameKana,\n postCodeErrors: validationResult.errors.postCode,\n addressPrefectureCodeErrors: validationResult.errors.addressPrefectureCode,\n addressCityErrors: validationResult.errors.addressCity,\n addressStreetErrors: validationResult.errors.addressStreet,\n addressBuildingErrors: validationResult.errors.addressBuilding,\n phoneErrors: validationResult.errors.phone,\n })\n\n setProcessing(false)\n animateScroll.scrollToTop()\n return\n }\n\n navigator.goToEditShippingAddressConfirmPage(state)\n }, [navigator, state, errorState])\n\n const goToAccountInformationPage = useCallback((): void => {\n navigator.goToAccountInformationPage()\n }, [navigator])\n\n const resultGetShippingAddressList = useAsync(async () => {\n return await memberRepo.getShippingAddressList()\n })\n\n useEffect(() => {\n if (locationState) {\n return\n }\n\n if (resultGetShippingAddressList.loading\n || !resultGetShippingAddressList.value\n || !resultGetShippingAddressList.value.data) {\n return\n }\n\n const shippingAddressList = resultGetShippingAddressList.value.data\n const shippingAddress =\n shippingAddressList?.find(\n shippingAddress => shippingAddress.shippingAddressId === numShippingAddressId,\n )\n if (!shippingAddress) {\n throw new MBMemberError('NotFound')\n }\n\n setState((prevState) => ({\n ...prevState,\n shippingAddressId: shippingAddress.shippingAddressId,\n familyName: shippingAddress.familyName,\n firstName: shippingAddress.firstName,\n familyNameKana: shippingAddress.familyNameKana,\n firstNameKana: shippingAddress.firstNameKana,\n postCode: shippingAddress.postCode,\n addressPrefectureCode: shippingAddress.addressPrefectureCode,\n addressCity: shippingAddress.addressCity,\n addressStreet: shippingAddress.addressStreet,\n addressBuilding: shippingAddress.addressBuilding,\n phone: shippingAddress.phone,\n }))\n }, [resultGetShippingAddressList])\n\n if (!locationState) {\n if (resultGetShippingAddressList.loading) {\n return null\n }\n\n const shippingAddressList = checkAsyncStateAndGetData(resultGetShippingAddressList)\n const isShippingAddress =\n shippingAddressList?.some(\n shippingAddress => shippingAddress.shippingAddressId === numShippingAddressId,\n )\n if (!isShippingAddress) {\n return null\n }\n }\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報変更入力</PageTitle>\n\n <InputErrorSummary display={errorState.isInputError}/>\n\n <StepGuide activity={'edit'} current={'enter'}/>\n\n <PIMStack alignItems={'center'}>\n <PIMCardNoTopMessage\n headerProps={{title: '商品配送先情報変更'}}\n testId={'block-form'}\n >\n <PIMStack\n divider={<MBContentBodyDivider/>}\n spacing={'18px'}\n >\n <ShippingAddressInputContents\n activity={'edit'}\n searchPostCode={searchPostCode}\n shippingAddress={state}\n shippingAddressErrors={errorState}\n onChange={(shippingAddress): void => {\n setState((prevState) => {\n return {\n ...prevState,\n ...shippingAddress,\n }\n })\n }}\n />\n </PIMStack>\n </PIMCardNoTopMessage>\n </PIMStack>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『変更内容の確認に進む』ボタンを押してください。\n </MessageForAction>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'confirm-changes-button'}\n disabled={processing}\n onClick={goToEditShippingAddressConfirmPage}\n >\n 変更内容の確認に進む\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={goToAccountInformationPage}>\n 登録情報に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback, useState} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport H from 'history'\nimport {\n MemberShippingAddressInfoDTO,\n ShippingAddress,\n ShippingAddressInfo,\n} from '../../../DTO/MemberShippingAddressDTO'\nimport {useLocation} from 'react-router-dom'\nimport {PIMCard} from '../../Atoms/Cards/PIMCard'\nimport {PIMStack} from '../../Atoms/Layouts/Bases/PIMStack'\nimport {MBContentBodyDivider} from '../../Atoms/Dividers'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ShippingAddressConfirmContents} from '../../Components/ConfirmContentBlocks/AddressConfirms/ShippingAddressConfirmContents'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {MessageForAction} from '../../Molecules/BaseMembersPages/MessageForAction'\nimport {PIMSubmitButton} from '../../Atoms/Buttons/Bases/PIMSubmitButton'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useMBMemberErrorUnknown} from '../../Hooks/UseMBMemberError'\nimport {animateScroll} from 'react-scroll'\nimport {ErrorDisplay} from '../../Molecules/ErrorsAndAlert/ErrorDisplay'\nimport {checkResponseAndGetDataOrError, isError} from '../../../Utils/MemberResponseStatusCheck'\n\ntype MembersEditShippingAddressConfirmPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport const MembersEditShippingAddressConfirmPage:\n React.VFC<MembersEditShippingAddressConfirmPageProps> = (\n {\n navigator,\n memberRepo,\n },\n) => {\n const [errorMessages, setErrorMessages] = useState<string[]>([])\n const [processing, setProcessing] = useState<boolean>(false)\n\n const location: H.Location<ShippingAddressInfo> = useLocation<ShippingAddressInfo>()\n const locationState: ShippingAddressInfo = location.state\n\n const throwMBMemberError = useMBMemberErrorUnknown()\n\n const goToEditShippingAddressCompletePage = useCallback(async () => {\n setProcessing(true)\n try {\n const resultPutShippingAddress = await memberRepo.putShippingAddress(\n new MemberShippingAddressInfoDTO(\n locationState.shippingAddressId,\n locationState.familyName,\n locationState.firstName,\n locationState.familyNameKana,\n locationState.firstNameKana,\n locationState.postCode,\n locationState.addressPrefectureCode,\n locationState.addressCity,\n locationState.addressStreet,\n locationState.addressBuilding,\n locationState.phone,\n ),\n )\n const checkStatus = checkResponseAndGetDataOrError(resultPutShippingAddress)\n if (checkStatus === null) {\n navigator.goToEditShippingAddressCompletePage(locationState.shippingAddressId)\n return\n }\n\n if (isError(checkStatus) && checkStatus.message === 'BadRequest') {\n setProcessing(false)\n setErrorMessages(resultPutShippingAddress.errorMessageList)\n animateScroll.scrollToTop()\n } else if (isError(checkStatus) && checkStatus.message === 'NotFound') {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n } else {\n // noinspection ExceptionCaughtLocallyJS\n throw checkStatus\n }\n } catch (e) {\n throwMBMemberError(e)\n }\n }, [navigator, memberRepo, locationState])\n\n if (isInvalidLocationState(locationState)) {\n throw new MBMemberError('InvalidOperation')\n }\n\n const {\n familyName, firstName,\n familyNameKana, firstNameKana,\n postCode,\n addressPrefectureCode, addressCity, addressStreet, addressBuilding,\n phone,\n } = locationState\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報変更確認</PageTitle>\n\n <StepGuide activity={'edit'} current={'confirm'}/>\n\n <PIMStack alignItems={'center'}>\n <PIMCard\n headerProps={{title: '商品配送先情報'}}\n testId={'block-confirms'}\n >\n <PIMStack\n spacing={'18px'}\n divider={<MBContentBodyDivider/>}\n >\n <ContentTopMessage>変更はまだ完了していません。<br/>下記内容を確認してください。</ContentTopMessage>\n\n <ShippingAddressConfirmContents\n postCode={postCode}\n addressPrefectureCode={addressPrefectureCode}\n addressCity={addressCity}\n addressStreet={addressStreet}\n addressBuilding={addressBuilding}\n familyName={familyName}\n firstName={firstName}\n familyNameKana={familyNameKana}\n firstNameKana={firstNameKana}\n phone={phone}\n />\n\n </PIMStack>\n </PIMCard>\n </PIMStack>\n\n <MessageForAction>\n 上記の内容に間違いがなければ<br/>『確定する』ボタンを押してください。\n </MessageForAction>\n\n <PIMStack alignItems={'center'}>\n <ErrorDisplay errors={errorMessages}/>\n </PIMStack>\n\n <PIMPageActions>\n <PIMSubmitButton\n testId={'determine-button'}\n disabled={processing}\n onClick={(): Promise<void> => goToEditShippingAddressCompletePage()}\n >\n 確定する\n </PIMSubmitButton>\n <PIMSecondaryButton onClick={(): void => navigator.goBack()}>\n 商品配送先情報変更入力に戻る\n </PIMSecondaryButton>\n </PIMPageActions>\n\n </MembersPageTemplate>\n )\n}\n\nconst isInvalidLocationState = (locationState: ShippingAddress): boolean => {\n if (!locationState) {\n return true\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {addressBuilding, ...rest} = locationState\n return Object.values(rest).some(value => value === undefined)\n}\n","import React, {useCallback} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport {MembersPageTemplate} from '../../Molecules/BaseMembersPages/MembersPageTemplate'\nimport {PageTitle} from '../../Molecules/BaseMembersPages/PageTitle'\nimport StepGuide from '../../Molecules/StepGuide/StepGuide'\nimport {ContentTitle} from '../../Molecules/BaseContentBlocks/ContentTitle'\nimport {Spacer} from '../../../../Common/Components/Spacer'\nimport {ContentTopMessage} from '../../Molecules/BaseContentBlocks/ContentTopMessage'\nimport {ContentBlock} from '../../Molecules/BaseContentBlocks/ContentBlock'\nimport {PIMPageActions} from '../../Atoms/Layouts/PIMPageActions'\nimport {PIMSecondaryButton} from '../../Atoms/Buttons/Bases/PIMSecondaryButton'\nimport {useTranslation} from 'react-i18next'\n\ntype MembersEditShippingAddressCompletePageProps = {\n navigator: NavigatorForMemberPage\n}\nexport const MembersEditShippingAddressCompletePage:\n React.VFC<MembersEditShippingAddressCompletePageProps> = (\n {\n navigator,\n },\n) => {\n const {t} = useTranslation('member')\n\n const goToAccountTopPage = useCallback((): void => {\n navigator.goToAccountTopPage()\n }, [navigator])\n\n return (\n <MembersPageTemplate>\n <PageTitle>商品配送先情報変更完了</PageTitle>\n\n <StepGuide activity={'edit'} current={'complete'}/>\n\n <ContentBlock data-testid={'block-notification'}>\n <ContentTitle>商品配送先情報変更完了</ContentTitle>\n <Spacer mb={'16px'}>\n <ContentTopMessage>\n 商品配送先情報変更を行いました。<br/>\n ご登録されているメールアドレスに完了通知を送信しました。\n </ContentTopMessage>\n </Spacer>\n </ContentBlock>\n\n <Spacer mt={'30px'}>\n <PIMPageActions>\n <PIMSecondaryButton onClick={goToAccountTopPage}>\n {t('MYアカウント.ページ名')}に移動する\n </PIMSecondaryButton>\n </PIMPageActions>\n </Spacer>\n </MembersPageTemplate>\n )\n}\n","import React, {useCallback, useEffect} from 'react'\nimport {NavigatorForMemberPage} from '../../../Navigator/NavigatorForMemberPage'\nimport MemberRepo from '../../../Repo/MemberRepo'\nimport {useParams} from 'react-router-dom'\nimport {CommonResponseStatus} from '../../../../Network/CommonResponse'\nimport {MBMemberError} from '../../../Common/MBMemberError'\nimport {useMBMemberError} from '../../Hooks/UseMBMemberError'\nimport {UrlQueryParams, useQuery} from '../../Hooks/UseQuery'\n\ntype MembersSignupResultPageProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n}\nexport const MembersEditContractResultPage: React.VFC<MembersSignupResultPageProps> = (\n {\n navigator,\n memberRepo,\n },\n) => {\n const {temporaryEnrollmentId} = useParams<{ temporaryEnrollmentId: string }>()\n\n const status = useQuery('status')\n if (!status) {\n throw new MBMemberError('SystemError')\n }\n\n const throwMBMemberError = useMBMemberError()\n\n const goToEditContractCompletePage = useCallback(async () => {\n try {\n const resultGetEditContractResult =\n await memberRepo.getEditContractResult(temporaryEnrollmentId)\n\n switch (resultGetEditContractResult.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n if (!resultGetEditContractResult.data?.bucketInfo) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n navigator.goToEditContractCompletePage(\n {...resultGetEditContractResult.data.bucketInfo},\n )\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n\n }, [memberRepo, temporaryEnrollmentId])\n\n const backToEditContractInputPage = useCallback(async () => {\n try {\n const resultGetEditContractResult =\n await memberRepo.getEditContractResult(temporaryEnrollmentId)\n\n switch (resultGetEditContractResult.status) {\n case CommonResponseStatus.Ok:\n break\n case CommonResponseStatus.NotFound:\n case CommonResponseStatus.InternalServerError:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('ServerError')\n default:\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('UnknownError')\n }\n\n if (!resultGetEditContractResult.data || !resultGetEditContractResult.data.bucketInfo) {\n // noinspection ExceptionCaughtLocallyJS\n throw new MBMemberError('SystemError')\n }\n\n navigator.backToEditContractInputPageCauseMobileCarrierError(\n resultGetEditContractResult.data.bucketInfo,\n {\n term: resultGetEditContractResult.data.term,\n method: resultGetEditContractResult.data.method,\n amount: 0,\n creditCard: resultGetEditContractResult.data.creditCard,\n mobileCarrier: resultGetEditContractResult.data.mobileCarrier,\n convenienceStore: resultGetEditContractResult.data.convenienceStore,\n },\n )\n\n } catch (e) {\n const errorMessage = e instanceof Error ? e.message : 'SystemError'\n throwMBMemberError(errorMessage)\n }\n\n }, [memberRepo, temporaryEnrollmentId])\n\n useEffect(() => {\n switch (status) {\n case UrlQueryParams.status.ok:\n goToEditContractCompletePage()\n break\n case UrlQueryParams.status.canceled:\n backToEditContractInputPage()\n break\n default:\n throw new MBMemberError('SystemError')\n }\n }, [status])\n\n return null\n}\n","import React, {useEffect} from 'react'\nimport './Members/View/StyleGuide/members/index.scss'\nimport {NavigatorForMemberPage} from './Members/Navigator/NavigatorForMemberPage'\nimport MemberRepo from './Members/Repo/MemberRepo'\nimport MemberAgreementRepo from './Members/Repo/MemberAgreementRepo'\nimport {SearchPostCode} from './Common/SearchPostCode'\nimport {ErrorBoundary, FallbackProps} from 'react-error-boundary'\nimport {Switch} from 'react-router-dom'\nimport {RouteWithTitle} from './Common/Components/RouteWithTitle'\nimport MembersInvitationCompletePage from './Members/View/Pages/Signup/MembersInvitationCompletePage'\nimport {MembersSignupInputConfirmPage} from './Members/View/Pages/Signup/MembersSignupInputConfirmPage'\nimport {MembersRegisteredPage} from './Members/View/Pages/Signup/MembersRegisteredPage'\nimport MembersSignupRedirectPage from './Members/View/Pages/Signup/MembersSignupRedirectPage'\nimport {MembersAccountTopPage} from './Members/View/Pages/Account/MembersAccountTopPage'\nimport {MembersAccountInformationPage} from './Members/View/Pages/Account/MembersAccountInformationPage'\nimport {MembersEditAddressInputPage} from './Members/View/Pages/EditAddress/MembersEditAddressInputPage'\nimport {MembersEditAddressConfirmPage} from './Members/View/Pages/EditAddress/MembersEditAddressConfirmPage'\nimport Members404Page from './Members/View/Pages/Error/Members404Page'\nimport {Members500Page} from './Members/View/Pages/Error/Members500Page'\nimport MembersInvalidOperationPage from './Members/View/Pages/Error/MembersInvalidOperationPage'\nimport {MembersDuplicatedRegisterPage} from './Members/View/Pages/Error/MembersDuplicatedRegisterPage'\nimport {MembersEditAddressCompletePage} from './Members/View/Pages/EditAddress/MembersEditAddressCompletePage'\nimport {MembersJoinInputPage} from './Members/View/Pages/Join/MembersJoinInputPage'\nimport {MembersEditMailInputPage} from './Members/View/Pages/EditMail/MembersEditMailInputPage'\nimport {MembersJoinInputConfirmPage} from './Members/View/Pages/Join/MembersJoinInputConfirmPage'\nimport {MembersEditMailSendCompletePage} from './Members/View/Pages/EditMail/MembersEditMailSendCompletePage'\nimport {MembersEditMailUpdatedPage} from './Members/View/Pages/EditMail/MembersEditMailUpdatedPage'\nimport {MembersEditMailRedirectPage} from './Members/View/Pages/EditMail/MembersEditMailRedirectPage'\nimport {MembersJoinCompletePage} from './Members/View/Pages/Join/MembersJoinCompletePage'\nimport MembersInvalidOneTimeUrlPage from './Members/View/Pages/Error/MembersInvalidOneTimeUrlPage'\nimport {MembersSignupInputPage} from './Members/View/Pages/Signup/MembersSignupInputPage'\nimport {MembersEditPasswordPage} from './Members/View/Pages/EditPassword/MembersEditPasswordPage'\nimport {MembersEditMailMagazineInfoPage} from './Members/View/Pages/EditMailMagazine/MembersEditMailMagazineInfoPage'\nimport {MembersEditPasswordCompletePage} from './Members/View/Pages/EditPassword/MembersEditPasswordCompletePage'\nimport {MembersEditMailMagazineInputPage} from './Members/View/Pages/EditMailMagazine/MembersEditMailMagazineInputPage'\nimport {MembersEditMailMagazineConfirmPage} from './Members/View/Pages/EditMailMagazine/MembersEditMailMagazineConfirmPage'\nimport {MembersInvitationPage} from './Members/View/Pages/Signup/MembersInvitationPage'\nimport {MembersEditMailMagazineCompletePage} from './Members/View/Pages/EditMailMagazine/MembersEditMailMagazineCompletePage'\nimport {MembersLeaveBucketInputPage} from './Members/View/Pages/Leave/MembersLeaveBucketInputPage'\nimport {MembersLeaveBucketConfirmPage} from './Members/View/Pages/Leave/MembersLeaveBucketConfirmPage'\nimport {MembersLeaveBucketCompletePage} from './Members/View/Pages/Leave/MembersLeaveBucketCompletePage'\nimport {MembersEditContractInfoPage} from './Members/View/Pages/EditContractInfo/MembersEditContractInfoPage'\nimport {MembersAuth} from './Members/Auth/MembersAuth'\nimport {MembersEditContractInputPage} from './Members/View/Pages/EditContractInfo/MembersEditContractInputPage'\nimport {MembersEditContractConfirmPage} from './Members/View/Pages/EditContractInfo/MembersEditContractConfirmPage'\nimport {MembersEditContractCompletePage} from './Members/View/Pages/EditContractInfo/MembersEditContractCompletePage'\nimport {MembersAuthLogoutPage} from './Members/View/Pages/Auth/MembersAuthLogoutPage'\nimport {MembersPageTemplate} from './Members/View/Molecules/BaseMembersPages/MembersPageTemplate'\nimport {Global} from '@emotion/react'\nimport {MemberGlobalStyles} from './Members/MemberGlobalStyles'\nimport {MembersVerifyIdentityPage} from './Members/View/Pages/ResetPassword/MembersVerifyIdentityPage'\nimport {MembersSendMailForVerificationIdentityPage} from './Members/View/Pages/ResetPassword/MembersSendMailForVerificationIdentityPage'\nimport {MemberResetPasswordRedirectPage} from './Members/View/Pages/ResetPassword/MemberResetPasswordRedirectPage'\nimport {MemberResetPasswordInputPage} from './Members/View/Pages/ResetPassword/MemberResetPasswordInputPage'\nimport {MemberResetPasswordCompletePage} from './Members/View/Pages/ResetPassword/MemberResetPasswordCompletePage'\nimport {MembersRedirectPage} from './Members/View/Pages/MembersRedirectPage'\nimport {MemberSignboardRepo} from './Members/Repo/MemberSignboardRepo'\nimport {MembersSignupResultPage} from './Members/View/Pages/Signup/MembersSignupResultPage'\nimport {MembersMobileCarrierTransitionPage} from './Members/View/Pages/MobileCarrierTransition/MembersMobileCarrierTransitionPage'\nimport {MembersJoinResultPage} from './Members/View/Pages/Join/MembersJoinResultPage'\nimport {MembersShippingAddressInputPage} from './Members/View/Pages/ShippingAddress/MembersShippingAddressInputPage'\nimport {MembersShippingAddressInputConfirmPage} from './Members/View/Pages/ShippingAddress/MembersShippingAddressInputConfirmPage'\nimport {MembersShippingAddressInputCompletePage} from './Members/View/Pages/ShippingAddress/MembersShippingAddressInputCompletePage'\nimport {MembersEditShippingAddressInputPage} from './Members/View/Pages/ShippingAddress/MembersEditShippingAddressInputPage'\nimport {MembersEditShippingAddressConfirmPage} from './Members/View/Pages/ShippingAddress/MembersEditShippingAddressConfirmPage'\nimport {MembersEditShippingAddressCompletePage} from './Members/View/Pages/ShippingAddress/MembersEditShippingAddressCompletePage'\nimport {MembersEditContractResultPage} from './Members/View/Pages/EditContractInfo/MembersEditContractResultPage'\nimport {useTranslation} from 'react-i18next'\nimport {gtm} from './index'\nimport {MembersAuthSsoLogoutPage} from \"./Members/View/Pages/Auth/MembersAuthSsoLogoutPage\";\n\nexport type AppMembersProps = {\n navigator: NavigatorForMemberPage\n memberRepo: MemberRepo\n memberSignboardRepo: MemberSignboardRepo\n memberAgreementRepo: MemberAgreementRepo\n searchPostCode: SearchPostCode\n}\n\nconst AppMembers: React.VFC<AppMembersProps> = (props) => {\n const {navigator, memberRepo, memberSignboardRepo, memberAgreementRepo, searchPostCode} = props\n\n const {t, ready} = useTranslation('member')\n if (!ready) return null\n\n document.documentElement.className = 'members-pages'\n document.body.className = 'members-pages'\n\n useEffect(() => {\n gtm(process.env.REACT_APP_GTM_CONTAINER_ID)\n gtm(process.env.REACT_APP_MNG_GTM_CONTAINER_ID)\n }, [])\n\n return (\n <>\n <Global styles={MemberGlobalStyles}/>\n <ErrorBoundary fallbackRender={(fallbackProps): JSX.Element => {\n const switchErrorPages = (fallbackProps: FallbackProps): React.ReactElement => {\n switch (fallbackProps.error?.message) {\n case 'DisagreementError':\n return <MembersAuthLogoutPage to={window.location.pathname}/>\n case 'InvalidOperation':\n document.title = t('ご案内.タイトル')\n return <MembersInvalidOperationPage/>\n case 'Conflict':\n document.title = t('ご案内.タイトル')\n return (\n <MembersDuplicatedRegisterPage\n navigator={navigator}\n onLoginButtonClick={(): void => {\n fallbackProps.resetErrorBoundary()\n }}\n />\n )\n case 'NotFound':\n document.title = t('ご案内.タイトル')\n return <Members404Page/>\n case 'InvalidOneTimeUrl':\n document.title = t('ご案内.タイトル')\n return <MembersInvalidOneTimeUrlPage/>\n case 'SystemError':\n document.title = t('エラー.タイトル')\n return <Members500Page/>\n default:\n document.title = t('エラー.タイトル')\n return <Members500Page/>\n }\n }\n return <MembersPageTemplate>\n {switchErrorPages(fallbackProps)}\n </MembersPageTemplate>\n }}>\n <Switch>\n <RouteWithTitle\n exact path=\"/:signupKey/invitation\"\n title={t('新規登録.タイトル')}\n render={(): React.ReactNode => (\n <MembersInvitationPage navigator={navigator} memberRepo={memberRepo}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/invitation/complete\"\n title={t('新規登録URL発行.タイトル')}\n render={(): React.ReactNode => (\n <MembersInvitationCompletePage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/signup/input\"\n title={t('新規登録情報入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersSignupInputPage\n navigator={navigator}\n memberRepo={memberRepo}\n memberAgreementRepo={memberAgreementRepo}\n searchPostCode={searchPostCode}\n />\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/signup/confirm\"\n title={t('新規登録情報確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersSignupInputConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/signup/registered\"\n title={t('新規登録完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersRegisteredPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/signup/:invitationId\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersSignupRedirectPage repo={memberRepo} navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/signup/payment/mobileCarrierTransition\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersMobileCarrierTransitionPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/signup/result/:temporaryEnrollmentId\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersSignupResultPage\n repo={memberRepo}\n memberAgreementRepo={memberAgreementRepo}\n navigator={navigator}\n />\n )}\n />\n\n <RouteWithTitle\n exact path=\"/account\"\n title={t('MYアカウント.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersAccountTopPage\n navigator={navigator}\n memberRepo={memberRepo}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information\"\n title={t('登録情報.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersAccountInformationPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/mail/update_input\"\n title={t('メールアドレス変更入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailInputPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/mail/send_complete\"\n title={t('メールアドレス変更URL発行.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailSendCompletePage/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/mail/change/:mailUpdateId\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailRedirectPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/mail/update_complete\"\n title={t('メールアドレス変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersEditMailUpdatedPage navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/password/update_input\"\n title={t('パスワード変更.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditPasswordPage\n navigator={navigator} memberRepo={memberRepo}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/password/update_complete\"\n title={t('パスワード変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersEditPasswordCompletePage navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/address/update\"\n title={t('連絡先情報変更入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditAddressInputPage\n navigator={navigator} memberRepo={memberRepo} searchPostCode={searchPostCode}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/address/update_confirm\"\n title={t('連絡先情報変更確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditAddressConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/address/update_complete\"\n title={t('連絡先情報変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditAddressCompletePage navigator={navigator}/>\n </MembersAuth>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/input\"\n title={t('商品配送先情報入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersShippingAddressInputPage\n navigator={navigator}\n memberRepo={memberRepo}\n searchPostCode={searchPostCode}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/input_confirm\"\n title={t('商品配送先情報確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersShippingAddressInputConfirmPage\n navigator={navigator}\n memberRepo={memberRepo}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/input_complete\"\n title={t('商品配送先情報登録完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersShippingAddressInputCompletePage\n navigator={navigator}\n />\n </MembersAuth>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/:shippingAddressId/update\"\n title={t('商品配送先情報変更入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditShippingAddressInputPage\n navigator={navigator}\n memberRepo={memberRepo}\n searchPostCode={searchPostCode}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/:shippingAddressId/update_confirm\"\n title={t('商品配送先情報変更確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditShippingAddressConfirmPage\n navigator={navigator}\n memberRepo={memberRepo}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/account/information/shipping_address/:shippingAddressId/update_complete\"\n title={t('商品配送先情報変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditShippingAddressCompletePage\n navigator={navigator}\n />\n </MembersAuth>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/:signupKey/join/input\"\n title={t('新規会員情報入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersJoinInputPage\n navigator={navigator}\n memberRepo={memberRepo}\n memberSignboardRepo={memberSignboardRepo}\n memberAgreementRepo={memberAgreementRepo}\n searchPostCode={searchPostCode}\n />\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/join/confirm\"\n title={t('新規会員情報確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersJoinInputConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:signupKey/join/complete\"\n title={t('新規入会完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersJoinCompletePage/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/join/payment/mobileCarrierTransition\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersMobileCarrierTransitionPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/join/result/:temporaryEnrollmentId\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersJoinResultPage\n repo={memberRepo}\n memberAgreementRepo={memberAgreementRepo}\n navigator={navigator}\n />\n )}\n />\n\n <RouteWithTitle\n exact path=\"/:bucketKey/mail_magazine\"\n title={t('メルマガ情報.タイトル')}\n render={(): React.ReactNode => (\n // MembersPageTemplate は MembersEditMailMagazineInfoPage戻り値に含まれている。\n // 認証情報はreturn文より前の処理、API呼び出し時に必要なためここでMemberAuthを呼び出す実装とする。\n <MembersAuth>\n <MembersEditMailMagazineInfoPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/mail_magazine/update\"\n title={t('メルマガ情報変更.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailMagazineInputPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/mail_magazine/update_confirm\"\n title={t('メルマガ情報変更確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailMagazineConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/mail_magazine/update_complete\"\n title={t('メルマガ情報変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditMailMagazineCompletePage/>\n </MembersAuth>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/:bucketKey/contract\"\n title={t('契約情報.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditContractInfoPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/contract/update\"\n title={t('お支払いに関する情報変更.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditContractInputPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/contract/update_confirm\"\n title={t('お支払いに関する情報変更確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditContractConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/contract/update_complete\"\n title={t('お支払いに関する情報変更完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersEditContractCompletePage navigator={navigator}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/contract/update/payment/mobileCarrierTransition\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersMobileCarrierTransitionPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/contract/update/result/:temporaryEnrollmentId\"\n title=\"\"\n render={(): React.ReactNode => (\n <MembersEditContractResultPage\n memberRepo={memberRepo}\n navigator={navigator}\n />\n )}\n />\n\n <RouteWithTitle\n exact path=\"/:bucketKey/leave\"\n title={t('退会.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersLeaveBucketInputPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/leave_confirm\"\n title={t('退会確認.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersLeaveBucketConfirmPage navigator={navigator} memberRepo={memberRepo}/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/:bucketKey/leave_complete\"\n title={t('退会完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuth>\n <MembersLeaveBucketCompletePage/>\n </MembersAuth>\n )}\n />\n <RouteWithTitle\n exact path=\"/password/reset/verify_identity\"\n title={t('パスワード再設定用メールアドレス入力.タイトル')}\n render={(): React.ReactNode => (\n <MembersVerifyIdentityPage navigator={navigator} memberRepo={memberRepo}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/password/reset/verified_identity\"\n title={t('パスワード再設定用メール送信完了.タイトル')}\n render={(): React.ReactNode => (\n <MembersSendMailForVerificationIdentityPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/password/reset/input\"\n title={t('パスワード再設定.タイトル')}\n render={(): React.ReactNode => (\n <MemberResetPasswordInputPage memberRepo={memberRepo} navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/password/reset/complete\"\n title={t('パスワード再設定完了.タイトル')}\n render={(): React.ReactNode => (\n <MemberResetPasswordCompletePage navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/password/reset/:oneTimeToken\"\n title=\"\"\n render={(): React.ReactNode => (\n <MemberResetPasswordRedirectPage navigator={navigator} memberRepo={memberRepo}/>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/redirect\"\n title={t('リダイレクト.タイトル')}\n render={(): React.ReactNode => (\n <MembersRedirectPage navigator={navigator}/>\n )}\n />\n <RouteWithTitle\n exact path=\"/logout\"\n title={t('ログアウト.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuthLogoutPage/>\n )}\n />\n <RouteWithTitle\n exact path=\"/sso_logout\"\n title={t('ログアウト.タイトル')}\n render={(): React.ReactNode => (\n <MembersAuthSsoLogoutPage/>\n )}\n />\n\n <RouteWithTitle\n exact path=\"/invalidUrl\"\n title={t('ご案内.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <Members404Page/>\n </MembersPageTemplate>)}\n />\n <RouteWithTitle\n exact path=\"/invalidOneTimeUrl\"\n title={t('ご案内.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <MembersInvalidOneTimeUrlPage/>\n </MembersPageTemplate>)}\n />\n <RouteWithTitle\n exact path=\"/serverError\"\n title={t('エラー.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <Members500Page/>\n </MembersPageTemplate>)}\n />\n <RouteWithTitle\n exact path=\"/invalidOperation\"\n title={t('ご案内.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <MembersInvalidOperationPage/>\n </MembersPageTemplate>)}\n />\n <RouteWithTitle\n exact path=\"/duplicatedRegister\"\n title={t('ご案内.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <MembersDuplicatedRegisterPage navigator={navigator}/>\n </MembersPageTemplate>)}\n />\n\n <RouteWithTitle\n title={t('ご案内.タイトル')}\n render={(): React.ReactNode => (<MembersPageTemplate>\n <Members404Page/>\n </MembersPageTemplate>)}\n />\n </Switch>\n </ErrorBoundary>\n </>\n )\n}\n\nexport default AppMembers\n"],"names":["ContentTitle","props","marginBottom","noMarginBottom","Spacer","mb","PIMStack","direction","alignItems","justifyContent","spacing","children","require","logoUrl","logoImgMaxHeight","logoImgMaxWidth","src","alt","mt","ContentTopMessage","note","ContentNotes","notes","length","className","map","index","note_array","split","main","shift","dangerouslySetInnerHTML","__html","item","i","ContentBlock","styled","Color","BorderedContentBlock","SendConfirmMailContent","dataTestId","logoImgUrl","title","topMessage","t","useTranslation","location","useLocation","locationState","state","signboard","signupName","isInvalidLocationState","MBMemberError","MembersPageTemplate","PageTitle","invitationId","familyName","firstName","familyNameKana","firstNameKana","gender","birthday","postCode","addressPrefectureCode","addressCity","addressStreet","addressBuilding","phoneMobile","phoneTel","password","agreementIdCheckedList","mailMagazineIdCheckedList","contractInfo","enrollmentReason","extendMetaData","StyledSpan","color","Line","MBUnorderedList","MBListItem","RegisterOrganizationContentBlock","PIMCard","headerProps","testId","pb","mainService","name","SubTitleContent","paymentInformationList","FreeBucketsBlock","some","payInfo","isFreeBucket","resultContractUnits","sort","a","b","order","paymentDisplayStringList","termName","formatPrice","contractAmount","Array","from","Set","join","getResultContractUnits","freeServices","bucket","SignedUpTypography","signedUp","id","NoticeListComponents","notices","notice","ConfirmContent","testDataId","label","values","value","valueColor","MemberNameConfirms","divider","BasicMemberInfoConfirmContents","mail","showEndDivider","message","array","Fragment","GENDER","useGmo","useState","multipayment","setMultipayment","isBrowser","useMemo","window","document","loading","setLoading","error","setError","handleLoad","useCallback","handleError","useEffect","scriptEl","createElement","addEventListener","body","appendChild","removeEventListener","useScriptElement","Multipayment","MemberFilePenIcon","icon","faFilePen","size","MemberFileCircleCheckIcon","faFileCircleCheck","MemberCircleCheckIcon","faCircleCheck","STEP_LISTS","type","StepItem","gap","disable","getDisabledIcon","stepType","getIcon","stepPropList","activity","idx","current","MessageForAction","ErrorDisplay","errors","newLineByBr","style","MemberMagnifyingGlassIcon","faMagnifyingGlass","StyledSecondaryMiniBaseButton","MBSecondaryMiniBaseButton","handleClick","e","target","blur","onClick","MBDeleteButton","StyledExternalLinkButton","ExternalLinkButton","href","url","LinkButton","fontSize","lineHeight","StyledSearchButton","MBSearchButton","MBAddressSearchButton","ContractTermConfirmContent","term","contractMethod","nextContractStartDate","my","ContractTermContent","ContractTermLabel","ContractDurationContent","startDate","endDate","nextContractEndDate","now","Date","dayjs","format","ContractTermNoteContent","PAYMENT","displayLabel","getSubscriptionLabel","method","endOf","add","cmsDomain","process","subNotes","findAmountByTermAndMethod","paymentMethodList","foundPaymentMethod","find","amount","DisplayCreditCardExpireDate","expireDate","makeStringCreditCardExpireDate","expireMonth","expireYear","Number","getDefaultSecurityCodeMapForMyCreditCard","myCreditCardInfoList","myCreditCardInfo","cardId","securityCode","findSecurityCodeByCardIdForValidation","myCreditCardInputInfo","securityCodeMap","selectedCardId","generateContractTermLabelAndValueList","reduce","accumulator","push","displayCardNumber","selectedMyCardId","tokenResponseCardNumber","selectedMyCardInfo","cardNumber","findSelectedCardExpireDate","cardType","newCardExpireDate","ErrorMessageForInvalidCard","isInvalidCardError","getContractMethodsByTerm","paymentList","payment","filter","payMethod","StyledSelect","hasError","rest","width","MBMemberSelect","DEFAULT_COLOR","StyledDiv","fontRemSize","bold","PIMBaseLabel","PIMWarningMessages","messages","convenienceStoreList","convenienceStoreKey","convenienceStoreKeyToName","key","cvs","ConvenienceStoreInputComponent","convenienceStoreInfoState","convenienceStoreInputInfo","handleChangeSelect","convenienceStoreInfo","updateConvenienceStoreInfo","ml","htmlFor","maxWidth","errorMessage","convenienceStoreErrors","onChange","onChangeInputDetailInfo","hidden","disabled","ContractPaymentMethodConfirm","methodDetail","isTakeover","isEditContractToCvs","paymentInputDetailWithMethod","convenienceStore","MethodDetail","maskedCardNo","CvsDetail","creditCard","mobileCarrier","creditCardType","newCreditCardInfo","carrierKey","paymentDue","calculatePaymentDue","formatDateTime","termDaysLater","set","month","PreMemberRegisterInformationDTO","this","AddressConfirms","formatPostCode","ADDRESS","PhoneInformation","mobile","home","ContactAddressConfirmContents","EnrollmentReasonConfirmContentBlock","enrollmentReasonInfoList","enrollmentReasonSelectedInfo","getEnrollmentReasonInfo","enrollmentReasonInfo","enrollmentReasonId","ExtendMetaDataConfirmBlock","extendMetaDataInputInfo","block","header","items","getDisplayText","extendMetaDataItem","inputValue","options","option","toString","MembersSignupInputConfirmPage","scriptUrl","timeout","parseInt","errorMessages","setErrorMessages","processing","setProcessing","tokenResponse","setTokenResponse","gmo","gmoTimeoutErrorFlg","setGmoTimeoutErrorFlg","throwMBMemberError","useMBMemberError","contractInputInfo","shopCode","shopId","holderName","init","timeoutId","setTimeout","getToken","tokennumber","cardno","expire","slice","securitycode","holdername","result","clearTimeout","goToMembersRegisteredPage","memberRepo","postCreateMember","MemberRegisterInformationDTO","memberInfo","agreedIdList","getRegisterContractInfo","then","resultCreateMember","status","CommonResponseStatus","data","gotoMembersRegisteredPage","errorMessageList","navigator","backToMembersSignupInputPageCauseCreditCardError","catch","Error","postCreatePreMember","contractTerm","paymentMethod","paymentMethodDetail","resultCreatePreMember","goToMembersSignupMobileCarrierTransitionPage","registerButtonLabel","hideFooterNavi","undefined","MailMagazineSelectedList","mailMagazineList","enrollmentReasonList","tokenObject","PIMPageActions","PIMSubmitButton","PIMSecondaryButton","goBack","selectedMailMagazineNames","includes","Object","creditCardExpireDate","tokenList","token","isCvsContract","goToMembersRegisteredPageForConvenienceStore","contractDate","contractEndDate","isFreeBucketContract","goToMembersRegisteredPageForFreeBucket","bucketMemberIdList","goToMembersRegisteredPageForCreditCard","Black","MemberCircleArrowRightIcon","faCircleArrowRight","LinkIconText","ConfirmContractDetailContent","cvsInfo","showCvsPaymentInfo","isShowCvsPaymentInfo","cardExpireDate","paymentNumberLabel","paymentNumber","confirmationNumberLabel","confirmationNumber","paymentTerm","paymentDetailUrl","StyledButton","PIMPrimaryButton","ContractInformationContentBlock","contractInfoWithContractDate","isCvs","cardInfo","carrierInfo","editButtonProps","cvsPaymentButton","buttonName","RegisteredMemberInfoContents","displayTopMessage","CvsPaymentInfoContentBlock","cvsContract","cvsName","BucketMemberIdContent","bucketHeader","bucketMemberId","bucketId","SignedUpServiceListContent","signedUpBucketHeaderList","RegisteredFreeServiceContentBlock","signedUpFreeServiceList","getSignupFreeBucketList","RegisteredOrganizationContentBlock","isCvsPayment","CvsPaymentBlock","signupFreeBucketList","MembersRegisteredPage","MembersRegisteredPageInner","MembersRegisteredPageForCvs","MembersRegisteredPageForFreeBucket","contractInfoForCompletePage","signupReturnPageInfo","repo","useParams","fetchData","getInvitationInfo","memberSignupInfoDTO","response","goToMembersSignupInputPage","signupKey","goToMembersInvalidUrlPage","goToMembersInvalidOneTimeUrlPage","goToMembersServerErrorPage","MemberArrowRightIcon","faChevronRight","BucketLink","BucketLinkButton","pageUrlInfo","SignedUpStatusBadge","signedUpStates","FanClubLinkListContentBlock","pageUrlInfoList","noSignboardListMessage","content","MembersAccountTopPage","getSelfResult","useAsync","getSelf","getSignedUpSignboardsResult","getSignedUpBucketInfoList","memberResponseStatusCheck","member","allSignboards","checkAsyncStateAndGetData","signedUpSignboards","notSignedUpSignboards","enteredSignboardPageUrlInfoList","bucketTopPageInfo","bucketName","noEnteredSignboardPageUrlInfoList","bucketGuidancePageUrl","goToAccountInformationPage","PIMCardActions","ZIndex","MBBaseDialog","open","overflow","MBDialogBack","height","mx","buttons","DialogButton","MBDeleteCreditCardConfirmDialog","creditCardInfo","onCancelButtonClick","onOkButtonClick","MBDeleteShippingAddressConfirmDialog","shippingAddressInfo","MBCvsPaymentDialog","defaultConvenienceStoreKey","setCvsInfo","StyledOverlay","MBLoadingOverlay","MembersAccountInformationPage","openDialog","setOpenDialog","deleteShippingAddressInfo","setDeleteShippingAddressInfo","loadingOpen","setLoadingOpen","useMBMemberErrorUnknown","resultGetShippingAddressList","useAsyncRetry","getShippingAddressList","goToShippingAddressInputPage","goToEditMailPage","goToEditPasswordPage","goToEditAddressInputPage","goToEditShippingAddressInputPage","shippingAddressId","goToAccountTopPage","handleDialogCancelButtonClick","handleDeleteShippingAddressButtonClick","handleDialogDeleteShippingAddressButtonClick","deleteShippingAddress","resultDeleteShippingAddress","checkStatus","checkResponseAndGetDataOrError","isError","retry","shippingAddressInfoList","checkAsyncStateAndGetDataOrError","AddressInformation","ShippingAddressConfirmBlock","shippingAddress","onEditShippingAddressButtonClick","onDeleteShippingAddressButtonClick","ShippingAddressRegisterBlock","onRegisterButtonClick","getShippingAddressBlock","getAddressString","getAddressPrefecture","getAddressBuilding","PostCodeInformation","shippingAddressBlockTitle","phone","InputErrorSummary","ErrorSummary","display","headline","detail","MBInput","classNameOnError","MBMemberInput","convertOnBlur","moji","convert","trim","replace","AddressInputs","searchPostCode","address","addressErrors","updateAddress","handleChangeInput","handleBlurInput","autoComplete","placeholder","postCodeErrors","onBlur","search","searchAddress","regionId","region_id","padStart","locality","street","settingPostCode","addressPrefectureCodeErrors","keys","code","addressCityErrors","addressStreetErrors","addressBuildingErrors","ContactAddressInputContents","contactAddress","contactAddressErrors","phoneMobileErrors","phoneTelErrors","MembersEditAddressInputPage","setState","isInputError","errorState","setErrorState","prevState","goToEditAddressConfirmPage","inputForValidation","validationResult","input","details","validatePostCode","validateAddressPrefectureCode","validateAddressCity","validateAddressStreet","validateAddressBuilding","validatePhoneMobile","validatePhoneTel","errorArray","validateMemberAddressInput","animateScroll","MemberAddressDTO","MembersEditAddressConfirmPage","goToEditAddressCompletePage","putAddress","MembersDuplicatedRegisterPage","handleLoginButtonClick","onLoginButtonClick","MembersEditAddressCompletePage","AgreementCheckBoxContentBlock","checked","agreeCheckErrors","validatePaymentInputTerm","isEdit","uniq","validateSelectRequired","validatePaymentInputMethod","inputMethod","validateCreditCardType","validateCreditCardNumber","validateRequired","validateCreditCardNumberFormat","validateCreditCardHolderName","validateCreditCardHolderNameFormat","validateCreditCardExpireMonth","validateCreditCardExpireYear","validateFutureExpireDate","year","nextContractStartDate_YYYYMMDD","validateFutureDateFormat","validateCreditCardSecurityCode","validateCreditCardSecurityCodeFormat","validateMyCreditCardSecurityCode","validateConvenienceStore","validateMobileCarrier","isBlankString","isValidRegExpPattern","nextStartYear","nextStartMonth","nextDateString","MailMagazineSelectContentBlock","parse","mailMagazine","mailMagazineChecked","switchMailMagazineIdChecked","mailMagazineId","MBMemberRadioLabel","MBMemberRadioInput","MBMemberRadioSpan","isBoldLabel","MBMemberRadio","labelName","MBMemberRadioListForContractTerm","labelAndValues","labelAndValue","selectedValue","SelectContractTermContents","contractInputInfoStateTerm","paymentInputTermErrors","ContractUnitRadioButtons","changeSelectedTerm","PaymentMethodList","contractTermLabelAndValueList","sortedTermList","paymentMethodListGroupByTerm","forEach","getPaymentMethodsByTerm","paymentMethodKey","termKey","AlreadyJoinedContent","signboardName","MembersPageAuthTemplate","MembersAuth","CardInformationDiv","disableLabel","NewCreditCardInputComponent","creditCardInfoState","newCreditCardInputInfo","updateCreditCardInfo","hasErrorForInvalidCard","invalidCardErrors","minLength","maxLength","creditCardNumberErrors","creditCardExpireMonthErrors","creditCardFutureExpireDateErrors","CALENDAR","creditCardExpireYearErrors","creditCardHolderNameErrors","SecurityCodeInputForm","myCreditCardSecurityCodeErrors","onChangeInputSecurityCode","creditCardSecurityCodeErrors","SelectCreditCardRadioList","expired","isExpiredCreditCard","errorMyCreditCardId","creditCardTypeErrors","isCheckedMyCardId","isInUse","findSecurityCodeByCardId","_securityCodeMap","assign","findCardIdInSecurityCodeMap","mr","onDeleteCardButtonClick","newCreditCardRegisterDisable","hasErrorForNewCreditCardRadioButton","cardExpireDate_MMYYYY","expireDateString","cardTypeErrorMessage","errorMyCardId","newCardErrorMessages","mobileCarrierInfoList","MobileCarrierInputComponent","mobileCarrierInfoState","mobileCarrierInputInfo","updateMobileCarrierInfo","mobileCarrierInfo","mobileCarrierErrors","JoinDisplayPaymentMethodsRadioList","showFirstDivider","paymentInputMethodErrors","onChangeSelectedMethod","JoinDisplayInputDetailPaymentMethod","JoinSelectPaymentMethodContents","contractInputInfoState","contractMethods","JoinPaymentMethodRadioList","changeSelectedMethod","changeInputDetailInfo","JoinErrorCvsReadyContent","EnrollmentReasonSelectContentBlock","targetValueNum","AttentionBorderColor","IconBlock","BlackCircle","IconPosition","MemberAttentionExclamationIcon","MemberCircleExclamationIcon","AttentionSummary","AttentionSummaryCard","HeadlineArea","ErrorSummaryHeadlineMessage","textAlign","AttentionSummaryDetailMessages","verticalAlign","AttentionSummaryDetailMessage","TakeoverAttentionSummary","getDetails","MembersJoinInputPage","deleteCardInfo","setDeleteCardInfo","setSignboard","validateAgreeCheck","contractInputErrors","isMobileCarrierError","enrollmentReasonErrors","showAgreement","setShowAgreement","setPaymentMethodList","setMyCreditCardInfoList","setContractInputInfoState","getSelfCreditCardsResult","getSelfCreditCards","handleAgreementButtonClick","handleAgree","changeJoinInputPageState","handleDeleteCardButtonClick","handleDialogDeleteCardButtonClick","changeMembersJoinInputPageState","deleteCreditCard","deleteCardResult","getPaymentMethodListBySignupKeyResult","getPaymentMethodListBySignupKey","memberSignboardRepo","getSignedUpSignboards","signboardDTO","s","getDefaultMailMagazineIdCheckList","getDefaultEnrollmentReasonSelectedInfo","_paymentMethodList","goToJoinConfirmPage","paymentInputTerm","paymentInputMethod","creditCardNumber","creditCardExpireMonth","creditCardExpireYear","creditCardHolderName","creditCardSecurityCode","myCreditCardSecurityCode","enrollmentReasonValidateParam","candidates","getEnrollmentReasonListForValidate","selected","creditCardFutureExpireDate","validateEnrollmentReason","validateMemberJoinInput","joinSignboard","MembersAgreement","memberAgreementRepo","onAgreeClick","onDisagreeClick","checkedIdList","subscribed","subscribedMailMagazine","MemberMailUpdateDTO","MBMemberEMailInput","validateMemberMailInput","isLoginId","validateMail","MemberCircleArrowDownIcon","faCircleArrowDown","MembersEditMailInputPage","mailErrors","goToEditMailInvitationCompletePage","postOrderForUpdateMail","ArrowDownIconArea","MemberJoinBucketDTO","MailMagazineConfirmContentBlock","MemberPreJoinBucketDTO","MembersJoinInputConfirmPage","goToJoinCompletePage","putAddressResult","selectedMyCreditCardInfo","postBelongToBucket","getContractInfoForPostBelongToBucket","postBelongToBucketResult","gotoCompletePage","backToMembersJoinInputPageCauseCreditCardError","postPreBelongToBucket","postPreBelongToBucketResult","goToMembersJoinMobileCarrierTransitionPage","postBelongToBucketResultData","goToJoinCompletePageForConvenienceStore","goToJoinCompletePageForFreeBucket","MembersEditMailSendCompletePage","MembersEditMailUpdatedPage","MembersEditMailRedirectPage","mailUpdateId","inProgress","useMsal","putMailUpdateComplete","Logout","msalInstance","membersMsalInstance","postLogoutRedirectUri","throwMBError","navigate","goToEditMailUpdatedPage","isLocationStateCvs","MembersJoinCompletePage","availableColor","unavailableColor","StyledFontAwesomeIcon","FontAwesomeIcon","PasswordRuleText","onRuleValidate","rule","getPasswordStatus","faCheck","iconSize","getTextColor","ruleText","PasswordForm","showPassword","setShowPassword","wordCount","useLowerCase","useUpperCase","useNumber","useSymbol","passwordValidState","setPasswordValidState","setErrorMessageList","is64overPassword","setIs64overPassword","isIncludeUnusableChars","setIsIncludeUnusableChars","enteredPasswordErrorMessage","match","unusableChars","deduplicatedChars","passwordErrors","defaultShowPasswordChecked","handlePasswordValidate","isValid","showRequiredBadge","onCheckboxChange","getPasswordValidBadge","PasswordInputContent","SignupDisplayPaymentMethodsRadioList","DisplayInputDetailPaymentMethod","SignupSelectPaymentMethodContents","PaymentMethodRadioList","MemberNameInputs","memberName","memberNameErrors","onMemberNameChange","familyNameErrors","firstNameErrors","familyNameKanaErrors","firstNameKanaErrors","updateMemberName","GenderInput","inputGender","genderErrors","entries","ExtendMetaDataInputBlock","extendMetaDataInputState","setExtendMetaDataInputState","description","required","TypeInputForm","itemInfo","itemState","getError","itemId","MembersSignupInputPage","isSubmitButtonDisabled","setIsSubmitButtonDisabled","birthdayYear","birthdayMonth","birthdayDay","getDefaultExtendMetaDataInputInfo","birthdayErrors","birthdayYearErrors","birthdayMonthErrors","birthdayDayErrors","validatePassword","contractErrors","extendMetaDataErrors","showPasswordChecked","setShowPasswordChecked","changeMembersSignupInputPageState","goToMembersSignupInputConfirmPage","extendMetaDataParam","inputState","restForState","inputForState","validateFamilyName","validateFirstName","validateFamilyNameKana","validateFirstNameKana","validateGender","validateBirthdayYear","validateBirthdayMonth","validateBirthdayDay","birthdayCombination","validateBirthdayCombination","validateExtendMetaData","hasErrorExtendMetaData","validateMemberSignupInput","memberRegisterInformationProps","updateState","handlePasswordInputChange","birthdayErrorMessages","onFocus","setAttribute","set20yearsOld","day","inputInfo","defaultInputInfo","validateMemberPasswordsInput","MembersEditPasswordPage","isEditPasswordSucceeded","setIsEditPasswordSucceeded","editPassword","putPassword","goToEditPasswordCompletePage","MembersEditMailMagazineInfoPage","bucketKey","resultBucketInfo","getBucketInfoByBucketKey","resultMemberBucketOptions","getMemberBucketOptionsByBucketKey","filteredSubscribeMailMagazineIdList","subscribeMailMagazineIdList","bucketInfo","goToEditMailMagazineInputPage","fcMyPageInfo","MembersEditPasswordCompletePage","MembersEditMailMagazineInputPage","setBucketInfo","setSubscribeMailMagazineIdList","_subscribeMailMagazineIdList","goToEditMailMagazineConfirmPage","goToEditMailMagazineInfoPage","MembersEditMailMagazineConfirmPage","putSubscribeMailMagazineIdList","goToEditMailMagazineCompletePage","MailAddressFormContent","inputLabel","hasErrors","onMailAddressChange","onMailAddressBlur","MembersInvitationPage","setMail","inputErrors","setMailErrors","getSignboardBySignupKey","goToInvitationCompletePage","_mail","sendOneTimeUrlMail","MemberInvitationDTO","resultSendOneTimeUrlMail","goToMembersInvitationCompletePage","mailAddress","CompleteMessageContent","onCvsSelectLinkClick","handleCvsSelectLinkClick","isLastMonthOfNextContractStartDate","format_YYYYMM","lastMonthOfNextStartDate","subtract","MembersEditMailMagazineCompletePage","MBMemberTextArea","LeavingMessageContent","pageTitle","ProcessingErrorMessage","ProcessingErrorPage","MembersMobileCarrierMaintenancePage","operationName","MembersBaseErrorPage","errorSummaryHeadLine","errorSummaryDetail","errorSummaryAreaTestId","CvsProcedureOrCompletedErrorPage","Contract","AccountDeleted","AutoCancelContract","ChangeContract","ContractAutoPayment","ContractManualPayment","ContractWithoutPayment","ExpiredPaymentLimit","FailedContractAutoPayment","FailedContractAutoPaymentDetected","RequestForCancelContract","StartManualPayment","Ready","Expired","Initialized","Reserved","Completed","Canceled","STATUS","MembersLeaveBucketInputPage","bucketLeaveReason","setBucketLeaveReason","bucketLeaveReasonErrors","getBucketInfoByBucketKeyResult","getContractInfoByBucketKeyResult","getContractInfoByBucketKey","getBucketLeaveByBucketKeyResult","getBucketLeaveByBucketKey","_bucketInfo","next","bucketLeave","goToMembersLeaveBucketConfirmPage","validateBucketLeaveReason","validateMemberLeaveBucketInput","nowContract","leavePageTopMessage","rows","AlertList","AlertListCard","alertMessages","alertMessage","ErrorSummaryCard","MembersLeaveBucketConfirmPage","agreeCheck","setAgreeCheck","mobileCarrierMaintenance","setMobileCarrierMaintenance","cvsProcedureOrCompletedError","setCvsProcedureOrCompletedError","freeBucketLeaveProcessing","setFreeBucketLeaveProcessing","isCvsProcedureOrCompletedError","leaveAttentionList","goToLeaveBucketCompletePage","putBucketForLeave","goToMembersLeaveBucketCompletePage","MembersLeaveBucketCompletePage","PIMAccentButton","MembersEditContractInfoPage","openCvsPaymentDialog","setOpenCvsPaymentDialog","openLoading","setOpenLoading","resultContractInfo","goToEditContractInputPage","handleCvsPaymentDialogOkButtonClicked","postContinuanceCvs","nowContractInfo","nowCardInfo","getCardInfo","nextCardInfo","nowCarrierInfo","getCarrierInfo","nextCarrierInfo","nowCvsInfo","getCvsInfo","nextCvsInfo","isPaymentAvailableTerm","paymentAvailableOn","makeDurationString","signupDate","dateTo","startOf","dateFrom","durationYear","diff","durationMonth","ChangeNextContractTermContent","defaultValue","paymentInformationListExceptCurrentTerm","foundCurrentContractTermLabelAndValue","EditDisplayPaymentMethodsRadioList","displayMyCreditCardExcludeCurrentCard","isChangeContractTerm","creditCardInfoForNextContract","nextContractInfoBeforeChange","disabledForCsv","disabledForCarrier","isLastMonthInContractTerm","getChangeTermForCarrier","EditDisplayInputDetailPaymentMethod","displayCurrentCreditCard","nowContractEndDate","getYearOfContractEndDate","get","getMonthOfContractEndDate","handleCreditCardInputDetailInfoChange","currentCreditCard","myCreditCardInfoListExcludeCurrentCreditCard","getMyCreditCardInfoListExcludeCurrentCreditCard","UnchangedCreditCardMethodItem","ChangeNextPaymentMethodContent","isDisableContractMethodRadioButton","EditPaymentMethodRadioList","MembersEditContractInputPage","resultGetSelfCreditCards","changeEditContractInputPageState","nextContractInfo","candidatePaymentMethodList","bucketInfoDTO","isContractTerms","isUnableToCancelContract","currentTerm","getCreditCardInfoForNextContract","goToEditContractConfirmPage","validateMemberContractInput","nextRest","isChangeTerm","goToEditContractInfoPage","inputTerm","MemberEditContractDTO","MembersEditContractConfirmPage","goToEditContractCompletePage","generateBucketContractInputInfo","putBucketContractInfo","putBucketContractInfoResult","validatePutBucketContractInfoResult","changeContractByCreditCardOrConvenienceStore","backToEditContractInputPageCauseCreditCardError","changeContractByMobileCarrier","goToEditContractMobileCarrierTransitionPage","determineButtonLabel","MembersEditContractCompletePage","MembersAuthLogoutPage","to","toUrl","URLSearchParams","replaceLocation","logoutUrl","redirTo","startsWith","origin","encodeURIComponent","MemberVerifyIdentityDTO","MembersVerifyIdentityPage","mailValidateError","setMailValidateError","handleSendButtonClick","postVerifyIdentityMail","postResult","goToMembersVerifiedIdentityPage","MembersSendMailForVerificationIdentityPage","MemberResetPasswordRedirectPage","oneTimeToken","resultGetVerifyIdentityInfo","getVerifyIdentityInfo","goToResetPasswordInputPage","agreementList","ConfirmRegistrationContent","MemberResetPasswordDTO","MemberResetPasswordInputPage","json","AgreementDTO","handleResetPasswordButtonClicked","passwordValidateResult","putResetPassword","resultPutResetPassword","goToResetPasswordCompletePage","handleOpenAgreementButtonClicked","handleAgreeButtonClicked","scrollTo","MemberResetPasswordCompletePage","handleGoToAccountTopPageButtonClick","MembersRedirectPage","UrlQueryParams","ok","canceled","paymentSystemError","useQuery","param","MembersSignupResultPage","temporaryEnrollmentId","goToSignupRegisterPage","getSignupComplete","resultGetSignupResult","goToMembersRegisteredPageForMobileCarrier","goToSignupInputPage","getSignupPreRegisterInfo","resultGetSignupPreRegisterInfo","preRegisterMemberInfo","resultGetInvitationInfo","resultGetAgreementList","agreement","restMemberInfo","backToMembersSignupInputPageCauseMobileCarrierError","MembersMobileCarrierTransitionPage","mobileCarrierStartPaymentInfo","startURL","accessID","form","action","innerHTML","append","postMobileCarrierPaymentInfo","submit","MembersJoinResultPage","getBelongToBucketComplete","resultGetBelongToBucketComplete","goToJoinInputPage","getJoinPreRegisterInfo","resultGetJoinPreRegisterInfo","backToMembersJoinInputPageCauseMobileCarrierError","ShippingAddressInputs","ShippingAddressInputContents","shippingAddressErrors","phoneErrors","validateShippingAddressInput","validateShippingAddressPrefectureCode","validateShippingAddressCity","validateShippingAddressStreet","validatePhone","MembersShippingAddressInputPage","goToShippingAddressInputConfirmPage","ShippingAddressConfirms","ShippingAddressConfirmContents","MembersShippingAddressInputConfirmPage","goToShippingAddressInputCompletePage","postShippingAddress","MemberShippingAddressDTO","resultPostShippingAddress","MembersShippingAddressInputCompletePage","MembersEditShippingAddressInputPage","numShippingAddressId","isNaN","goToEditShippingAddressConfirmPage","shippingAddressList","MembersEditShippingAddressConfirmPage","goToEditShippingAddressCompletePage","putShippingAddress","MemberShippingAddressInfoDTO","resultPutShippingAddress","MembersEditShippingAddressCompletePage","MembersEditContractResultPage","getEditContractResult","resultGetEditContractResult","backToEditContractInputPage","backToEditContractInputPageCauseMobileCarrierError","ready","documentElement","gtm","REACT_APP_MNG_GTM_CONTAINER_ID","styles","MemberGlobalStyles","ErrorBoundary","fallbackRender","fallbackProps","pathname","resetErrorBoundary","Members500Page","switchErrorPages","RouteWithTitle","exact","path","render","MembersAuthSsoLogoutPage"],"sourceRoot":""}