Page Documentation

Objetivo 🎯

Esta es mi página web personal, tiene como finalidad darme una presencia en internet, ser una ventana a mis proyectos e ir aprendiendo durante su desarrollo y operación. Sin duda habrán mejoras que requiere en su estado actual y posibles secciones nuevas.

El Reto 🤺

Las características que debe tener el sitio:

Desarrollo 🧑🏻‍💻

Tecnologías Utilizadas

Diseño

Programación 💻

/
├── src/
│   └── styles/
│        ├── base
│        │    └── sanitize.scss
│        │    └── variables.scss
│        │    └── mixins.scss
│        │    └── globals.scss
│        │    └── light_theme.scss
│        │
│        └── main.scss
└── ...

Integraciones

<section class="contact" id="contact">
  <h2 class="contact_title">Contacto</h2>
  <Contact client:load contact_api={import.meta.env.CONTACT_API}/>
</section>
{errors.name?.type === 'required' && <p>El campo es requerido</p>}
{errors.name?.type === 'maxLength' && <p>Máximo 30 letras</p>}
{errors.name?.type === 'minLength' && <p>Mínimo 2 letras</p>}
{errors.name?.type === 'pattern' && <p>Sólo debe contener letras</p>}
<ToastContainer />
export const toastifySuccess = (id: any) => {
  toast.update(id,{ 
    render: 'Mensaje enviado 📬', 
    type: 'success', 
    theme: 'colored',
    isLoading: false,
    autoClose: 3000,
    hideProgressBar: false,
    closeOnClick: true,
    pauseOnHover: true,
  });
}
const onSubmit = async ( data: FormData ) => {

    const id = toast.loading('Enviando Mensaje 📨');

    try {
      const response = await createPost(data, contact_api);
      if(response.state === 'OK') {
        toastifySuccess(id);
      }
    } catch (error) {
      toastifyError(id);
    }
  };

Componentes