UNPKG

create-ima-app

Version:

Create a IMA.js App easily.

55 lines (48 loc) 1.47 kB
import { useSettings, useLocalize } from '@ima/react-page-renderer'; import { Card } from 'app/component/card/Card'; import { useState, useEffect } from 'react'; import './homeView.less'; /** * The `load` method in HomeController.js passes entries * in the returned object as props to this component view. The * data are passed all at once, as soon as all promises resolve * (in case of SSR) or one by one as the promises are being resolved. */ export function HomeView({ message, name, cards }) { const links = useSettings('links'); const localize = useLocalize(); const [mounted, setMounted] = useState(false); // This executes only on client side useEffect(() => { setMounted(true); }, []); return ( <div className='page-home'> <div className='content'> <h1> {message}{' '} <a target='_blank' href='https://imajs.io' title={name} rel='noopener noreferrer' > {name} </a> </h1> <p className='hero' dangerouslySetInnerHTML={{ __html: localize('home.intro') }} ></p> <div className='cards'> {cards?.map(card => ( <Card key={card.id} title={card.title} href={links[card.id]}> {card.content} </Card> )) ?? null} </div> {mounted && <div className='mounted'>💡</div>} </div> </div> ); }