Skip to content

Commit

Permalink
🐞 2 iptalciyle ilerleme hatasını düzelt
Browse files Browse the repository at this point in the history
  • Loading branch information
KimlikDAO-bot committed Jan 28, 2024
1 parent 9f2fd8b commit 3c2a6e2
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 66 deletions.
4 changes: 2 additions & 2 deletions al/imeceİptal/birim.css
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@
margin: 4px 0 0 10px;
}

.im3 > .imcont > .imdel {
.im4 > .imcont > .imdel {
opacity: 0.3
}

.im3 > .imcont > .imdel:hover {
.im4 > .imcont > .imdel:hover {
opacity: 1;
}

Expand Down
2 changes: 1 addition & 1 deletion al/imeceİptal/birim.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<b data-en="Address">Adres</b>
<b data-en="Weight">Ağırlık</b>
</div>
<div id="imf" class="im3">
<div id="imf">
<div class="imcont">
<input class="imai" type="text" spellcheck="false">
<a href="javascript:" class="imbtn paste" data-en-title="Paste" title="Yapıştır"><img src="/al/paste.svg" data-inline></a>
Expand Down
161 changes: 98 additions & 63 deletions al/imeceİptal/birim.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,32 @@ import TCKT from "/lib/ethereum/TCKT";
import evm from "/lib/ethereum/evm";
import dom from "/lib/util/dom";

/** @const {Element} */
const GösterButonu = dom.adla("imbe");
/** @const {Element} */
const İptalButonu = dom.adla("imbh");
/** @const {Element} */
const İptalciler = dom.adla("imf");
/** @const {!Element} */
const Kök = /** @type {!Element} */(dom.adla("im"));
/** @const {!Element} */
const GösterButonu = /** @type {!Element} */(dom.adla("imbe"));
/** @const {!Element} */
const İptalButonu = /** @type {!Element} */(dom.adla("imbh"));
/** @const {!Element} */
const İptalciler = /** @type {!Element} */(dom.adla("imf"));
/** @const {!Element} */
const EşikGirdisi = /** @type {!Element} */(dom.adla("imt"));
/** @const {!Element} */
const ToplamAğırlık = /** @type {!Element} */(dom.adla("ims"));
/** @const {!Element} */
const Kutu = /** @type {!Element} */(dom.adla("imc"));

/**
* @param {ChainId} ağ Native tokeninde TCKT fiyatının gösterileceği ağ.
*/
const fiyatGöster = () => {
/** @const {!Element} */
const indirimsizFiyat = /** @type {!Element} */(dom.adla("imft"));
/** @const {!Element} */
const indirimliFiyat = /** @type {!Element} */(dom.adla("imfs"));
/** @const {!Element} */
const indirimYüzdesi = /** @type {!Element} */(dom.adla("imfu"));

/**
* @type {!AğBilgisi}
* @const
Expand All @@ -30,16 +45,16 @@ const fiyatGöster = (ağ) => {
/** @const {!Array<string>} */
const ek = ağBilgisi.tokenEki;
TCKT.priceIn(, 0).then(([çok, az]) => {
dom.adla("imft").innerText = dom.paradanMetne(çok) + " " + token + (dom.TR ? ek[0] : "");
dom.adla("imfs").innerText = dom.paradanMetne(az) + " " + token + (dom.TR ? ek[1] : "");
dom.adla("imfu").innerText = Math.round(100 * (çok - az) / çok);
indirimsizFiyat.innerText = dom.paradanMetne(çok) + " " + token + (dom.TR ? ek[0] : "");
indirimliFiyat.innerText = dom.paradanMetne(az) + " " + token + (dom.TR ? ek[1] : "");
indirimYüzdesi.innerText = Math.round(100 * (çok - az) / çok);
});
}

const göster = () => {
fiyatGöster(Cüzdan.());
Cüzdan.ağDeğişince(fiyatGöster);
dom.adla("im").classList.remove("disabled");
Kök.classList.remove("disabled");
}

/**
Expand All @@ -62,31 +77,43 @@ const atla = (sonra) => {
İptalButonu.innerText = dom.TR ? "İmece iptal kurulmadı 🤌" : "Skipped 🤌";
İptalButonu.classList.add("done");
dom.düğmeDurdur(İptalButonu);
dom.adla("im").classList.add("done");
dom.gizle(dom.adla("imc"));
Kök.classList.add("done");
dom.gizle(Kutu);
sonra({}, 0);
}

/**
* @param {function(!Object<string, number>, number)} sonra
*/
const kutularıAç = (sonra) => {
dom.adla("im").classList.remove("done");
dom.göster(dom.adla("imc"));
/** @const {!Element} */
const iptalciGirdisiEkleDüğmesi = /** @type {!Element} */(dom.adla("imba"));
/** @const {!Element} */
const eşikDüşürDüğmesi = /** @type {!Element} */(dom.adla("imtm"));
/** @const {!Element} */
const eşikArtırDüğmesi = /** @type {!Element} */(dom.adla("imtp"));
/** @const {!Element} */
const tamamDüğmesi = /** @type {!Element} */(dom.adla("imbt"));
/** @const {!Element} */
const atlaDüğmesi = /** @type {!Element} */(dom.adla("imbi"));

Kök.classList.remove("done");
dom.göster(Kutu);
dom.gizle(GösterButonu);
dom.gizle(İptalButonu);
dom.adla("imbi").onclick = () => atla(sonra);
atlaDüğmesi.onclick = () => atla(sonra);

/** @const {NodeList<!Element>} */
const satır = İptalciler.children;
for (let i = 0; i < satır.length; ++i) {
işlevEkle(satır[i]);
}
dom.adla("imba").onclick = girdiAlanıEkle;
dom.adla("imt").onblur = eşikDeğeriBlurOlunca;
dom.adla("imtm").onclick = () => eşikBirDeğiştir(false);
dom.adla("imtp").onclick = () => eşikBirDeğiştir(true);
dom.adla("imbt").onclick = () => {
iptalciGirdisiEkleDüğmesi.onclick = iptalciGirdisiEkle;
EşikGirdisi.onblur = eşikDeğeriBlurOlunca;
eşikDüşürDüğmesi.onclick = () => eşikBirDeğiştir(false);
eşikArtırDüğmesi.onclick = () => eşikBirDeğiştir(true);
tamamDüğmesi.onclick = () => {

/** @type {!Object<string, number>} */
let adresAğırlığı = {};
/** @type {boolean} */
Expand All @@ -97,39 +124,43 @@ const kutularıAç = (sonra) => {
/** @const {NodeList<!Element>} */
const satır = İptalciler.children;
for (let /** number */ i = 0; i < satır.length; ++i) {
/** @const {Element} */
const girdi = satır[i].firstElementChild;
/** @const {!Element} */
const girdi = /** @type {!Element} */(satır[i].firstElementChild);
/** @const {string} */
const adres = girdi.value;
if (!evm.adresGeçerli(adres) || adres in adresAğırlığı ||
adres.toLowerCase() === Cüzdan.adres()) {
adres.toLowerCase() == Cüzdan.adres().toLowerCase()) {
geçerli = false;
satır[i].firstElementChild.classList.add("imin");
} else {
/** @type {number} */
const ağırlık = +satır[i].children[3].value;
adresAğırlığı[adres] = ağırlık;
toplamAğırlık += ağırlık;
}
/** @type {number} */
const ağırlık = +satır[i].children[3].value;
adresAğırlığı[adres] = ağırlık;
toplamAğırlık += ağırlık;
}
/** @type {number} */
const eşikDeğeri = +dom.adla("imt").value;
const eşikDeğeri = +EşikGirdisi.value;
if (toplamAğırlık < eşikDeğeri) {
geçerli = false;
dom.adla("imt").classList.add("imin");
EşikGirdisi.classList.add("imin");
}
if (Object.keys(adresAğırlığı).length < 3) {
geçerli = false;
}
if (geçerli) {
dom.göster(İptalButonu);
İptalButonu.innerText = dom.TR ? "İmece iptal kuruldu ✓" : "Social revoke setup is complete ✓";
İptalButonu.onclick = null;
dom.gizle(dom.adla("imc"));
dom.adla("im").classList.add("done");
dom.gizle(Kutu);
Kök.classList.add("done");
sonra(adresAğırlığı, eşikDeğeri);
}
};
}

/**
* @param {Element} satır
* @param {!Element} satır
*/
const işlevEkle = (satır) => {
/** @const {NodeList<!Element>} */
Expand All @@ -143,26 +174,42 @@ const işlevEkle = (satır) => {
elemanlar[3].onclick = (e) => e.target.value = "";
elemanlar[3].value = 1;
elemanlar[4].onclick = birArttır;
elemanlar[5].onclick = satırSil;
elemanlar[5].onclick = iptalciGirdisiSil;
}

const girdiAlanıEkle = () => {
const iptalciGirdisiEkle = () => {
/** @const {number} */
const tane = İptalciler.childElementCount;
if (tane >= 5) return;
/** @type {Element} */
let yeniSatır = İptalciler.firstElementChild.cloneNode(true);
/** @const {!Element} */
const yeniSatır = İptalciler.firstElementChild.cloneNode(true);
işlevEkle(yeniSatır);
if (tane > 2)
İptalciler.classList.add("im3");
if (tane >= 3)
İptalciler.classList.add("im4");
İptalciler.appendChild(yeniSatır);
ağırlıkHesapla();
}

const iptalciGirdisiSil = (event) => {
/** @type {Element} */
const a = event.target.nodeName == "A"
? event.target : event.target.parentElement
const satırSayısı = İptalciler.childElementCount;
// Silmeden önceki sayı 4 ise, x'leri kaldır.
if (satırSayısı <= 4)
İptalciler.classList.remove("im4");
if (satırSayısı > 3)
a.parentElement.remove();
ağırlıkHesapla();
}

/**
* @param {Event} event
*/
const eşikDeğeriBlurOlunca = (event) => {
/** @const {boolean} */
const geçerli = +event.target.value <= +dom.adla("ims").value;
dom.adla("imt").classList.toggle("imin", geçerli);
const geçerli = +event.target.value <= +ToplamAğırlık.value;
EşikGirdisi.classList.toggle("imin", geçerli);
}

/**
Expand All @@ -176,7 +223,7 @@ const girdiDüzelt = (girdi) => {
if (düz) girdi.value = düz
/** @const {boolean} */
const hataVar = değer != "" &&
(!düz || değer.toLowerCase() === Cüzdan.adres().toLowerCase())
(!düz || değer.toLowerCase() == Cüzdan.adres().toLowerCase())
girdi.classList.toggle("imin", hataVar);
}

Expand All @@ -187,7 +234,7 @@ const yapıştır = (event) => {
/** @type {Element} */
let a = /** @type {Element} */(event.target);
for (; a.nodeName !== 'A'; a = a.parentElement)
if (a.nodeName === 'DIV') return;
if (a.nodeName == 'DIV') return;
const girdi = a.previousElementSibling;
navigator.clipboard.readText().then(
(değer) => {
Expand All @@ -196,17 +243,6 @@ const yapıştır = (event) => {
})
}

const satırSil = (event) => {
let a = event.target.nodeName == "A"
? event.target : event.target.parentElement
const satırSayısı = İptalciler.childElementCount;
if (satırSayısı <= 3)
İptalciler.classList.remove("im3");
if (satırSayısı >= 3)
a.parentElement.remove();
ağırlıkHesapla();
}

const birAzalt = (event) => {
const node = event.target.nextElementSibling;
if (node.value == 1) return;
Expand All @@ -224,16 +260,16 @@ const birArttır = (event) => {
const ağırlıkBlurOlunca = (event) => {
let val = event.target.value;
if (val > 9) event.target.value = 9;
if (val < 1 || val === "") event.target.value = 1;
if (val < 1 || val == "") event.target.value = 1;
ağırlıkHesapla();
}

const eşikBirDeğiştir = (artır) => {
/** @const {Element} */
const eşik = dom.adla("imt");
const değer = +eşik.value;
const toplam = +dom.adla("ims").value;
eşik.value = artır
/** @const {number} */
const değer = +EşikGirdisi.value;
/** @const {number} */
const toplam = +ToplamAğırlık.value;
EşikGirdisi.value = artır
? Math.min(değer + 1, 99, toplam) : Math.max(değer - 1, 1);
}

Expand All @@ -245,10 +281,9 @@ const ağırlıkHesapla = () => {
for (let /** number */ i = 0; i < satır.length; ++i) {
total += +satır[i].children[3].value;
}
dom.adla("ims").value = total;
const eşik = dom.adla("imt");
if (eşik.value > total)
eşik.value = total;
ToplamAğırlık.value = total;
if (EşikGirdisi.value > total)
EşikGirdisi.value = total;
}

export default { kurVe, göster };

0 comments on commit 3c2a6e2

Please sign in to comment.