Eureka icon indicating copy to clipboard operation
Eureka copied to clipboard

SwitchRow Not responding to second time from user interaction

Open amrangry opened this issue 2 years ago • 1 comments

Describe the bug SwitchRow Not responding to second time from user interaction

To Reproduce Steps to reproduce the behavior:

  1. change switch value by clicking, code in the onChange function will be executed
  2. See error: code in the onChange function will not be executed when you change again switch value by clicking,

Expected behavior execute the code statement in onChange function each time value change of the switch

Screenshots

            SwitchRow(InteractionFormFieldsIds.followupCompletedShortcut.value) {
                $0.title = "Follow Up Completed"
            }.onChange({ row in
                if let switchValue = row.cell.switchControl?.isOn {
                    if switchValue == true {
                        row.cell.switchControl.setOn(false, animated: true)
                
                            DispatchQueue.main.async {
                                self.tableView.reloadData { /* Complete reloading */ }
                            }
                        }
                    } 
                } 
            })

Versions (please complete the following information):

  • Device: iPad
  • OS: iOS 16.0
  • Eureka Version 5.2.1
  • Xcode version 14.1

amrangry avatar Feb 01 '23 11:02 amrangry

Hi @amrangry you can try one of the examples and see that SwitchRow works correctly and onChange is called each time the user taps the switch. Even with your code it works for me.

However why are you changing the switch value from inside onChange? Also, you probably want to build on row.value instead of row.cell.switchControl?.isOn

mats-claassen avatar Feb 01 '23 11:02 mats-claassen