aboutsummaryrefslogtreecommitdiffstats
path: root/src/features
diff options
context:
space:
mode:
authorLibravatar Markus Hatvan <markus_hatvan@aon.at>2021-10-14 23:32:05 +0200
committerLibravatar GitHub <noreply@github.com>2021-10-15 03:02:05 +0530
commit137555821f172e4eadc7cf099d4270ae8fc1374e (patch)
tree693882bbf7a6b2a24b5a727091d09586d0371007 /src/features
parentNew translations en-US.json (Spanish) (#2072) (diff)
downloadferdium-app-137555821f172e4eadc7cf099d4270ae8fc1374e.tar.gz
ferdium-app-137555821f172e4eadc7cf099d4270ae8fc1374e.tar.zst
ferdium-app-137555821f172e4eadc7cf099d4270ae8fc1374e.zip
chore: convert components to tsx (#2071)
Diffstat (limited to 'src/features')
-rw-r--r--src/features/basicAuth/index.ts (renamed from src/features/basicAuth/index.js)6
-rw-r--r--src/features/nightlyBuilds/index.ts (renamed from src/features/nightlyBuilds/index.js)10
-rw-r--r--src/features/todos/preload.ts (renamed from src/features/todos/preload.js)2
-rw-r--r--src/features/workspaces/components/WorkspaceItem.tsx (renamed from src/features/workspaces/components/WorkspaceItem.js)8
-rw-r--r--src/features/workspaces/components/WorkspaceServiceListItem.tsx (renamed from src/features/workspaces/components/WorkspaceServiceListItem.js)33
-rw-r--r--src/features/workspaces/containers/EditWorkspaceScreen.tsx (renamed from src/features/workspaces/containers/EditWorkspaceScreen.js)34
-rw-r--r--src/features/workspaces/containers/WorkspacesScreen.tsx (renamed from src/features/workspaces/containers/WorkspacesScreen.js)20
7 files changed, 56 insertions, 57 deletions
diff --git a/src/features/basicAuth/index.js b/src/features/basicAuth/index.ts
index e43d51d15..149ab6c19 100644
--- a/src/features/basicAuth/index.js
+++ b/src/features/basicAuth/index.ts
@@ -1,4 +1,4 @@
1import { ipcRenderer } from 'electron'; 1import { AuthInfo, BrowserWindow, ipcRenderer } from 'electron';
2 2
3import BasicAuthComponent from './Component'; 3import BasicAuthComponent from './Component';
4 4
@@ -11,7 +11,7 @@ const state = ModalState;
11export default function initialize() { 11export default function initialize() {
12 debug('Initialize basicAuth feature'); 12 debug('Initialize basicAuth feature');
13 13
14 window.ferdi.features.basicAuth = { 14 window['ferdi'].features.basicAuth = {
15 state, 15 state,
16 }; 16 };
17 17
@@ -23,7 +23,7 @@ export default function initialize() {
23 }); 23 });
24} 24}
25 25
26export function mainIpcHandler(mainWindow, authInfo) { 26export function mainIpcHandler(mainWindow: BrowserWindow, authInfo: AuthInfo) {
27 debug('Sending basic auth call', authInfo); 27 debug('Sending basic auth call', authInfo);
28 28
29 mainWindow.webContents.send('feature:basic-auth-request', { 29 mainWindow.webContents.send('feature:basic-auth-request', {
diff --git a/src/features/nightlyBuilds/index.js b/src/features/nightlyBuilds/index.ts
index 89bcb5cb3..14afbaf1b 100644
--- a/src/features/nightlyBuilds/index.js
+++ b/src/features/nightlyBuilds/index.ts
@@ -14,26 +14,26 @@ export default function initialize() {
14 } 14 }
15 15
16 function toggleFeature() { 16 function toggleFeature() {
17 if (window.ferdi.stores.settings.app.nightly) { 17 if (window['ferdi'].stores.settings.app.nightly) {
18 window.ferdi.actions.settings.update({ 18 window['ferdi'].actions.settings.update({
19 type: 'app', 19 type: 'app',
20 data: { 20 data: {
21 nightly: false, 21 nightly: false,
22 }, 22 },
23 }); 23 });
24 window.ferdi.actions.user.update({ 24 window['ferdi'].actions.user.update({
25 userData: { 25 userData: {
26 nightly: false, 26 nightly: false,
27 }, 27 },
28 }); 28 });
29 } else { 29 } else {
30 // We need to close the settings, otherwise the modal will be drawn under the settings window 30 // We need to close the settings, otherwise the modal will be drawn under the settings window
31 window.ferdi.actions.ui.closeSettings(); 31 window['ferdi'].actions.ui.closeSettings();
32 showModal(); 32 showModal();
33 } 33 }
34 } 34 }
35 35
36 window.ferdi.features.nightlyBuilds = { 36 window['ferdi'].features.nightlyBuilds = {
37 state, 37 state,
38 showModal, 38 showModal,
39 toggleFeature, 39 toggleFeature,
diff --git a/src/features/todos/preload.js b/src/features/todos/preload.ts
index 3b86ddbc5..31d473051 100644
--- a/src/features/todos/preload.js
+++ b/src/features/todos/preload.ts
@@ -14,7 +14,7 @@ let hostMessageListener = ({ action }) => {
14 } 14 }
15}; 15};
16 16
17window.ferdi = { 17window['ferdi'] = {
18 onInitialize(ipcHostMessageListener) { 18 onInitialize(ipcHostMessageListener) {
19 hostMessageListener = ipcHostMessageListener; 19 hostMessageListener = ipcHostMessageListener;
20 ipcRenderer.sendToHost(IPC.TODOS_CLIENT_CHANNEL, { 20 ipcRenderer.sendToHost(IPC.TODOS_CLIENT_CHANNEL, {
diff --git a/src/features/workspaces/components/WorkspaceItem.js b/src/features/workspaces/components/WorkspaceItem.tsx
index ff3f69dd9..6fb02d2f5 100644
--- a/src/features/workspaces/components/WorkspaceItem.js
+++ b/src/features/workspaces/components/WorkspaceItem.tsx
@@ -16,9 +16,15 @@ const styles = theme => ({
16 columnName: {}, 16 columnName: {},
17}); 17});
18 18
19type Props = {
20 classes: any;
21 workspace: any;
22 onItemClick: (workspace) => void;
23};
24
19@injectSheet(styles) 25@injectSheet(styles)
20@observer 26@observer
21class WorkspaceItem extends Component { 27class WorkspaceItem extends Component<Props> {
22 static propTypes = { 28 static propTypes = {
23 classes: PropTypes.object.isRequired, 29 classes: PropTypes.object.isRequired,
24 workspace: PropTypes.instanceOf(Workspace).isRequired, 30 workspace: PropTypes.instanceOf(Workspace).isRequired,
diff --git a/src/features/workspaces/components/WorkspaceServiceListItem.js b/src/features/workspaces/components/WorkspaceServiceListItem.tsx
index c06f3c61c..b6faaf4ce 100644
--- a/src/features/workspaces/components/WorkspaceServiceListItem.js
+++ b/src/features/workspaces/components/WorkspaceServiceListItem.tsx
@@ -1,14 +1,12 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
4import injectSheet from 'react-jss'; 3import injectSheet from 'react-jss';
5import classnames from 'classnames'; 4import classnames from 'classnames';
6import { Toggle } from '@meetfranz/forms'; 5import { Toggle } from '@meetfranz/forms';
7 6
8import Service from '../../../models/Service';
9import ServiceIcon from '../../../components/ui/ServiceIcon'; 7import ServiceIcon from '../../../components/ui/ServiceIcon';
10 8
11const styles = (theme) => ({ 9const styles = theme => ({
12 listItem: { 10 listItem: {
13 height: theme.workspaces.settings.listItems.height, 11 height: theme.workspaces.settings.listItems.height,
14 borderBottom: `1px solid ${theme.workspaces.settings.listItems.borderColor}`, 12 borderBottom: `1px solid ${theme.workspaces.settings.listItems.borderColor}`,
@@ -31,29 +29,22 @@ const styles = (theme) => ({
31 }, 29 },
32}); 30});
33 31
34@injectSheet(styles) @observer 32type Props = {
35class WorkspaceServiceListItem extends Component { 33 classes: any;
36 static propTypes = { 34 isInWorkspace: boolean;
37 classes: PropTypes.object.isRequired, 35 onToggle: () => void;
38 isInWorkspace: PropTypes.bool.isRequired, 36 service: any;
39 onToggle: PropTypes.func.isRequired, 37};
40 service: PropTypes.instanceOf(Service).isRequired,
41 };
42 38
39@injectSheet(styles)
40@observer
41class WorkspaceServiceListItem extends Component<Props> {
43 render() { 42 render() {
44 const { 43 const { classes, isInWorkspace, onToggle, service } = this.props;
45 classes,
46 isInWorkspace,
47 onToggle,
48 service,
49 } = this.props;
50 44
51 return ( 45 return (
52 <div className={classes.listItem}> 46 <div className={classes.listItem}>
53 <ServiceIcon 47 <ServiceIcon className={classes.serviceIcon} service={service} />
54 className={classes.serviceIcon}
55 service={service}
56 />
57 <span 48 <span
58 className={classnames([ 49 className={classnames([
59 classes.label, 50 classes.label,
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.tsx
index bd9e235e3..8e8f8179d 100644
--- a/src/features/workspaces/containers/EditWorkspaceScreen.js
+++ b/src/features/workspaces/containers/EditWorkspaceScreen.tsx
@@ -1,26 +1,26 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4 3
5import ErrorBoundary from '../../../components/util/ErrorBoundary'; 4import ErrorBoundary from '../../../components/util/ErrorBoundary';
6import EditWorkspaceForm from '../components/EditWorkspaceForm'; 5import EditWorkspaceForm from '../components/EditWorkspaceForm';
7import ServicesStore from '../../../stores/ServicesStore';
8import Workspace from '../models/Workspace'; 6import Workspace from '../models/Workspace';
9import { workspaceStore } from '../index'; 7import { workspaceStore } from '../index';
10import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api'; 8import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api';
11import WorkspacesStore from '../store'; 9import { ServicesStore, WorkspacesStore } from '../../../stores.types';
12 10
13@inject('stores', 'actions') @observer 11type Props = {
14class EditWorkspaceScreen extends Component { 12 actions: {
15 static propTypes = { 13 workspaces: WorkspacesStore;
16 actions: PropTypes.shape({
17 workspaces: PropTypes.instanceOf(WorkspacesStore),
18 }).isRequired,
19 stores: PropTypes.shape({
20 services: PropTypes.instanceOf(ServicesStore).isRequired,
21 }).isRequired,
22 }; 14 };
15 stores: {
16 services: ServicesStore;
17 };
18};
23 19
20@inject('stores', 'actions')
21@observer
22class EditWorkspaceScreen extends Component<Props> {
23 // @ts-expect-error Not all code paths return a value.
24 onDelete = () => { 24 onDelete = () => {
25 const { workspaceBeingEdited } = workspaceStore; 25 const { workspaceBeingEdited } = workspaceStore;
26 const { actions } = this.props; 26 const { actions } = this.props;
@@ -28,12 +28,14 @@ class EditWorkspaceScreen extends Component {
28 actions.workspaces.delete({ workspace: workspaceBeingEdited }); 28 actions.workspaces.delete({ workspace: workspaceBeingEdited });
29 }; 29 };
30 30
31 onSave = (values) => { 31 onSave = values => {
32 const { workspaceBeingEdited } = workspaceStore; 32 const { workspaceBeingEdited } = workspaceStore;
33 const { actions } = this.props; 33 const { actions } = this.props;
34 const workspace = new Workspace( 34 const workspace = new Workspace({
35 ({ saving: true, ...workspaceBeingEdited, ...values }), 35 saving: true,
36 ); 36 ...workspaceBeingEdited,
37 ...values,
38 });
37 actions.workspaces.update({ workspace }); 39 actions.workspaces.update({ workspace });
38 }; 40 };
39 41
diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.tsx
index 2ba3784cb..a07e92439 100644
--- a/src/features/workspaces/containers/WorkspacesScreen.js
+++ b/src/features/workspaces/containers/WorkspacesScreen.tsx
@@ -1,6 +1,5 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4import WorkspacesDashboard from '../components/WorkspacesDashboard'; 3import WorkspacesDashboard from '../components/WorkspacesDashboard';
5import ErrorBoundary from '../../../components/util/ErrorBoundary'; 4import ErrorBoundary from '../../../components/util/ErrorBoundary';
6import { workspaceStore } from '../index'; 5import { workspaceStore } from '../index';
@@ -10,16 +9,17 @@ import {
10 getUserWorkspacesRequest, 9 getUserWorkspacesRequest,
11 updateWorkspaceRequest, 10 updateWorkspaceRequest,
12} from '../api'; 11} from '../api';
13import WorkspacesStore from '../store'; 12import { WorkspacesStore } from '../../../stores.types';
14 13
15@inject('stores', 'actions') @observer 14type Props = {
16class WorkspacesScreen extends Component { 15 actions: {
17 static propTypes = { 16 workspaces: WorkspacesStore;
18 actions: PropTypes.shape({
19 workspaces: PropTypes.instanceOf(WorkspacesStore),
20 }).isRequired,
21 }; 17 };
18};
22 19
20@inject('stores', 'actions')
21@observer
22class WorkspacesScreen extends Component<Props> {
23 render() { 23 render() {
24 const { actions } = this.props; 24 const { actions } = this.props;
25 return ( 25 return (
@@ -30,8 +30,8 @@ class WorkspacesScreen extends Component {
30 createWorkspaceRequest={createWorkspaceRequest} 30 createWorkspaceRequest={createWorkspaceRequest}
31 deleteWorkspaceRequest={deleteWorkspaceRequest} 31 deleteWorkspaceRequest={deleteWorkspaceRequest}
32 updateWorkspaceRequest={updateWorkspaceRequest} 32 updateWorkspaceRequest={updateWorkspaceRequest}
33 onCreateWorkspaceSubmit={(data) => actions.workspaces.create(data)} 33 onCreateWorkspaceSubmit={data => actions.workspaces.create(data)}
34 onWorkspaceClick={(w) => actions.workspaces.edit({ workspace: w })} 34 onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })}
35 /> 35 />
36 </ErrorBoundary> 36 </ErrorBoundary>
37 ); 37 );