performansı artırmak için sayfada göründüğü anda componentleri yükletebilirsiniz, observer api ile, bizim kanalda da bir örneği var, bunu react'e uyarlamakta çok zor değil hazır paketleride var, ayırmaktan bir zarar gelmez ama sayfada görünmeyeni atmanında çok bir esprisi yok
mantık şöyle olmalı, bakiyeyi tuttuğun bir değerin olduğunu düşünüyorum. örneğin şöyle bir şeyde tutulsun şimdilik;
const balance = 6000
loop'da index değerini de dahil edip eğer index değeri 0 değilse bir önceki elemanı index - 1 ile seçip onun değerini balance'dan çıkarmak olacak. yani;
<table className="table text-wrap">
<thead>
<tr>
<th>Tarih</th>
<th>Tip</th>
<th>Firma</th>
<th>Açıklama</th>
<th>Tutar</th>
<th>Bakiye</th>
</tr>
</thead>
<tbody>
{transactions.map((item, key) => {
return (
<tr key={item.id}>
<td>{item.document_date}</td>
<td>{item.document_type}</td>
<td>{item.interlocutors_label}</td>
<td>{item.description}</td>
<td>
{readableMoneyFormat(item.document_total)} {props.detail.currency}
</td>
<td>
{readableMoneyFormat(key !== 0 ? balance - transactions[key - 1].document_total : balance)}
</td>
</tr>
);
})}
</tbody>
</table>;
çalışan bir örnek: https://codesandbox.io/s/icy-tdd-l1mpdj?file=/src/App.js
eğer mp4 apple cihazlarda çalışmıyorsa ki çalışması gerekir, codec problemi vardır, mp4 dosyası geçerli bir codec'te değildir.
internette örnek mp4 dosyaları var, onları deneyip bir test edin eğer onlar çalışıyorsa sorun codec'tendir. Boyut ile şöyle alakası olabilir, eğer stream ettiremiyorsan dosyayı tümünü yüklene kadar çalıştırmayabilir. onu stream sunucu yapıp çözmen gerekir ama o da ekstra maliyet :)
sayıları almak istiyorsan ufak bir regex'te kullanabilirsin:
$codes = [
'2110660MAVİ',
'2110660SARI',
'2110660KIRMIZI'
];
foreach($codes as $code) {
preg_match('@([0-9]+)@', $code, $number);
echo $number[1] . '<br />';
}
.mov uzantısı web standartı olmadığı için mümkünse videoların .mp4 formatında olması tüm cihazlarda doğru çalışmasını sağlayacaktır.
en basitinen bi sayaç yaptığını düşün, setInterval() ile her 1 saniyede bir değer değiştiriyorsun.
bu sayaç componenti ile işin bittiğinde arkaplanda bu fonksiyon çalışmaya devam etmemesi için, bunu temizlemen gerekiyor.
bu ve bunun gibi örnekler çoğaltılabilir, amaç performansa etki edecek şeylerden kaçınmak için temizlemektir.
bunun içinde useEffect() içinde bir fonksiyon return ederek yapıyorsunuz.
Görselinde hata var, yeni bir tane yüklersen yardımcı olmaya çalışırız ^^
Dil seçiminden sonra yönlendirme işlemini referer bilgisine göre yapabilirsin : $_SERVER['HTTP_REFERER']
header('Location:' . $_SERVER['HTTP_REFERER']); // referer a geri yönlendir
localStorage'e değer yazıp bunu kontrol ederek bir defaya mahsus yönlendirme yapabilirsiniz. Örneğin;
if (!localStorage.getItem('first_visit')) {
window.location.href = '/yonlenecek-adres'
localStorage.setItem('first_visit', 1)
}
focus-within kullanabilirsin. Örneğin;
<label>
<i>önceki</i>
<input type="text" />
<i>sonraki</i>
</label>
<style>
label:focus-within i {
color: red
}
</style>