Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
이슈 #231
완료된 기능
고민했던 사항
TCA의 AlertState를 사용하면서 Custom Alert 구현하기
Custom Alert를 구현하는 방법에는 알아본 결과 2가지가 존재했음
이 두가지는 현재 구조에서 많은 변화가 있을 것이라고 예상되었고
현재 TCA의 AlertState를 그대로 사용하면서 현재 기본으로 보여지는 SwiftUI의 Alert를 Custom Alert로 교체하면 코드상 새롭게 바뀌는게 거의 없을 것이라고 판단
결국 TCA 내부 코드를 보면서 어떤 방식으로 Alert를 띄우는지 확인했고 이를 토대로 View만 Custom View로 바꾸는 작업으로 진행했음
기존의 코드의 틀에서 거의 벗어나지 않고 Modifier만 alert에서 새롭게 만든 bottleAlert로 변경하면 됨
변경 전
Custom Alert 적용 후
하지만! 기존의 alert를 사용하는 경우에 AlertState를 생성할 때 ButtonState의 role을 .destructive로 설정하면 자동으로 cancel 버튼을 만들어주지만
이는 TCA 내부 코드에서 actions의 개수에 따라서 SwiftUI의 Alert를 생성해주고 있었기에 이 부분은 Custom View로 설정해서 할 수 가 없었음
<AlertState 내부 코드>
그래서 만약 cancel 버튼이 필요하면
이처럼 ButtonState를 추가해줘야함...