DEV: Auto save caption on mobile view (#486)
This commit is contained in:
parent
0f761234f9
commit
0596ce41fe
|
@ -2,6 +2,7 @@ import { ajax } from "discourse/lib/ajax";
|
||||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||||
import { apiInitializer } from "discourse/lib/api";
|
import { apiInitializer } from "discourse/lib/api";
|
||||||
import I18n from "discourse-i18n";
|
import I18n from "discourse-i18n";
|
||||||
|
import { IMAGE_MARKDOWN_REGEX } from "../discourse/lib/utilities";
|
||||||
|
|
||||||
export default apiInitializer("1.25.0", (api) => {
|
export default apiInitializer("1.25.0", (api) => {
|
||||||
const buttonAttrs = {
|
const buttonAttrs = {
|
||||||
|
@ -11,6 +12,9 @@ export default apiInitializer("1.25.0", (api) => {
|
||||||
};
|
};
|
||||||
const imageCaptionPopup = api.container.lookup("service:imageCaptionPopup");
|
const imageCaptionPopup = api.container.lookup("service:imageCaptionPopup");
|
||||||
const settings = api.container.lookup("service:site-settings");
|
const settings = api.container.lookup("service:site-settings");
|
||||||
|
const composer = api.container.lookup("service:composer");
|
||||||
|
const appEvents = api.container.lookup("service:app-events");
|
||||||
|
const site = api.container.lookup("site:main");
|
||||||
|
|
||||||
if (!settings.ai_helper_enabled_features.includes("image_caption")) {
|
if (!settings.ai_helper_enabled_features.includes("image_caption")) {
|
||||||
return;
|
return;
|
||||||
|
@ -32,7 +36,10 @@ export default apiInitializer("1.25.0", (api) => {
|
||||||
.getAttribute("src");
|
.getAttribute("src");
|
||||||
|
|
||||||
imageCaptionPopup.loading = true;
|
imageCaptionPopup.loading = true;
|
||||||
imageCaptionPopup.showPopup = !imageCaptionPopup.showPopup;
|
|
||||||
|
if (!site.mobileView) {
|
||||||
|
imageCaptionPopup.showPopup = !imageCaptionPopup.showPopup;
|
||||||
|
}
|
||||||
|
|
||||||
event.target.classList.add("disabled");
|
event.target.classList.add("disabled");
|
||||||
|
|
||||||
|
@ -46,6 +53,18 @@ export default apiInitializer("1.25.0", (api) => {
|
||||||
imageCaptionPopup.imageSrc = imageSrc;
|
imageCaptionPopup.imageSrc = imageSrc;
|
||||||
imageCaptionPopup.imageIndex = imageIndex;
|
imageCaptionPopup.imageIndex = imageIndex;
|
||||||
imageCaptionPopup.newCaption = caption;
|
imageCaptionPopup.newCaption = caption;
|
||||||
|
|
||||||
|
if (site.mobileView) {
|
||||||
|
// Auto-saves caption on mobile view
|
||||||
|
const matchingPlaceholder =
|
||||||
|
composer.model.reply.match(IMAGE_MARKDOWN_REGEX);
|
||||||
|
const match = matchingPlaceholder[imageIndex];
|
||||||
|
const replacement = match.replace(
|
||||||
|
IMAGE_MARKDOWN_REGEX,
|
||||||
|
`![${imageCaptionPopup.newCaption}|$2$3$4]($5)`
|
||||||
|
);
|
||||||
|
appEvents.trigger("composer:replace-text", match, replacement);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch(popupAjaxError)
|
.catch(popupAjaxError)
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
Loading…
Reference in New Issue