-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: ContentListFeature 액션 컨벤션 수정 #140
Conversation
case .bottomSheetButtonTapped(let delegate, let content): | ||
return .run { send in | ||
await send(.inner(.dismissBottomSheet)) | ||
await send(.scope(.bottomSheet(delegate: delegate, content: content))) | ||
} | ||
case .deleteAlertConfirmTapped: | ||
case .bottomSheet(let delegate, let content): | ||
return .concatenate( | ||
.send(.inner(.바텀시트_해제)), | ||
.send(.scope(.bottomSheet(delegate: delegate, content: content))) | ||
) | ||
case .컨텐츠_삭제_눌렀을때: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기도 설명필요 최소한 바꿨으면 PR에 before after정도는...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기도 설명필요 최소한 바꿨으면 PR에 before after정도는...
넵..
.run { send in | ||
for await _ in self.pasteBoard.changes() { | ||
let url = try await pasteBoard.probableWebURL() | ||
await send(.delegate(.linkCopyDetected(url)), animation: .pokitSpring) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merge형태로 쓸꺼면 얘도 action으로 빼서 깔끔하게 가져가야함
PokitSearchFeature
310번째줄 참고해서 작성해주세요
case .컨텐츠_삭제_API(id: let id): | ||
let count = state.domain.contentCount | ||
let newCount = count - 1 | ||
|
||
return .merge( | ||
.send(.inner(.컨텐츠_개수_업데이트(newCount))), | ||
.run { send in | ||
let _ = try await contentClient.컨텐츠_삭제("\(id)") | ||
await send(.inner(.컨텐츠_삭제_API_반영(id: id)), animation: .pokitSpring) | ||
} | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기존 방법보다 가독성이 너무 떨어져요
굳이 await하지 않고 동시에 액션 가져가겠다는 걸 이해했는데도 그렇습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기존 방법보다 가독성이 너무 떨어져요 굳이 await하지 않고 동시에 액션 가져가겠다는 걸 이해했는데도 그렇습니다
넵 좀 더 고민해보겠습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR 신경써서 작성 다시 부탁드립니다. 액션 컨벤션만 바꾼게 아니던데요
넵..!! |
#️⃣연관된 이슈
📝작업 내용
merge
,concatenate
을 사용한 묶음 액션 핸들링 명시화스크린샷 (선택)
💬리뷰 요구사항(선택)
merge
,concatenate
를 사용하여 여러 액션 실행을 좀 더 명확하게 가져가고자 하였습니다.run
액션을 사용한뷰가_나타났을때
코드 입니다.await
키워드로 인해 순차적으로 실행되는것 처럼 보이나, 각각의 액션 내부에는run
액션으로 서로 다른 비동기 작업을 할당 받고 있기 때문에, 병렬적으로 동작합니다.그렇기 때문에 제가 보기엔 액션 흐름 이해가 혼란스럽다고 느껴서
merge
,concatenate
를 통해 병렬적인지 순차적인지 명시를 하고 싶었습니다.여러 액션을 묶는 것은
merge
,concatenate
을 활용하고, 꼭 필요한 비동기 작업에만run
액션을 쓰고 싶었습니다.run
을 썼을때와 동작하는데 있어서는 큰차이가 없지만,merge
를 통해 병렬젹으로 동작한다는걸 확실하게 보여줄 수 있다는 생각입니다..!!merge
,concatenate
가독성을 높이기 위해, 몇몇 액션을 함수로 묶었습니다.close 이슈번호