aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/auth
diff options
context:
space:
mode:
authorLibravatar muhamedsalih-tw <104364298+muhamedsalih-tw@users.noreply.github.com>2022-10-28 07:37:55 +0530
committerLibravatar GitHub <noreply@github.com>2022-10-28 02:07:55 +0000
commitd95573393206bc3931202d363bfb6c54974e0203 (patch)
treebd1428342f8d6124f747612a3711546a972108eb /src/components/auth
parent6.2.1-nightly.31 [skip ci] (diff)
downloadferdium-app-d95573393206bc3931202d363bfb6c54974e0203.tar.gz
ferdium-app-d95573393206bc3931202d363bfb6c54974e0203.tar.zst
ferdium-app-d95573393206bc3931202d363bfb6c54974e0203.zip
Transform welcome component tree to TS (#715)v6.2.1-nightly.31
Diffstat (limited to 'src/components/auth')
-rw-r--r--src/components/auth/Welcome.tsx (renamed from src/components/auth/Welcome.jsx)61
1 files changed, 35 insertions, 26 deletions
diff --git a/src/components/auth/Welcome.jsx b/src/components/auth/Welcome.tsx
index 9e5d10126..1aa8da4d6 100644
--- a/src/components/auth/Welcome.jsx
+++ b/src/components/auth/Welcome.tsx
@@ -1,14 +1,14 @@
1/* eslint jsx-a11y/anchor-is-valid: 0 */ 1import { Component, ReactElement } from 'react';
2import { Component } from 'react'; 2import { observer, inject } from 'mobx-react';
3import PropTypes from 'prop-types'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { observer, PropTypes as MobxPropTypes, inject } from 'mobx-react'; 4import { noop } from 'lodash';
5import { defineMessages, injectIntl } from 'react-intl';
6import serverlessLogin from '../../helpers/serverless-helpers'; 5import serverlessLogin from '../../helpers/serverless-helpers';
7import shuffleArray from '../../helpers/array-helpers'; 6import shuffleArray from '../../helpers/array-helpers';
8import { serverName } from '../../api/apiBase'; 7import { serverName } from '../../api/apiBase';
9
10import Link from '../ui/Link'; 8import Link from '../ui/Link';
11import { H1 } from '../ui/headline'; 9import { H1 } from '../ui/headline';
10import { StoresProps } from '../../@types/ferdium-components.types';
11import RecipePreview from '../../models/RecipePreview';
12 12
13const messages = defineMessages({ 13const messages = defineMessages({
14 signupButton: { 14 signupButton: {
@@ -34,24 +34,28 @@ const messages = defineMessages({
34 }, 34 },
35}); 35});
36 36
37class Welcome extends Component { 37interface IProps extends Partial<StoresProps>, WrappedComponentProps {
38 static propTypes = { 38 loginRoute: string;
39 loginRoute: PropTypes.string.isRequired, 39 signupRoute: string;
40 signupRoute: PropTypes.string.isRequired, 40 changeServerRoute: string;
41 changeServerRoute: PropTypes.string.isRequired, 41 recipes: RecipePreview[];
42 recipes: MobxPropTypes.arrayOrObservableArray.isRequired, 42}
43 actions: PropTypes.object.isRequired,
44 };
45 43
46 useLocalServer() { 44@inject('actions')
45@observer
46class Welcome extends Component<IProps> {
47 constructor(props: IProps) {
48 super(props);
49 }
50
51 useLocalServer(): void {
47 serverlessLogin(this.props.actions); 52 serverlessLogin(this.props.actions);
48 } 53 }
49 54
50 render() { 55 render(): ReactElement {
51 const { intl } = this.props; 56 const { loginRoute, signupRoute, changeServerRoute, intl } = this.props;
52 const { loginRoute, signupRoute, changeServerRoute } = this.props;
53 let { recipes } = this.props; 57 let { recipes } = this.props;
54 recipes = shuffleArray(recipes); 58 recipes = shuffleArray<RecipePreview>(recipes);
55 recipes.length = 8 * 2; 59 recipes.length = 8 * 2;
56 60
57 let serverNameParse = serverName(); 61 let serverNameParse = serverName();
@@ -87,17 +91,22 @@ class Welcome extends Component {
87 <span>{intl.formatMessage(messages.changeServer)}</span> 91 <span>{intl.formatMessage(messages.changeServer)}</span>
88 </Link> 92 </Link>
89 </div> 93 </div>
90 <br /> 94 <hr
91 <hr /> 95 className="settings__hr-sections"
92 <br /> 96 style={{ marginTop: 24, marginBottom: 24, borderStyle: 'solid' }}
93 <a className="button" onClick={this.useLocalServer.bind(this)}> 97 />
98 <button
99 className="button"
100 onClick={this.useLocalServer.bind(this)}
101 onKeyDown={noop}
102 >
94 {intl.formatMessage(messages.serverless)} 103 {intl.formatMessage(messages.serverless)}
95 </a> 104 </button>
96 </div> 105 </div>
97 <div className="welcome__featured-services"> 106 <div className="welcome__featured-services">
98 {recipes.map(recipe => ( 107 {recipes.map(recipe => (
99 <div key={recipe.id} className="welcome__featured-service"> 108 <div key={recipe.id} className="welcome__featured-service">
100 <img key={recipe.id} src={recipe.icons.svg} alt="" /> 109 <img key={recipe.id} src={recipe.icons?.svg} alt="" />
101 </div> 110 </div>
102 ))} 111 ))}
103 </div> 112 </div>
@@ -106,4 +115,4 @@ class Welcome extends Component {
106 } 115 }
107} 116}
108 117
109export default injectIntl(inject('actions')(observer(Welcome))); 118export default injectIntl(Welcome);