Skip to content
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

[SCRUM-56] 에러 및 로딩 대응 리팩토링 #58

Merged
merged 3 commits into from
Nov 24, 2024

Conversation

Jihyun247
Copy link
Collaborator

[SCRUM-56] 에러 및 로딩 대응 리팩토링

무엇에 관한 PR 인가요? 🙋

원래 목표

  • 재시도 버튼 로직 구현
  • 로딩뷰 / 서버통신에러뷰 / 네트워크에러뷰 중 로딩뷰만 애니메이션 disable

하지만

  • OnboardingFeature에서 서버통신에러뷰가 떴을 때, '홈으로 가기' 클릭 시 OnboardingView 재초기화 하면, width가 안잡히는 버그 잡기
    -> 이것에 대해 삽질만 몇시간을 하다가 잠시 포기했습니다 ^0^
// '홈으로 가기' 클릭 시 Onboarding State를 다시 재 초기화 해주는 부분

    case .requestError(.presented(.moveToHome)):
      if state.onboarding != nil {
        state.onboarding = OnboardingCore.State()
      } else if state.home != nil {
        state.home = HomeCore.State()
      }
      return .none
// OnboardingView 에서 뷰 width를 가져오는 부분

    .setFrameMeasure(space: .global, identifier: backgroundFrame)
    .getFrameMeasure { value in
      /* TODO: 11.25
       Onboarding 재 초기화 시 FrameMeasure 관련 모디파이어를 안거침 . ,, 파악중
       getFrameMeasure -> OnDisappear 시에도 거치는 이유는 ?
      */
      guard let background = value[backgroundFrame] else { return }
      store.width = background.width
    }

이 부분을 안거침 -> width가 0으로 잡혀서 TabView와 관련된 것들이 모두 뜨지 않음 -> 근데 '시작하기' 버튼을 누르며 OnDisappear 시 잠깐 background.width가 잡혀서 아주 잠깐 TabView가 보이는 것을 목격

어떤 것을 작업하셨나요? 🛠

  • 문의 url 수정
  • 로딩뷰 분리

🌱 PR Point

  • PR Point 1
  • PR Point 2

@Jihyun247 Jihyun247 requested a review from devMinseok November 24, 2024 16:38
@Jihyun247 Jihyun247 self-assigned this Nov 24, 2024
Comment on lines 67 to +68
.transaction(value: store.isLoading) { transaction in
// TODO: 11/24, LoadingView 분리 + fullscreen animation disable
// TODO: 11.25 로딩 이외 다른 fullScreen들도 disabled됨
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그럼 transaction을 LoadingView 바로 밑으로 옮겨볼 수 있을려나

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

엉 그것도 해봤는데, fullScreen에 대한 애니메이션이라 그런지 안먹더라구

Comment on lines 67 to 68
.setFrameMeasure(space: .global, identifier: backgroundFrame)
.getFrameMeasure { value in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

음 이건 내가 봤을때 frameMeasure를 구현할때 사용한 onPreferenceChange가 인식을 못하는거 같은데
그냥 이런식으로 쓰면 아마 문제는 해결될거 같네

Suggested change
.setFrameMeasure(space: .global, identifier: backgroundFrame)
.getFrameMeasure { value in
.background {
GeometryReader { proxy in
Color.clear
.onChange(of: proxy.frame(in: .global)) { _, newValue in
store.width = newValue.width
}
}
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그냥 만들어둔 모디파이어 쓸 수 있는 방법 더 알아보지 말고 우선 바로 geometryReader 사용하는 방법으로 수정할까?

@Jihyun247 Jihyun247 merged commit f977780 into develop Nov 24, 2024
1 check passed
@Jihyun247 Jihyun247 deleted the feature/SCRUM-56 branch November 24, 2024 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants