Well, you haven’t explained what you mean by “wonky”, but one thing I noticed is that you haven’t handled the Promise returned by setCurrentItemIndex() .
Something like this might unwonkify the fade:
$w("#dataset1").setCurrentItemIndex(idx)
.then( () => {
console.log("Done setting current item");
$w("#group1").show("fade", fadeOptions);
} );