I think it's meant to be ambiguous to both highlight Sanji's confusion and lack of knowledge on what he did precisely (though he's still capable of deducing/assuming) while also leaving room open for Oda to return to it in case he doesn't want it to be Sanji clear-cut just beating her if there's something else to it that he doesn't want to reveal yet.
I don't see anything wrong with it being off-screen, Sanji himself doesn't remember so we're in his shoes and seeing it from his perspective, making his turmoil more palpable since we, the audience, also don't have all the info.