diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/forms/fields/field.tsx | 4 | ||||
-rw-r--r-- | src/components/info_modal.tsx | 37 | ||||
-rw-r--r-- | src/components/product_cart.tsx | 35 |
3 files changed, 65 insertions, 11 deletions
diff --git a/src/components/forms/fields/field.tsx b/src/components/forms/fields/field.tsx index d7aa342..8faa425 100644 --- a/src/components/forms/fields/field.tsx +++ b/src/components/forms/fields/field.tsx @@ -5,7 +5,7 @@ export default function Field({ properties }) { field_component = ( <div className="mb-6"> <label className="block mb-2 text-sm font-medium text-red-700 dark:text-red-500">{ properties.label }</label> - <input type={properties.type} id={properties.id} name={properties.name} className="bg-red-50 border border-red-500 text-red-900 placeholder-red-700 text-sm rounded-lg focus:ring-red-500 dark:bg-gray-700 focus:border-red-500 block w-full p-2.5 dark:text-red-500 dark:placeholder-red-500 dark:border-red-500" placeholder={properties.placeholder}/> + <input type={properties.type} id={properties.id} name={properties.name} className="bg-red-50 border border-red-500 text-red-900 placeholder-red-700 text-sm rounded-lg focus:ring-red-500 dark:bg-gray-700 focus:border-red-500 block w-full p-2.5 dark:text-red-500 dark:placeholder-red-500 dark:border-red-500" placeholder={properties.placeholder} value={properties.value}/> <p className="mt-2 text-sm text-red-600 dark:text-red-500"> {properties.error_message }</p> </div> ); @@ -14,7 +14,7 @@ export default function Field({ properties }) { field_component = ( <div className="mb-6"> <label className="block mb-2 text-lg text-gray-900 dark:text-white">{properties.label}</label> - <input type={properties.type} id={properties.id} name={properties.name} className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder={properties.placeholder}/> + <input type={properties.type} id={properties.id} name={properties.name} className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder={properties.placeholder} value={properties.value}/> </div> ); } diff --git a/src/components/info_modal.tsx b/src/components/info_modal.tsx new file mode 100644 index 0000000..1123901 --- /dev/null +++ b/src/components/info_modal.tsx @@ -0,0 +1,37 @@ +import { Modal } from "flowbite"; +import "./stylesheets/shared.css"; + +function createModal() { + const target = document.getElementById('info-modal'); + const button = document.getElementById('modal-button'); + const options = { + placement: 'center-center', + backdrop: 'dynamic', + backdropClasses: 'bg-gray-900 bg-opacity-50 dark:bg-opacity-80 fixed inset-0 z-40', + closable: true + }; + + const new_modal = new Modal(target, options); + button?.addEventListener('click', () => new_modal.hide()); + + return new_modal; +} + +export function InfoModal({ text }) { + + return ( + <div id="info-modal" tabIndex="-1" aria-hidden="true" className="fixed top-0 left-0 right-0 z-50 hidden w-full p-4 overflow-x-hidden overflow-y-auto md:inset-0 h-[calc(100%-1rem)] max-h-full"> + <div className="relative bg-white w-full max-w-2xl max-h-full"> + <div className="p-6 space-y-6"> + <p className="text-base leading-relaxed text-gray-900 dark:text-gray-400"> + {text} + </p> + </div> + + <div className="flex items-center p-6 space-x-2 border-t border-gray-200 rounded-b dark:border-gray-600"> + <button id='modal-button' type="button" className=" button text-white hover:bg-blue-800 focus:ring-4 focus:outline-none font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:focus:ring-blue-800">Ok</button> + </div> + </div> + </div> + ); +}
\ No newline at end of file diff --git a/src/components/product_cart.tsx b/src/components/product_cart.tsx index 86d2615..4e78d1a 100644 --- a/src/components/product_cart.tsx +++ b/src/components/product_cart.tsx @@ -1,27 +1,44 @@ +import { Form } from "react-router-dom"; import "./stylesheets/product_listing.css"; export default function ProductCart({ product }) { return ( - <div className="my-2 w-4/6 grid grid-cols-3 gap-2 border-2 border-gray-300"> - <div className="col-span-2"> + <div className="my-2 w-3/6 grid grid-cols-2 gap-2 border-2 border-gray-300"> + <div> <img className="listing-image" src={product.picture} /> </div> - <div className="grid grid-rows-3"> + <div className="grid grid-rows-6"> <div className="product-listing-text text-2xl"> {product.name} </div> + <div className="product-listing-text text-xl"> + Precio unitario + </div> <div className="text-lg"> - <span className="product-listing-text text-xl"> - Precio unitario - </span> {product.unitary_price} </div> + <div className="product-listing-text text-xl"> + Precio al por mayor + </div> <div className="text-lg"> - <span className="product-listing-text text-xl"> - Precio al por mayor - </span> {product.bulk_price} </div> + <div className="flex flex-row"> + <div className="product-listing-text text-lg"> + Cantidad en carrito: + </div> + <div className="mx-2 text-lg"> + {product.quantity} + </div> + <div className="mx-2"> + <Form method="post" id="delete-product-cart-form"> + <input type="hidden" id="product-id" name="product_id" value={product.id} /> + <button type="submit" className="focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900"> + Borrar + </button> + </Form> + </div> + </div> </div> </div> ); |