안녕하세요:) 개발자 우디입니다! 아래 내용 관련하여 작업 중이신 분들께 도움이되길 바라며 글을 공유하니 참고 부탁드립니다😊
(이번에 벨로그로 이사오면서 예전 글을 옮겨적었습니다. 이 점 양해 부탁드립니다!)
튜토리얼 이미지만 변경될 가능성이 있고, 나머지 UI는 변하지 않을 것이기 때문에 튜토리얼 이미지의 변경 가능성을 고려하며 구현함
튜토리얼 이미지
const tutorialImage = {
afterLogin: {
1: tutorialImg1_1,
2: tutorialImg1_2,
3: tutorialImg1_3,
4: tutorialImg1_4,
5: tutorialImg1_5,
6: tutorialImg1_6,
7: tutorialImg1_7,
8: tutorialImg1_8,
},
afterAnalysis: {
1: tutorialImg2_1,
2: tutorialImg2_2,
3: tutorialImg2_3,
4: tutorialImg2_4,
5: tutorialImg2_5,
6: tutorialImg2_6,
7: tutorialImg2_7,
8: tutorialImg2_8,
9: tutorialImg2_9,
},
};
사용자가 버튼 누르거나 하면 함수 실행하여 적절한 이미지로 바꿔주기
기타 UI 구현
constructor(props) {
super(props);
this.state = {
isLastButton: false,
};
this.currentBackgroundImageNumber = 1;
this.tutorialModalType = null;
}
...생략...
render() {
this.tutorialModalType =
this.props.tutorialModalType === 'afterLogin' ? 'afterLogin' : 'afterAnalysis';
return (
...생략...
<Modal
isOpen={this.props.isModalOpen}
onRequestClose={this.props.closeCallback}
style={modalStyles}
shouldCloseOnOverlayClick={false}
shouldCloseOnEsc={false}
contentLabel="튜토리얼"
>
<div className="tutorialModalContainer" id="tutorialModalContainer">
<img
id="tutorialImage"
src={tutorialImage[this.tutorialModalType][this.currentBackgroundImageNumber]}
width="100%"
height="100%"
alt=""
/>
<div className="buttonWrapper">
<button className="skipButton" onClick={this.onSkipButtonClick}>
건너뛰기
</button>
<button className="backButton" onClick={this.onBackButtonClick}>
뒤로가기
</button>
{this.state.isLastButton ? (
<button className="nextButton" onClick={this.onCompleteButtonClick}>
완료하기
</button>
) : (
<button className="nextButton" onClick={this.onNextButtonClick}>
다음단계
</button>
)}
</div>
</div>
</Modal>
</div>
);
}