diff options
Diffstat (limited to 'src/components/settings/recipes/RecipesDashboard.js')
-rw-r--r-- | src/components/settings/recipes/RecipesDashboard.js | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/components/settings/recipes/RecipesDashboard.js b/src/components/settings/recipes/RecipesDashboard.js index 4f19a6116..96207445c 100644 --- a/src/components/settings/recipes/RecipesDashboard.js +++ b/src/components/settings/recipes/RecipesDashboard.js | |||
@@ -28,6 +28,10 @@ const messages = defineMessages({ | |||
28 | id: 'settings.searchService', | 28 | id: 'settings.searchService', |
29 | defaultMessage: 'Search service', | 29 | defaultMessage: 'Search service', |
30 | }, | 30 | }, |
31 | mostPopularRecipes: { | ||
32 | id: 'settings.recipes.mostPopular', | ||
33 | defaultMessage: '!!!Most popular', | ||
34 | }, | ||
31 | allRecipes: { | 35 | allRecipes: { |
32 | id: 'settings.recipes.all', | 36 | id: 'settings.recipes.all', |
33 | defaultMessage: 'All services', | 37 | defaultMessage: 'All services', |
@@ -110,6 +114,7 @@ class RecipesDashboard extends Component { | |||
110 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, | 114 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, |
111 | customWebsiteRecipe: PropTypes.instanceOf(RecipePreview).isRequired, | 115 | customWebsiteRecipe: PropTypes.instanceOf(RecipePreview).isRequired, |
112 | isLoading: PropTypes.bool.isRequired, | 116 | isLoading: PropTypes.bool.isRequired, |
117 | hasLoadedRecipes: PropTypes.bool.isRequired, | ||
113 | showAddServiceInterface: PropTypes.func.isRequired, | 118 | showAddServiceInterface: PropTypes.func.isRequired, |
114 | searchRecipes: PropTypes.func.isRequired, | 119 | searchRecipes: PropTypes.func.isRequired, |
115 | resetSearch: PropTypes.func.isRequired, | 120 | resetSearch: PropTypes.func.isRequired, |
@@ -132,6 +137,7 @@ class RecipesDashboard extends Component { | |||
132 | recipes, | 137 | recipes, |
133 | customWebsiteRecipe, | 138 | customWebsiteRecipe, |
134 | isLoading, | 139 | isLoading, |
140 | hasLoadedRecipes, | ||
135 | showAddServiceInterface, | 141 | showAddServiceInterface, |
136 | searchRecipes, | 142 | searchRecipes, |
137 | resetSearch, | 143 | resetSearch, |
@@ -179,6 +185,14 @@ class RecipesDashboard extends Component { | |||
179 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} | 185 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} |
180 | onClick={() => resetSearch()} | 186 | onClick={() => resetSearch()} |
181 | > | 187 | > |
188 | {intl.formatMessage(messages.mostPopularRecipes)} | ||
189 | </Link> | ||
190 | <Link | ||
191 | to="/settings/recipes/all" | ||
192 | className="badge" | ||
193 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} | ||
194 | onClick={() => resetSearch()} | ||
195 | > | ||
182 | {intl.formatMessage(messages.allRecipes)} | 196 | {intl.formatMessage(messages.allRecipes)} |
183 | </Link> | 197 | </Link> |
184 | <Link | 198 | <Link |
@@ -243,7 +257,7 @@ class RecipesDashboard extends Component { | |||
243 | /> | 257 | /> |
244 | ))} | 258 | ))} |
245 | </div> | 259 | </div> |
246 | {recipes.length === 0 && recipeFilter !== 'dev' && ( | 260 | {hasLoadedRecipes && recipes.length === 0 && recipeFilter !== 'dev' && ( |
247 | <div className="align-middle settings__empty-state"> | 261 | <div className="align-middle settings__empty-state"> |
248 | {customWebsiteRecipe && customWebsiteRecipe.id && ( | 262 | {customWebsiteRecipe && customWebsiteRecipe.id && ( |
249 | <RecipeItem | 263 | <RecipeItem |