From a8d58c3b217b26f0e0e8189608b57a21293f709c Mon Sep 17 00:00:00 2001
From: Daniel Waterworth <me@danielwaterworth.com>
Date: Thu, 21 Nov 2019 10:33:40 +0000
Subject: [PATCH] DEV: Make filterModes obsolete

This mixin handles the translation between old filterModes and new
filterTypes. filterModes have context information, filterTypes do not.
---
 .../javascripts/discourse/components/d-navigation.js.es6      | 3 ++-
 .../javascripts/discourse/components/navigation-bar.js.es6    | 3 ++-
 .../javascripts/discourse/components/navigation-item.js.es6   | 2 ++
 .../discourse/controllers/navigation/category.js.es6          | 3 ++-
 .../discourse/controllers/navigation/default.js.es6           | 3 ++-
 app/assets/javascripts/discourse/controllers/tags-show.js.es6 | 4 ++--
 app/assets/javascripts/discourse/routes/tags-show.js.es6      | 3 ++-
 7 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/app/assets/javascripts/discourse/components/d-navigation.js.es6 b/app/assets/javascripts/discourse/components/d-navigation.js.es6
index faf79ff5fcd..ea0b2fddc84 100644
--- a/app/assets/javascripts/discourse/components/d-navigation.js.es6
+++ b/app/assets/javascripts/discourse/components/d-navigation.js.es6
@@ -2,8 +2,9 @@ import discourseComputed from "discourse-common/utils/decorators";
 import NavItem from "discourse/models/nav-item";
 import { inject as service } from "@ember/service";
 import Component from "@ember/component";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default Component.extend({
+export default Component.extend(FilterModeMixin, {
   router: service(),
   persistedQueryParams: null,
 
diff --git a/app/assets/javascripts/discourse/components/navigation-bar.js.es6 b/app/assets/javascripts/discourse/components/navigation-bar.js.es6
index a533ba95def..b3157f5748f 100644
--- a/app/assets/javascripts/discourse/components/navigation-bar.js.es6
+++ b/app/assets/javascripts/discourse/components/navigation-bar.js.es6
@@ -6,8 +6,9 @@ import {
 } from "discourse-common/utils/decorators";
 import DiscourseURL from "discourse/lib/url";
 import { renderedConnectorsFor } from "discourse/lib/plugin-connectors";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default Component.extend({
+export default Component.extend(FilterModeMixin, {
   tagName: "ul",
   classNameBindings: [":nav", ":nav-pills"],
   elementId: "navigation-bar",
diff --git a/app/assets/javascripts/discourse/components/navigation-item.js.es6 b/app/assets/javascripts/discourse/components/navigation-item.js.es6
index f6805dfb2f2..3ed9740c6b7 100644
--- a/app/assets/javascripts/discourse/components/navigation-item.js.es6
+++ b/app/assets/javascripts/discourse/components/navigation-item.js.es6
@@ -1,8 +1,10 @@
 import discourseComputed from "discourse-common/utils/decorators";
 import Component from "@ember/component";
 import { bufferedRender } from "discourse-common/lib/buffered-render";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
 export default Component.extend(
+  FilterModeMixin,
   bufferedRender({
     tagName: "li",
     classNameBindings: [
diff --git a/app/assets/javascripts/discourse/controllers/navigation/category.js.es6 b/app/assets/javascripts/discourse/controllers/navigation/category.js.es6
index 1b132655769..23da3c88df8 100644
--- a/app/assets/javascripts/discourse/controllers/navigation/category.js.es6
+++ b/app/assets/javascripts/discourse/controllers/navigation/category.js.es6
@@ -1,7 +1,8 @@
 import { none, and } from "@ember/object/computed";
 import NavigationDefaultController from "discourse/controllers/navigation/default";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default NavigationDefaultController.extend({
+export default NavigationDefaultController.extend(FilterModeMixin, {
   showingParentCategory: none("category.parentCategory"),
   showingSubcategoryList: and(
     "category.show_subcategory_list",
diff --git a/app/assets/javascripts/discourse/controllers/navigation/default.js.es6 b/app/assets/javascripts/discourse/controllers/navigation/default.js.es6
index 23220761c10..02dd26acde8 100644
--- a/app/assets/javascripts/discourse/controllers/navigation/default.js.es6
+++ b/app/assets/javascripts/discourse/controllers/navigation/default.js.es6
@@ -1,8 +1,9 @@
 import discourseComputed from "discourse-common/utils/decorators";
 import { inject } from "@ember/controller";
 import Controller from "@ember/controller";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default Controller.extend({
+export default Controller.extend(FilterModeMixin, {
   discovery: inject(),
   discoveryTopics: inject("discovery/topics"),
 
diff --git a/app/assets/javascripts/discourse/controllers/tags-show.js.es6 b/app/assets/javascripts/discourse/controllers/tags-show.js.es6
index 4a8cc98dd92..26aa9d9684a 100644
--- a/app/assets/javascripts/discourse/controllers/tags-show.js.es6
+++ b/app/assets/javascripts/discourse/controllers/tags-show.js.es6
@@ -7,15 +7,15 @@ import {
 } from "discourse-common/utils/decorators";
 import BulkTopicSelection from "discourse/mixins/bulk-topic-selection";
 import { default as NavItem } from "discourse/models/nav-item";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default Controller.extend(BulkTopicSelection, {
+export default Controller.extend(BulkTopicSelection, FilterModeMixin, {
   application: inject(),
 
   tag: null,
   additionalTags: null,
   list: null,
   canAdminTag: alias("currentUser.staff"),
-  filterMode: null,
   navMode: "latest",
   loading: false,
   canCreateTopic: false,
diff --git a/app/assets/javascripts/discourse/routes/tags-show.js.es6 b/app/assets/javascripts/discourse/routes/tags-show.js.es6
index 5d8f44aceb0..30e88749921 100644
--- a/app/assets/javascripts/discourse/routes/tags-show.js.es6
+++ b/app/assets/javascripts/discourse/routes/tags-show.js.es6
@@ -8,8 +8,9 @@ import {
 import { queryParams } from "discourse/controllers/discovery-sortable";
 import PermissionType from "discourse/models/permission-type";
 import Category from "discourse/models/category";
+import FilterModeMixin from "discourse/mixins/filter-mode";
 
-export default DiscourseRoute.extend({
+export default DiscourseRoute.extend(FilterModeMixin, {
   navMode: "latest",
 
   queryParams,