# Añadir cuadro de confirmación al responder a temas antiguos

**URL:** https://meta.discourse.org/t/add-confirmation-box-when-replying-to-old-topics/384483
**Category:** Development
**Created:** [1 Octubre, 2025 18:27 UTC](https://meta.discourse.org/t/add-confirmation-box-when-replying-to-old-topics/384483 "2025-10-01T18:27:23Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![CT075](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ct075/32/375367_2.png) [@CT075](https://meta.discourse.org/u/CT075)
#### Post date: [1 Octubre, 2025 18:27 UTC](https://meta.discourse.org/t/add-confirmation-box-when-replying-to-old-topics/384483/1 "2025-10-01T18:27:23Z")

</div>

(copiado en gran parte de [Creating a component to show last-chance warning when replying to old topics](https://meta.discourse.org/t/last-chance-warning-when-replying-to-old-topics/382689))

Estoy dirigiendo una comunidad que históricamente tiene un pequeño problema con el “necro-bumping” de hilos.

_Estoy_ familiarizado con `warn_reviving_old_topic_age` (y lo tenemos configurado), pero parece que muchos usuarios no ven la alerta. Tampoco queremos instituir temporizadores globales de temas porque realmente hay casos de uso en los que revivir un hilo antiguo es útil.

Nuestra solución anterior fue bloquear la publicación en un diálogo de “estás seguro” basado en este componente:

> [@Warn admins/tl4 when replying to closed topics](https://meta.discourse.org/t/warn-admins-tl4-when-replying-to-closed-topics/83912):
>
> [Admin Warnings Theme Component](https://github.com/davidtaylorhq/discourse-admin-warnings) https://github.com/davidtaylorhq/discourse-admin-warnings When admins click ‘reply’ on a closed topic, they will be warned. This helps to prevent admins accidentally continuing a closed/archived discussion (much to the frustration of other forum users!). Warning text is configurable as a theme setting. To install, follow the instructions here:

pero ese componente está marcado como roto (y de hecho, nuestra versión también está rota). Según el consejo de mi solicitud de soporte original, he comenzado a mirar el [detector de código no formateado](https://github.com/discourse/unformatted-code-detector/tree/main), que ha sido muy útil, pero me cuesta llegar a la meta.

Actualmente, tengo algo parecido a esto:

```javascript
import { withPluginApi } from "discourse/lib/plugin-api";
import { inject as service } from "@ember/service";

export default {
  name: "discourse-necro-warnings",
  initialize() {
    withPluginApi("0.8.8", (api) => {
      api.modifyClass("service:composer", (Superclass) =>
        class extends Superclass {
          save(...args) {
            let lastPostedAt = moment(this.model?.topic?.last_posted_at);
            let now = moment();
            let diff = now - lastPostedAt;
            console.log(diff);
            let d = moment.duration(settings.death_timer);

            if (diff >= d && !skipWarning) {
              // TODO: i18n
              let diffH = moment.duration(diff).humanize();
              let confirmationMessage = `La última publicación en este hilo fue hace ${diffH}. ¿Estás seguro de que quieres revivir este hilo?`;
              this.dialog.yesNoConfirm({
                message: confirmationMessage,
                didConfirm: () => {
                  super.save(...args);
                },
              });
            } else {
              super.save(...args);
            }
          }
        }
      );
    });
  },
};

```

pero no parece estar funcionando. Agregar algunos registros de depuración confirma que `this.model?.topic?.last_posted_at` es de hecho indefinido, y tampoco tengo idea de si el diálogo de confirmación funciona.

¡Cualquier consejo sería apreciado! Creo que solo obtener una cadena ISO de la fecha de publicación actual del tema (si la hay) sería suficiente para que yo progrese.
