UK PM Johnson under fire after by-election disaster