-
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
[Feat/#65] 마이페이지-내가 푼 뉴스 보기-내가 푼 뉴스 리스트 구현 #67
Conversation
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.
고생하셨습니다!!
서버에서 가져오는 로직을 추가해야하는데, 서버 API 스웨거에서 solved 부분을 참고하면 좋습니다.
서버 로직은 Domain의 코드를 살펴보는 것이 좋고, https://quicktype.io/ 해당 사이트에서 DTO를 만들고 내부에서 사용할 struct는 Entity로 따로 만들거나 기존의 Entity로 사용할 수 있으면 최대한 사용하는 것도 좋습니다.
서버 로직도 추가되면 좋을 것 같아요! (이미 풀었던 뉴스가 아니라 퀴즈가 되어야 할 것 같아요 이유는 풀었던 뉴스를 가져오는 API는 아직 없기 때문.)
case .solvedNewsButtonTapped: | ||
state.path.append(.solvedNews(.init())) | ||
return .none |
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.
👍
case let .select(newsEntity): | ||
state.path.append(.quizMain(.init(newsEntity: newsEntity))) | ||
return .none |
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.
요거는 필요할까요? 마이페이지에서 quiz 메인을 갈 일이 아직은 없어보입니다!
case quizMain(QuizMainStore.State) | ||
case quizResult(QuizResultStore.State) | ||
case solvedNews(SolvedNewsStore.State) | ||
} | ||
|
||
public enum Action: Equatable { | ||
case quizMain(QuizMainStore.Action) | ||
case quizResult(QuizResultStore.Action) | ||
case solvedNews(SolvedNewsStore.Action) | ||
} | ||
|
||
public var body: some Reducer<State, Action> { | ||
Scope(state: /State.quizMain, action: /Action.quizMain) { | ||
QuizMainStore() | ||
} | ||
Scope(state: /State.quizResult, action: /Action.quizResult) { | ||
QuizResultStore() | ||
} | ||
Scope(state: /State.solvedNews, action: /Action.solvedNews) { | ||
SolvedNewsStore() | ||
} |
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.
SolvedNewsStore만 있으면 될것같아요! 나머지의 Store는 나중에 필요할때 추가 하면 좋을 것 같습니다.
case popToRoot | ||
case path(StackAction<Path.State, Path.Action>) | ||
case onAppear | ||
case solvedNews(SolvedNewsStore.Action) |
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.
요 solvedNews 액션은 아마도 path안에서 처리가 가능하니 필요없어보입니다!
private func personalSection(viewStore: ViewStoreOf<MyPageMainStore>) -> some View { | ||
Section { | ||
Button( action: { | ||
viewStore.send(.solvedNewsButtonTapped) | ||
}, label:{ | ||
Label( | ||
title:{ | ||
Text("내가 푼 뉴스 보기") | ||
}, icon: { | ||
Image(systemName: "checkmark.circle.fill") | ||
.foregroundStyle(.blue) | ||
}) | ||
}) | ||
} | ||
} |
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.
쪼개는 거 좋습니다!
case .solvedNewsButtonTapped: | ||
return .send(.delegate(.solvedNewsButtonTapped)) |
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.
부모로 delegate를 넘기는 것이 좋습니다!!
@greetings1012 컨플릭트 해결해서 푸시했습니다 편안.. (죽을 뻔함.. ㅎㅎ) 제생각에는 제가 너무 막 머지한 것도 있는 것 같고 캡스톤 때문에 속도 맞추는게 어려워서 이렇게 된 것 같아요. 조금 더 서비스를 디벨롭을 해야한다면 다음부터는 조율을 잘 해보도록하겠습니다. 약간의 팁이 있다면.. PR 올린거는 1~2일(다음 작업이 시작되기 전에) 내에 머지가 되는 것이 좋을 것 같아요. |
PR 요약
📌 변경 사항
✅ PR check list
Linked Issue
close #65