diff --git a/src/public/css/offers.css b/src/public/css/offers.css index 5468e9f..0aa1945 100644 --- a/src/public/css/offers.css +++ b/src/public/css/offers.css @@ -85,6 +85,12 @@ margin-right: auto; } +.myoffer-card { + text-align: start; + margin-top: 5px; + margin-bottom: 5px; +} + #create-offer-controls { text-align: center; } diff --git a/src/public/javascript/offers.js b/src/public/javascript/offers.js index e3222c6..4c5c552 100644 --- a/src/public/javascript/offers.js +++ b/src/public/javascript/offers.js @@ -46,6 +46,8 @@ const publishOfferButton = document.getElementById('button-submit-offer'); const offerCreatedPopup = document.getElementById('offer-created-confirmation'); +const ownOffersContainer = document.getElementById('own-offers-container'); + function toggleCreateOfferControls() { createOfferRoot.style.display = createOfferRoot.style.display === 'block' ? 'none' : 'block'; @@ -194,7 +196,8 @@ class Offer { } class MyOffers { - constructor() { + constructor(ownOffersContainerElement) { + this.ownOffersContainerElement = ownOffersContainerElement; this.offers = []; } @@ -213,14 +216,88 @@ class MyOffers { } } - async render() {} + async render() { + if (!this.offers) { + this.ownOffersContainerElement.innerHTML = + '

Vaya, no hay nada por aquí...

'; + return; + } + + let offersHTML = ''; + + for (const someOffer of this.offers) { + let tradeDescription; + if (someOffer.wants === 'BTC') { + tradeDescription = `Vendes ${someOffer.trade_amount_eur} €. Compras 100 000 sats. `; + } else { + tradeDescription = `Vendes 100 000 sats. Compras ${someOffer.trade_amount_eur} €. `; + } + tradeDescription += `El premium es de ${someOffer.premium}%.`; + + let paymentMethodsDescription = ''; + if (someOffer.is_onchain_accepted) { + paymentMethodsDescription += 'Se acepta Bitcoin onchain. '; + } + if (someOffer.is_lightning_accepted) { + paymentMethodsDescription += 'Se acepta Bitcoin Lightning.'; + } + + let visibilityDescription = 'La oferta es visible para: '; + if (someOffer.show_offer_to_trusted) { + visibilityDescription += 'Tus confiados'; + } + if (someOffer.show_offer_to_trusted_trusted) { + visibilityDescription += ', los confiados de tus confiados'; + } + if (someOffer.show_offer_to_all_members) { + visibilityDescription += ', todos los miembros'; + } + + offersHTML += ` +
+
+ ${tradeDescription} +
+
+ ${paymentMethodsDescription} +
+
+ ${visibilityDescription} +
+
+
+ +
+ `; + } + + this.ownOffersContainerElement.innerHTML = offersHTML; + } } buttonStartCreateOffer.addEventListener('click', () => { toggleCreateOfferControls(); }); -buttonViewMyOffers.addEventListener('click', () => { +buttonViewMyOffers.addEventListener('click', async () => { + await myOffers.getOffersFromApi(); + await myOffers.render(); toggleViewMyOffersPanel(); }); @@ -263,3 +340,5 @@ publishOfferButton.addEventListener('click', () => { }); updateBtcInput(); + +const myOffers = new MyOffers(ownOffersContainer); diff --git a/src/views/offers.ejs b/src/views/offers.ejs index b638288..4b16445 100644 --- a/src/views/offers.ejs +++ b/src/views/offers.ejs @@ -187,8 +187,8 @@

Mis ofertas

-

Vaya, no hay nada por aquí...

-
+
+

Vaya, no hay nada por aquí...

Quieres comprar BTC a un premium de 3% (precio: 93.000€/BTC). Quieres comprar 100€/102 100SAT. Puedes quedar en: "Cualquier parte", y te va mejor: "en cualquier momento". Se puede usar Onchain y Lightning. Tu