- Crear un componente
Cardque renderice un elementoarticley que pueda contener componentes dentro suyo - Crear un componente
CardTitleque renderice un elementoh3y que pueda contener texto dentro suyo - Crear un componente
CardDescriptionque renderice un elementopy que pueda contener texto dentro suyo - Crear un componente
CardActionsque renderice un elementodivy que pueda contener componentes dentro suyo. Dicho div debe contener la propiedaddisplay: flex - Crear un componente
CardActionque renderice un elementobuttony que pueda contener texto dentro suyo
- Crear un componente
Headerque renderice un elementoheadery que pueda contener componente dentro suyo
- Crear un componente
Navque renderice un elementonavy un elementouldentro del nav, el componente debe poder contener elementos dentro suyo - El elemento
uldebe tener el estilodisplay: flexylist-style: none - El componente
NavMenudebe aceptar la propdirectioncon los valores"row"o"column", siendo"row"el valor por defecto, y cambiar el valor de la propiedadflex-directiondel elementoulen consecuencia
- Crear un componente
MenuItemque renderice un componentelicon un componentea, el componente debe poder contener elementos dentro suyo - El elemento
lidebe tener el estilodisplay: flex - Debe aceptar la prop
pathque corresponde al atributohrefdel componentea
- Crear un componente
Mainque renderice un componentemainy que pueda contener componente dentro suyo
- Crear un componente
Footerque renderice un componentefootery que pueda contener componente dentro suyo
Crear un layout usando los componentes anteriores, de la siguiente forma:
<Header>
<NavMenu>
<NavItem path='/home'>Home</NavItem>
<NavItem path='/about-us'>About Us</NavItem>
<NavItem path='/contact'>Contact</NavItem>
</Menu>
</Header>
<Main>
Hola mundo
</Main>
<Footer>® 2020 - All rights reserved</Footer>- Crear un componente
UserGreetingque acepte una propuser(que es un string). Siusertiene algún valor, debe renderizar un componentepque digaWelcome ${user}y un componenteaque digaLogout, en cambio siuserno tiene ningún valor, debe mostrar dos componentesa, uno que digaLoginy otroRegister. Separar luego ambas opciones en dos componentes distintos:GuestUserMessage(para cuandouserno tiene ningún valor) yLoggedUserMessage,
- Crear un componente
Listque acepte una propitemsque sea un array de strings, y renderice un componenteulcon componenteslipor cada string deitems. Siitemsestá vacío o no está definido, se debe mostrar un componentepque digaSorry, this list is empty
- Crear un componente
PasswordFieldque acepte una propstatusque es un string con los valores posibles: "default", "error", "valid". El componenteFielddebe renderizar unlabelque diga "Password" y uninputde tipopassword. Sistatustiene el valor "valid", debe mostrar el input con un borde de color verde. Si tiene el valor "error", debe mostrar el input con un borde de color rojo y renderizar debajo del input un componentesmallen color rojo que diga: "Invalid password, please try again"