I don't tend to avoid whens when they get long per say, the questions I would ask myself are, can ay of this be functioned out of my way? and does all of it belong in the viewmodel (or the view, if I'm in compose code). Is any of this actually business logic / domain code I should move up and out and just call? or is it all just view state logic?