aboutsummaryrefslogtreecommitdiffstats
path: root/src/features
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2019-04-16 11:48:04 +0200
committerLibravatar GitHub <noreply@github.com>2019-04-16 11:48:04 +0200
commit65c6a5709a5f2acd527ade8dd01031f8dea654c9 (patch)
tree8a49a5e84333fab64dee113da0608e45fdb7ddc1 /src/features
parentFix linting issue (diff)
parentincrease app opens to show share franz overlay (diff)
downloadferdium-app-65c6a5709a5f2acd527ade8dd01031f8dea654c9.tar.gz
ferdium-app-65c6a5709a5f2acd527ade8dd01031f8dea654c9.tar.zst
ferdium-app-65c6a5709a5f2acd527ade8dd01031f8dea654c9.zip
Merge branch 'develop' into chore/streamline-dashboard
Diffstat (limited to 'src/features')
-rw-r--r--src/features/shareFranz/index.js2
-rw-r--r--src/features/workspaces/components/EditWorkspaceForm.js41
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.js38
3 files changed, 59 insertions, 22 deletions
diff --git a/src/features/shareFranz/index.js b/src/features/shareFranz/index.js
index 3a8ec95d3..87deacef4 100644
--- a/src/features/shareFranz/index.js
+++ b/src/features/shareFranz/index.js
@@ -35,7 +35,7 @@ export default function initialize(stores) {
35 () => stores.user.isLoggedIn, 35 () => stores.user.isLoggedIn,
36 () => { 36 () => {
37 setTimeout(() => { 37 setTimeout(() => {
38 if (stores.settings.stats.appStarts % 30 === 0) { 38 if (stores.settings.stats.appStarts % 50 === 0) {
39 if (delayAppState.isDelayAppScreenVisible) { 39 if (delayAppState.isDelayAppScreenVisible) {
40 debug('Delaying share modal by 5 minutes'); 40 debug('Delaying share modal by 5 minutes');
41 setTimeout(() => showModal(), ms('5m')); 41 setTimeout(() => showModal(), ms('5m'));
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js
index bba4485ff..e602ebd5a 100644
--- a/src/features/workspaces/components/EditWorkspaceForm.js
+++ b/src/features/workspaces/components/EditWorkspaceForm.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
@@ -36,6 +36,14 @@ const messages = defineMessages({
36 id: 'settings.workspace.form.servicesInWorkspaceHeadline', 36 id: 'settings.workspace.form.servicesInWorkspaceHeadline',
37 defaultMessage: '!!!Services in this Workspace', 37 defaultMessage: '!!!Services in this Workspace',
38 }, 38 },
39 noServicesAdded: {
40 id: 'settings.services.noServicesAdded',
41 defaultMessage: '!!!You haven\'t added any services yet.',
42 },
43 discoverServices: {
44 id: 'settings.services.discoverServices',
45 defaultMessage: '!!!Discover services',
46 },
39}); 47});
40 48
41const styles = () => ({ 49const styles = () => ({
@@ -150,14 +158,29 @@ class EditWorkspaceForm extends Component {
150 </div> 158 </div>
151 <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> 159 <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2>
152 <div className={classes.serviceList}> 160 <div className={classes.serviceList}>
153 {services.map(s => ( 161 {services.length === 0 ? (
154 <WorkspaceServiceListItem 162 <div className="align-middle settings__empty-state">
155 key={s.id} 163 {/* ===== Empty state ===== */}
156 service={s} 164 <p className="settings__empty-text">
157 isInWorkspace={workspaceServices.includes(s.id)} 165 <span className="emoji">
158 onToggle={() => this.toggleService(s)} 166 <img src="./assets/images/emoji/sad.png" alt="" />
159 /> 167 </span>
160 ))} 168 {intl.formatMessage(messages.noServicesAdded)}
169 </p>
170 <Link to="/settings/recipes" className="button">{intl.formatMessage(messages.discoverServices)}</Link>
171 </div>
172 ) : (
173 <Fragment>
174 {services.map(s => (
175 <WorkspaceServiceListItem
176 key={s.id}
177 service={s}
178 isInWorkspace={workspaceServices.includes(s.id)}
179 onToggle={() => this.toggleService(s)}
180 />
181 ))}
182 </Fragment>
183 )}
161 </div> 184 </div>
162 </div> 185 </div>
163 <div className="settings__controls"> 186 <div className="settings__controls">
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js
index dd4381a15..09c98ab8c 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.js
+++ b/src/features/workspaces/components/WorkspacesDashboard.js
@@ -170,18 +170,32 @@ class WorkspacesDashboard extends Component {
170 {intl.formatMessage(messages.workspacesRequestFailed)} 170 {intl.formatMessage(messages.workspacesRequestFailed)}
171 </Infobox> 171 </Infobox>
172 ) : ( 172 ) : (
173 <table className={classes.table}> 173 <Fragment>
174 {/* ===== Workspaces list ===== */} 174 {workspaces.length === 0 ? (
175 <tbody> 175 <div className="align-middle settings__empty-state">
176 {workspaces.map(workspace => ( 176 {/* ===== Workspaces empty state ===== */}
177 <WorkspaceItem 177 <p className="settings__empty-text">
178 key={workspace.id} 178 <span className="emoji">
179 workspace={workspace} 179 <img src="./assets/images/emoji/sad.png" alt="" />
180 onItemClick={w => onWorkspaceClick(w)} 180 </span>
181 /> 181 {intl.formatMessage(messages.noServicesAdded)}
182 ))} 182 </p>
183 </tbody> 183 </div>
184 </table> 184 ) : (
185 <table className={classes.table}>
186 {/* ===== Workspaces list ===== */}
187 <tbody>
188 {workspaces.map(workspace => (
189 <WorkspaceItem
190 key={workspace.id}
191 workspace={workspace}
192 onItemClick={w => onWorkspaceClick(w)}
193 />
194 ))}
195 </tbody>
196 </table>
197 )}
198 </Fragment>
185 )} 199 )}
186 </Fragment> 200 </Fragment>
187 )} 201 )}