summaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-05-24 20:18:00 -0600
committerHombreLaser <sebastian-440@live.com>2023-05-24 20:18:00 -0600
commitda2631822f902094e691143302d6fc6b68e1cf56 (patch)
tree68b893c04233f779f5a65151ea21d673b6f7a8fc /src/components
parent21508a3514500f8f38ddaa8bef7a9cd420d76628 (diff)
Añade lógica de carrito
Diffstat (limited to 'src/components')
-rw-r--r--src/components/forms/fields/field.tsx4
-rw-r--r--src/components/info_modal.tsx37
-rw-r--r--src/components/product_cart.tsx35
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>
);