From fbff4ed90b0137088b1bb92e95f32fc1bfa7bb3e Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 2 May 2019 11:27:23 +0200 Subject: Add custom recipe limitation --- src/containers/settings/RecipesScreen.js | 40 ++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'src/containers') diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js index eda5ae54c..57e879f42 100644 --- a/src/containers/settings/RecipesScreen.js +++ b/src/containers/settings/RecipesScreen.js @@ -1,7 +1,9 @@ +import { remote, shell } from 'electron'; import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { autorun } from 'mobx'; import { inject, observer } from 'mobx-react'; +import path from 'path'; import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; import RecipeStore from '../../stores/RecipesStore'; @@ -10,6 +12,11 @@ import UserStore from '../../stores/UserStore'; import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; +import { FRANZ_DEV_DOCS } from '../../config'; +import { gaEvent } from '../../lib/analytics'; +import { communityRecipesStore } from '../../features/communityRecipes'; + +const { app } = remote; export default @inject('stores', 'actions') @observer class RecipesScreen extends Component { static propTypes = { @@ -67,9 +74,16 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend render() { const { - recipePreviews, recipes, services, user, + recipePreviews, + recipes, + services, + user, } = this.props.stores; - const { showAddServiceInterface } = this.props.actions.service; + + const { + app: appActions, + service: serviceActions, + } = this.props.actions; const { filter } = this.props.params; let recipeFilter; @@ -77,7 +91,7 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend if (filter === 'all') { recipeFilter = recipePreviews.all; } else if (filter === 'dev') { - recipeFilter = recipePreviews.dev; + recipeFilter = communityRecipesStore.communityRecipes; } else { recipeFilter = recipePreviews.featured; } @@ -89,6 +103,8 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend || recipes.installRecipeRequest.isExecuting || recipePreviews.searchRecipePreviewsRequest.isExecuting; + const recipeDirectory = path.join(app.getPath('userData'), 'recipes', 'dev'); + return ( this.searchRecipes(e)} resetSearch={() => this.resetSearch()} searchNeedle={this.state.needle} serviceStatus={services.actionStatus} - devRecipesCount={recipePreviews.dev.length} + recipeFilter={filter} + recipeDirectory={recipeDirectory} + openRecipeDirectory={() => { + shell.openItem(recipeDirectory); + gaEvent('Recipe', 'open-recipe-folder', 'Open Folder'); + }} + openDevDocs={() => { + appActions.openExternalUrl({ url: FRANZ_DEV_DOCS }); + gaEvent('Recipe', 'open-dev-docs', 'Developer Documentation'); + }} + isCommunityRecipesPremiumFeature={communityRecipesStore.isCommunityRecipesPremiumFeature} + isUserPremiumUser={user.isPremium} /> ); @@ -117,6 +144,9 @@ RecipesScreen.wrappedComponent.propTypes = { user: PropTypes.instanceOf(UserStore).isRequired, }).isRequired, actions: PropTypes.shape({ + app: PropTypes.shape({ + openExternalUrl: PropTypes.func.isRequired, + }).isRequired, service: PropTypes.shape({ showAddServiceInterface: PropTypes.func.isRequired, }).isRequired, -- cgit v1.2.3-70-g09d2 From 2887eee3935e75640fc45111a904e78496dab62e Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 17 Jun 2019 16:52:46 +0200 Subject: Rename feature flags --- src/components/settings/recipes/RecipesDashboard.js | 8 ++++---- src/components/settings/services/EditServiceForm.js | 12 ++++++------ src/components/settings/settings/EditSettingsForm.js | 8 +++++--- src/config.js | 6 +++--- src/containers/settings/EditServiceScreen.js | 4 ++-- src/containers/settings/EditSettingsScreen.js | 6 +++--- src/containers/settings/RecipesScreen.js | 2 +- src/features/communityRecipes/index.js | 4 ++-- src/features/communityRecipes/store.js | 2 +- src/features/serviceProxy/index.js | 8 ++++---- src/features/spellchecker/index.js | 8 ++++---- src/features/workspaces/store.js | 6 +++--- src/stores/ServicesStore.js | 4 ++-- 13 files changed, 40 insertions(+), 38 deletions(-) (limited to 'src/containers') diff --git a/src/components/settings/recipes/RecipesDashboard.js b/src/components/settings/recipes/RecipesDashboard.js index ed4a429db..75e60b7ec 100644 --- a/src/components/settings/recipes/RecipesDashboard.js +++ b/src/components/settings/recipes/RecipesDashboard.js @@ -118,7 +118,7 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com openRecipeDirectory: PropTypes.func.isRequired, openDevDocs: PropTypes.func.isRequired, classes: PropTypes.object.isRequired, - isCommunityRecipesPremiumFeature: PropTypes.bool.isRequired, + isCommunityRecipesIncludedInCurrentPlan: PropTypes.bool.isRequired, }; static defaultProps = { @@ -145,7 +145,7 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com openRecipeDirectory, openDevDocs, classes, - isCommunityRecipesPremiumFeature, + isCommunityRecipesIncludedInCurrentPlan, } = this.props; const { intl } = this.context; @@ -218,7 +218,7 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com <>

{intl.formatMessage(messages.headlineCustomRecipes)} - {isCommunityRecipesPremiumFeature && ( + {isCommunityRecipesIncludedInCurrentPlan && ( )}

@@ -247,7 +247,7 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com )} 0) && isCommunityRecipesPremiumFeature} + condition={(recipeFilter === 'dev' && communityRecipes.length > 0) && isCommunityRecipesIncludedInCurrentPlan} > {recipeFilter === 'dev' && communityRecipes.length > 0 && (

{intl.formatMessage(messages.headlineCommunityRecipes)}

diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index c089a1582..5cde0db8e 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -130,8 +130,8 @@ export default @observer class EditServiceForm extends Component { isSaving: PropTypes.bool.isRequired, isDeleting: PropTypes.bool.isRequired, isProxyFeatureEnabled: PropTypes.bool.isRequired, - isProxyPremiumFeature: PropTypes.bool.isRequired, - isSpellcheckerPremiumFeature: PropTypes.bool.isRequired, + isServiceProxyIncludedInCurrentPlan: PropTypes.bool.isRequired, + isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, }; static defaultProps = { @@ -194,8 +194,8 @@ export default @observer class EditServiceForm extends Component { isDeleting, onDelete, isProxyFeatureEnabled, - isProxyPremiumFeature, - isSpellcheckerPremiumFeature, + isServiceProxyIncludedInCurrentPlan, + isSpellcheckerIncludedInCurrentPlan, } = this.props; const { intl } = this.context; @@ -345,7 +345,7 @@ export default @observer class EditServiceForm extends Component {
@@ -355,7 +355,7 @@ export default @observer class EditServiceForm extends Component { {isProxyFeatureEnabled && (
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index efd453356..6d0811b1b 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -100,7 +100,7 @@ export default @observer class EditSettingsForm extends Component { isClearingAllCache: PropTypes.bool.isRequired, onClearAllCache: PropTypes.func.isRequired, cacheSize: PropTypes.string.isRequired, - isSpellcheckerPremiumFeature: PropTypes.bool.isRequired, + isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, }; static contextTypes = { @@ -130,7 +130,7 @@ export default @observer class EditSettingsForm extends Component { isClearingAllCache, onClearAllCache, cacheSize, - isSpellcheckerPremiumFeature, + isSpellcheckerIncludedInCurrentPlan, } = this.props; const { intl } = this.context; @@ -143,6 +143,8 @@ export default @observer class EditSettingsForm extends Component { updateButtonLabelMessage = messages.buttonSearchForUpdate; } + console.log('isSpellcheckerIncludedInCurrentPlan', isSpellcheckerIncludedInCurrentPlan); + return (
@@ -173,7 +175,7 @@ export default @observer class EditSettingsForm extends Component {

{intl.formatMessage(messages.headlineLanguage)}