| 515 | 515 | eventSource.on(event_types.MESSAGE_FILE_EMBEDDED, onMessageEvent); |
| 516 | 516 | |
| 517 | 517 | $(document).on('click', '.mes_img_caption', async function () { |
| 518 | + const animationClass = 'fa-fade'; |
| 518 | 519 | const messageBlock = $(this).closest('.mes'); |
| 520 | + const messageImg = messageBlock.find('.mes_img'); |
| 521 | + if (messageImg.hasClass(animationClass)) return; |
| 522 | + messageImg.addClass(animationClass); |
| 519 | 523 | const index = Number(messageBlock.attr('mesid')); |
| 520 | 524 | const data = getContext().chat[index]; |
| 521 | 525 | await captionExistingMessage(data); |
| 522 | 526 | appendMediaToMessage(data, messageBlock, false); |
| 523 | 527 | await saveChatConditional(); |
| 528 | + messageImg.removeClass(animationClass); |
| 524 | 529 | }); |
| 525 | 530 | |
| 526 | 531 | SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'caption', |