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

Refactor/settings allow browse #132

Merged
merged 4 commits into from
Dec 12, 2022
Merged

Conversation

Jeonhui
Copy link
Member

@Jeonhui Jeonhui commented Dec 10, 2022

πŸ“• Issue Number

Close #131

πŸ“™ μž‘μ—… λ‚΄μ—­

κ΅¬ν˜„ λ‚΄μš© 및 μž‘μ—… ν–ˆλ˜ λ‚΄μ—­

  • λ‘˜λŸ¬λ³΄κΈ° ν—ˆμš©μ„ μœ„ν•œ UseCase μˆ˜μ •
  • 이벀트 μΆ”κ°€

πŸ“˜ μž‘μ—… μœ ν˜•

  • μ‹ κ·œ κΈ°λŠ₯ μΆ”κ°€
  • 버그 μˆ˜μ •
  • λ¦¬νŽ™ν† λ§
  • λ¬Έμ„œ μ—…λ°μ΄νŠΈ

πŸ“‹ 체크리슀트

  • Merge ν•˜λŠ” λΈŒλžœμΉ˜κ°€ μ˜¬λ°”λ₯Έκ°€?
  • μ½”λ”©μ»¨λ²€μ…˜μ„ μ€€μˆ˜ν•˜λŠ”κ°€?
  • PRκ³Ό κ΄€λ ¨μ—†λŠ” 변경사항이 μ—†λŠ”κ°€?
  • λ‚΄ μ½”λ“œμ— λŒ€ν•œ 자기 κ²€ν† κ°€ λ˜μ—ˆλŠ”κ°€?
  • 변경사항이 νš¨κ³Όμ μ΄κ±°λ‚˜ λ™μž‘μ΄ μž‘λ™ν•œλ‹€λŠ” 것을 λ³΄μ¦ν•˜λŠ” ν…ŒμŠ€νŠΈλ₯Ό μΆ”κ°€ν•˜μ˜€λŠ”κ°€?
  • μƒˆλ‘œμš΄ ν…ŒμŠ€νŠΈμ™€ 기쑴의 ν…ŒμŠ€νŠΈκ°€ 변경사항에 λŒ€ν•΄ λ§Œμ‘±ν•˜λŠ”κ°€?

πŸ“ PR 특이 사항

PR을 λ³Ό λ•Œ 주의깊게 λ΄μ•Όν•˜κ±°λ‚˜ λ§ν•˜κ³  싢은 점

  • 둜그인 λ‘œκ·Έμ•„μ›ƒμ„ ν–ˆμ„ κ²½μš°μ— μŠ€μœ„μΉ˜ ν† κΈ€ μ΄λ²€νŠΈκ°€ 계속 λŠ˜μ–΄λ‚˜λŠ”λ° 이 문제λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν•΄μ•Όλ˜λŠ”μ§€ μ•„μ‹œλŠ” λΆ„ κ³„μ‹ κ°€μš”?

λ°”μΈλ“œ μ½”λ“œ

    
    func bind() {
        toggle.rx.tapGesture()
            .when(.ended)
            .do(onNext: { _ in
                print(self.toggle.isOn)
            })
            .bind(onNext: {_ in
                self.toggleItemDidClicked.onNext(!self.toggle.isOn)
            })
            .disposed(by: disposableBag)
        
        let output = viewModel.transform(input: ToggleItemViewModel.Input(
            toggleItemDidClicked: toggleItemDidClicked
        ))
        
        output.toggleItemResult
            .subscribe(onNext: { isOn in
                guard let isOn = isOn else {
                    self.toggle.isOn = false
                    self.toggle.isEnabled = false
                    return
                }
                
                if !self.toggle.isEnabled {
                    self.toggle.isEnabled = true
                }
                DispatchQueue.main.async {
                    self.toggle.isOn = isOn
                }
            })
            .disposed(by: disposableBag)
    }

transform μ½”λ“œ

    func transform(input: Input) -> Output {
        let fetchAllow = settingsUseCase.isLoggedIn()
            .flatMap { _ in settingsUseCase.fetchAllow() }
            .asObservable()
        
        let changeAllow = input.toggleItemDidClicked
            .flatMap { isOn in
                settingsUseCase.updateAllow(allow: isOn).asObservable()
                    .map { result in result ? isOn : nil  }
            }
        
        let toggleItemResult = Observable.merge(fetchAllow, changeAllow)
        
        return Output(toggleItemResult: toggleItemResult)
    }

스크란샷 2022-12-10 23 12 49



@Jeonhui Jeonhui added this to the 5주차 개발! milestone Dec 10, 2022
@Jeonhui Jeonhui self-assigned this Dec 10, 2022
@jinwoong16 jinwoong16 merged commit 9aa19ff into develop Dec 12, 2022
@jinwoong16 jinwoong16 deleted the refactor/SettingsAllowBrowse branch December 14, 2022 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

λ‘˜λŸ¬λ³΄κΈ°ν—ˆμš© μ•‘μ…˜ μΆ”κ°€
2 participants