import { debounce } from "@ember/runloop";
import Controller from "@ember/controller";
let lastSearch;

export default Controller.extend({
  searching: false,
  siteTexts: null,
  preferred: false,
  queryParams: ["q", "overridden"],

  q: null,
  overridden: false,

  _performSearch() {
    this.store
      .find("site-text", this.getProperties("q", "overridden"))
      .then(results => {
        this.set("siteTexts", results);
      })
      .finally(() => this.set("searching", false));
  },

  actions: {
    edit(siteText) {
      this.transitionToRoute("adminSiteText.edit", siteText.get("id"));
    },

    toggleOverridden() {
      this.toggleProperty("overridden");
      this.set("searching", true);
      debounce(this, this._performSearch, 400);
    },

    search() {
      const q = this.q;
      if (q !== lastSearch) {
        this.set("searching", true);
        debounce(this, this._performSearch, 400);
        lastSearch = q;
      }
    }
  }
});
