And a little more context than "cropper broke it":
The NodeBB gets image from cropperjs using
cropper.getCroppedCanvas(). This utilizes
CanvasRenderingContext2D.drawImage() - and this doesn't support animated files. Depending on the browser that means the cropper will send only the first or the last frame of the gif.
There is a way to overcome this problem, but it adds complexity and requires additional dependencies. Basically, the cropper has to have a fallback for animated images, where if one is detected instead of
croppper.getData() is used and the data from it along with the original animated image is passed to another (probably back-end) software that works with gifs - for example ImageMagick.
So the problem with this plugin is in the front-end and a fix would require some changes to how cropper works in core NodeBB.