# Issue open pre-filled composer

**URL:** https://meta.discourse.org/t/issue-open-pre-filled-composer/82979
**Category:** Development
**Created:** [March 14, 2018, 2:48pm UTC](https://meta.discourse.org/t/issue-open-pre-filled-composer/82979 "2018-03-14T14:48:38Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![duranmla](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/duranmla/32/109295_2.png) [@duranmla](https://meta.discourse.org/u/duranmla)
#### Post date: [March 14, 2018, 2:48pm UTC](https://meta.discourse.org/t/issue-open-pre-filled-composer/82979/1 "2018-03-14T14:48:38Z")

</div>

I have already made a topic that gives me information about how to open the composer with pre-filled information, besides, I got some useful answer about working with actions too, those Topics can be found at:

- [https://meta.discourse.org/t/accessing-the-createtopic-action-while-on-a-topic-route/26423/6](https://meta.discourse.org/t/accessing-the-createtopic-action-while-on-a-topic-route/26423/6)
- [Open Composer with Prefilled information](https://meta.discourse.org/t/open-composer-with-prefilled-information/82915)

However, I face the problem that the composer gets open but it doesn’t open instantly, instead, the app moves to: `/latest` URL and once the loading there finishes THEN the composer opens. In that sense, I am posting this in order to **know if there is a better way to ensure the composer opens without load a new page so it can be open instantly (as soon the user click the button)** The code I use looks like:

```
_openComposerWithParams($form) {
    var serializedData = $form.serialize();
    var pathToOpenComposer = `/new-topic?${serializedData}`

    // open composer using query params
    DiscourseURL.routeTo(`${pathToOpenComposer}`);
}

```

and of course, I have a `preventDefault` on the form submission to avoid redirections.

```
$form.on('submit', (e) => {
      e.preventDefault();
      this._openComposerWithParams($form);
});

```

**PD:** I am publishing all these topics around quite the same context not because I stop to make my research and wants someone does my homework but to actually helps someone else with the same problems.

Lastly, I didn’t mark this as a “BUG” cause sounds more like I am doing something wrong cause I do not think this is the expected behavior.

---

<div class="post-metadata">

### Author: ![Osama](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osama/32/98013_2.png) [@Osama](https://meta.discourse.org/u/Osama)
#### Post date: [March 14, 2018, 6:59pm UTC](https://meta.discourse.org/t/issue-open-pre-filled-composer/82979/2 "2018-03-14T18:59:09Z")

</div>

You could do something like this in your button’s action:

```plaintext
const { CREATE_TOPIC, DRAFT } = require('discourse/models/composer').default;

composer = Discourse. __container__.lookup('controller:composer');
composer.open({
  action: CREATE_TOPIC,
  draftKey: DRAFT,
  title: "Pre-filled topic title!",
  topicBody: "Pre-filled topic body goes here"
});

```

You can pass additional data to the composer’s `open()` method such as tags, category ID, target usernames if you’re sending a message and so on. There are a lot of clues in this file:

[https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/controllers/composer.js.es6#L587](https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/controllers/composer.js.es6#L587)
