# Lock Composer

**URL:** https://meta.discourse.org/t/lock-composer/396168
**Category:** Theme component
**Tags:** composer
**Created:** [February 16, 2026, 6:11am UTC](https://meta.discourse.org/t/lock-composer/396168 "2026-02-16T06:11:15Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [February 16, 2026, 6:11am UTC](https://meta.discourse.org/t/lock-composer/396168/1 "2026-02-16T06:11:15Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | Lock/unlock the composer to prevent accidental sending |
| 🛠 | **Repository** | [GitHub - NateDhaliwal/discourse-lock-composer · GitHub](https://github.com/NateDhaliwal/discourse-lock-composer) |
| ❓ | **Install Guide** | [How to install a theme or theme component](https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682) |
| 📖 | **New to Discourse Themes?** | [Beginner’s guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) |

Install this theme component

This is a simple component to lock/unlock the composer to prevent accidental sending. Originally brought up in [The awkward mishap of premature posting](https://meta.discourse.org/t/the-awkward-mishap-of-premature-posting/395908?username=natedhaliwal).

Locked:

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/5/c/a5ca68dc102ee4efd80969526275949e07e81589.png)

Unlocked:

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/0/2/80284feebb6913d61b4df032202bde3fef01937e.png)

Toasts are also shown once you click on the lock icon (texts are customizable as locales).

![image](https://global.discourse-cdn.com/meta/original/4X/7/6/3/763fa61da6b985b54417522f41592ab2ca99d6e2.png)

![image](https://global.discourse-cdn.com/meta/original/4X/c/e/3/ce38a4595f8ff14cc7ff365ee38078f50e62e65b.png)

Hope this helps!

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [February 16, 2026, 7:10am UTC](https://meta.discourse.org/t/lock-composer/396168/2 "2026-02-16T07:10:47Z")

</div>

Thanks.

But should icons work opposite way 🤔  
Now it is

- locked, when sending is enabled
- open, when sending is locked

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [February 16, 2026, 8:34am UTC](https://meta.discourse.org/t/lock-composer/396168/3 "2026-02-16T08:34:38Z")

</div>

Thanks. I’ve swapped them around.

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [March 3, 2026, 12:23pm UTC](https://meta.discourse.org/t/lock-composer/396168/4 "2026-03-03T12:23:33Z")

</div>

Would it be possible to, for example, lock the button and instead require users to first perform the AI Proofread action and make it mandatory? And possibly even trigger it via a custom button next to the “Reply” button?

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [March 3, 2026, 1:23pm UTC](https://meta.discourse.org/t/lock-composer/396168/5 "2026-03-03T13:23:22Z")

</div>

> [@jrgong](#):
>
> lock the button and instead require users to first perform the AI Proofread action and make it mandatory?

That seems a little out of scope for this component, and I’m not sure if there is a way to even track that besides `onclick` of the Approve button. It can be done, I suppose. Perhaps it would be better to fork this and do it there?
