import { Component, ReactElement } from 'react'; import { observer, inject } from 'mobx-react'; import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import { noop } from 'lodash'; import serverlessLogin from '../../helpers/serverless-helpers'; import shuffleArray from '../../helpers/array-helpers'; import { serverName } from '../../api/apiBase'; import Link from '../ui/Link'; import { H1 } from '../ui/headline'; import { StoresProps } from '../../@types/ferdium-components.types'; import RecipePreview from '../../models/RecipePreview'; const messages = defineMessages({ signupButton: { id: 'welcome.signupButton', defaultMessage: 'Create a free account', }, loginButton: { id: 'welcome.loginButton', defaultMessage: 'Login to your account', }, changeServerMessage: { id: 'login.changeServerMessage', defaultMessage: 'You are using {serverNameParse} Server, do you want to switch?', }, changeServer: { id: 'login.changeServer', defaultMessage: 'Change here!', }, serverless: { id: 'services.serverless', defaultMessage: 'Use Ferdium without an Account', }, }); interface IProps extends Partial, WrappedComponentProps { loginRoute: string; signupRoute: string; changeServerRoute: string; recipes: RecipePreview[]; } @inject('actions') @observer class Welcome extends Component { useLocalServer(): void { serverlessLogin(this.props.actions); } render(): ReactElement { const { loginRoute, signupRoute, changeServerRoute, intl } = this.props; let { recipes } = this.props; recipes = shuffleArray(recipes); recipes.length = 8 * 2; let serverNameParse = serverName(); serverNameParse = serverNameParse === 'Custom' ? 'a Custom' : serverNameParse; return (

Ferdium

{intl.formatMessage(messages.signupButton)} {intl.formatMessage(messages.loginButton)}
{intl.formatMessage(messages.changeServerMessage, { serverNameParse, })} {intl.formatMessage(messages.changeServer)}

{recipes.map(recipe => (
))}
); } } export default injectIntl(Welcome);