import React from 'react'; import ReactDOM from 'react-dom'; import cls from 'classnames'; import { IUiApi } from 'umi-types'; import { Close, Smile } from '@ant-design/icons'; import { Card, Row, Col } from 'antd'; import styles from './ui.module.less'; const { useState, useRef, useEffect } = React; interface IProps { api: IUiApi; } const DashboardUI: React.FC = props => { // TODO react-grid-layout to custom layout const isClosed = window.localStorage.getItem('umi_ui_dashboard_welcome') || false; const [closed, setClosed] = useState(!!isClosed); const { api } = props; const { redirect, currentProject, _, intl } = api; const actionCardCls = cls(styles.card, styles['card-action']); const welcomeCardCls = cls(styles.card, styles.welcome); const handleClose = () => { setClosed(true); window.localStorage.setItem('umi_ui_dashboard_welcome', 'true'); }; const actionCards = [ { className: actionCardCls, title: (

{intl({ id: 'org.umi.ui.dashboard.panel.dev.title' })}

{intl({ id: 'org.umi.ui.dashboard.panel.dev.desc' })}

), body: (
redirect('/tasks')}> {intl({ id: 'org.umi.ui.dashboard.panel.goto.task' })}
), }, { className: actionCardCls, title: (

{intl({ id: 'org.umi.ui.dashboard.panel.build.title' })}

{intl({ id: 'org.umi.ui.dashboard.panel.build.desc' })}

), body: (
redirect('/tasks?active=build')}> {intl({ id: 'org.umi.ui.dashboard.panel.goto.task' })}
), }, { className: actionCardCls, title: (

{intl({ id: 'org.umi.ui.dashboard.panel.coming.soon' })}

), }, ]; if (!closed) { actionCards.unshift({ className: welcomeCardCls, size: 'small', // extra: , body: (

Hi

{intl( { id: 'org.umi.ui.dashboard.panel.welcome.title', }, { name: currentProject.name, }, )}

{window.g_bigfish ? intl({ id: 'org.umi.ui.dashboard.panel.welcome.bigfish.desc' }) : intl({ id: 'org.umi.ui.dashboard.panel.welcome.desc' })}
), }); } return (
{actionCards.map((card, i) => { const { className, body, ...restProps } = card; return ( ); })}
); }; export default DashboardUI;