@pingu-components/react
v2.3.13
Published
React components for accessing pingustar api
Maintainers
Readme
@pingu-components/react
@pingu-components/react es una librería de componentes de React que permite la integración con un servicio de ratings para productos. Esta versión incluye tres componentes públicos: NewRating, ReviewsList, OverallRating, ReviewDetail y NewProduct.
Nota: Para utilizar estos componentes y obtener ratings visibles, debes contratar el servicio de ratings asociado.
Instalación
Instala la librería usando npm:
npm install @pingu-components/reactComponentes
1. NewReview
Permite a los usuarios crear un nuevo rating para un producto específico. Se utiliza proporcionando el id del producto y un token de autenticación. El onSubmit se ejecuta cuando el formulario se envía correctamente.
Props
| Prop | Tipo | Descripción | Opcional | Valor por defecto |
| ------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------- |
| id | number | ID interno del producto al que se le agregará un rating. | No | - |
| productName | string | Nombre del producto en tu página (se usará para crearlo si no existe en nuestra base de datos) | No | - |
| token | string | Token de autenticación para el servicio de ratings. | No | - |
| userWritter | string | Es necesario para indicar el nombre de usuario del desarrollador de la Review. Es opcional agregarle el origen luego de un | No | |
| onSubmit | () => void | Callback a ejecutar al enviar el formulario. | No | - |
| size | number | Tamaño de las estrellas del rating. | Sí | 22 |
| bgColor | string | Color de fondo del formulario. | Sí | 'white' |
| textColor | string | Color del texto. | Sí | 'black' |
| fontFamily | string | Familia tipográfica a utilizar. | Sí | "'Arial', sans-serif" |
| starsColor | string | Color de las estrellas. | Sí | 'gold' |
| borderColor | string | Color del borde de los campos de formulario. | Sí | '#d1d5db' |
| buttonColor | string | Color del botón de envío. | Sí | 'blue' |
| buttonTextColor | string | Color del texto del botón de envío. | Sí | 'white' |
| skeleton color | string | Color de los placeholders de los skeletons de carga. | Sí | '#d1d5db' |
| language | 'en' \| 'es' | Idioma en el que se mostrará el formulario. | Sí | 'en' |
Ejemplo de uso
import NewRating from '@pingu-components/react';
<NewRating
id={123}
productName="IPhone 15"
token="your-auth-token"
onSubmit={() => alert('Review submitted!')}
userWritter="Jane Doe - PinguStars"
/>2. ReviewsList
Muestra una lista de reviews para un producto dado. También permite personalizar varios aspectos visuales como los colores, tamaños de texto y estrellas.
Props
| Prop | Tipo | Descripción | Opcional | Valor por defecto |
| ---------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------- |
| id | number | ID interno del producto para mostrar los reviews. | No | - |
| productName | string | Nombre del producto en tu página (se usará para crearlo si no existe en nuestra base de datos) | No | - |
| token | string | Token de autenticación para el servicio de reviews. | No | - |
| imageUrl | string | URL de la imagen del producto (debe ser público). | Sí | - |
| onClick | (id:number) =>void | Comportamiento al clickear una reseña, pensado para navegar a una página con el detalle de la misma o un popUp | No | - |
| bgColor | string | Color de fondo de la lista de reviews. | Sí | 'white' |
| borderColor | string | Color del borde de cada review. | Sí | '#d1d5db' |
| shadowColor | string | Color de la sombra cada review | Sí | '#d1d5db' |
| skeletonColor | string | Color de los placeholder de los skeletons de carga | Sí | '#d1d5db' |
| buttonsBgColor | string | Color de los botones de refresh y de paginación | Sí | 'gold' |
| buttonTextColor | string | Color del texto de los botones de refresh y de paginación | Sí | 'black' |
| dropdownBgColor | string | Color de fondo del dropdown de ordenamiento de reviews | Sí | '#d1d5db' |
| dropdownTextColor | string | Color del texto del dropdown | Sí | '#4b5563' |
| starsColor | string | Color de las estrellas del rating. | Sí | 'gold' |
| starsSize | number | Tamaño de las estrellas. | Sí | 20 |
| mainTextColor | string | Color principal del texto (títulos). | Sí | 'black' |
| secondaryTextColor | string | Color secundario del texto (descripciones). | Sí | '#4b5563' |
| fontFamily | string | Familia tipográfica a utilizar. | Sí | "'Arial', sans-serif" |
| placeholderAlign | 'left' \| 'center' \| 'right' \| 'start' \| 'end | Alineación de los placeholders en caso de error o componente vacío. | Sí | 'left' |
| limit | number | Define el limite para cada API fetch | Sí | undefined |
| loadMore | page | scroll | none | Define la forma de paginar los productos, en page, son paginas de reviews; en scroll, se recarga al llegar al final del scroll; en none, no hay paginación. | Sí | 'none' |
| isMobile | boolean | En caso de ser verdadero, vuelve el componente más adaptable para dispositivos móviles. | Sí | false |
| language | 'en' \| 'es' | Idioma en el que se mostrará el formulario. | Sí | 'en' |
Ejemplo de uso
import ReviewsList from '@pingu-components/react';
<ReviewsList
id={123}
productName="IPhone 15"
token="your-auth-token"
onClick={(id) => console.log(id)}
/>3. OverallRating
Muestra el rating promedio de un producto específico.
Props
| Prop | Tipo | Descripción | Opcional | Valor por defecto |
| ----------------- | ---------- | ------------------------------------------------------------------------------------------------ | -------- | ------------------------- |
| id | number | ID interno del producto para mostrar el rating general. | No | - |
| productName | string | Nombre del producto en tu página (se usará para crearlo si no existe en nuestra base de datos) | No | - |
| token | string | Token de autenticación para el servicio de ratings. | No | - |
| imageUrl | string | URL de la imagen del producto (debe ser público). | Sí | - |
| starsSize | number | Tamaño de las estrellas. | Sí | 20 |
| starsColor | string | Color de las estrellas del rating. | Sí | 'gold' |
| borderColor | string | Color del borde de las estrellas. | Sí | '#d1d5db' |
| skeletonColor | string | Color de los placeholders de los skeletons de carga. | Sí | '#d1d5db' |
| textColor | string | Color del texto del rating promedio. | Sí | 'black' |
| fontFamily | string | Familia tipográfica a utilizar. | Sí | "'Arial', sans-serif" |
Ejemplo de uso
import OverallRating from '@pingu-components/react';
<OverallRating
id={123}
productName="IPhone 15"
token="your-auth-token"
/>4. ReviewDetail
Muestra el detalle de una reseña segun su id.
Props
| Prop | Tipo | Descripción | Opcional | Valor por defecto |
| ------------------- | --------------- | ---------------------------------------------------------------------- | -------- | ------------------------- |
| id | number | ID de la reseña para mostrar al detalle. | No | - |
| token | string | Token de autenticación para el servicio de ratings. | No | - |
| onClose | ()=>void | Acción a ejecutar luego de cerrar el detalle. Ideal para navegación. | No | - |
| size | number | Tamaño de las estrellas. | Sí | 20 |
| starsColor | string | Color de las estrellas del rating. | Sí | 'gold' |
| bgColor | string | Color de fondo del componente | Sí | white |
| borderColor | string | Color del borde de las estrellas. | Sí | '#d1d5db' |
| textColor | string | Color del texto del rating promedio. | Sí | 'black' |
| fontFamily | string | Familia tipográfica a utilizar. | Sí | "'Arial', sans-serif" |
| buttonColor | string | Color de fondo del botón de agregar producto. | Sí | blue |
| buttonTextColor | string | Color del texto del botón. | Sí | white |
| skeletonColor | string | Color de los placeholders de los skeletons de carga. | Sí | '#d1d5db' |
| language | 'en' \| 'es' | Idioma en el que se mostrará el formulario. | Sí | 'en' |
Ejemplo de uso
import OverallRating from '@pingu-components/react';
<OverallRating
id={123}
token="your-auth-token"
/>5. NewProduct
Componente para agregar un nuevo producto a la base de datos.
Props
| Prop | Tipo | Descripción | Opcional | Valor por defecto |
| ------------------- | --------------- | --------------------------------------------------------------------------- | -------- | ------------------------- |
| id | number | ID interno del producto que quieres agregar | No | - |
| email | string | Your email so that we know who you are | No | - |
| token | string | Token de autenticación para el servicio de ratings. | No | - |
| onSubmit | () => void | Función a ejecutar posterior a agregar el producto. Ideal para navegación | No | - |
| bgColor | string | Color de fondo del componente | Sí | white |
| borderColor | string | Color del borde de las estrellas. | Sí | '#d1d5db' |
| textColor | string | Color del texto del rating promedio. | Sí | 'black' |
| fontFamily | string | Familia tipográfica a utilizar. | Sí | "'Arial', sans-serif" |
| buttonColor | string | Color de fondo del botón de agregar producto. | Sí | gold |
| buttonTextColor | string | Color del texto del botón. | Sí | black |
| skeletonColor | string | Color de los placeholders de los skeletons de carga. | Sí | '#d1d5db' |
| language | 'en' \| 'es' | Idioma en el que se mostrará el formulario. | Sí | 'en' |
Ejemplo de uso
import OverallRating from '@pingu-components/react';
<OverallRating
id={123}
email="[email protected]"
token="your-auth-token"
onSubmit={() => console.log("Submitted")}
/>Notas adicionales
- Los componentes de esta librería no proporcionarán datos de ratings ni reviews si no tienes contratado el servicio de ratings. Asegúrate de obtener las credenciales de autenticación (
token) de tu proveedor de ratings para que los componentes funcionen correctamente. - Personaliza la apariencia de los componentes a través de las props proporcionadas, permitiendo adaptarlos al diseño de tu sitio.
