Lanjut ke konten
Samkarsa Logbook

Blonjo v1.5.0-009: Instant Initial Bottom View & Dynamic Follow-Scroll Streaming

Penyempurnaan UX chat: tampilan instan di pesan terakhir saat awal buka tanpa animasi geser, dan auto-follow scroll dinamis mengikuti kalimat yang sedang diketik.

1mnt baca

Pembaruan ini menyempurnakan ergonomi pembacaan dan interaksi navigasi scroll pada modul Vibes Chat:

  1. Instant Initial Bottom View (Zero-Scroll Animation Jump):

    • Masalah: Saat halaman chat pertama kali dibuka atau berpindah sesi riwayat, tampilan sebelumnya memicu animasi gulir yang terlihat meluncur dari atas ke bawah, atau diam di atas.
    • Solusi: Mengimplementasikan scrollToInstantBottom() yang dipicu tepat saat status initialLoading selesai dan saat sesi dimuat (loadSession). Posisi scroll langsung dipatok ke scrollTop = scrollHeight secara instan (behavior: 'instant'), menampilkan pesan terakhir secara langsung tanpa terlihat bergeser.
  2. Dynamic Follow-Scroll saat Response Streaming:

    • Masalah: Sebelumnya viewport terkunci kaku di awal gelembung pesan asisten (block: 'start'), sehingga ketika jawaban memanjang, kalimat-kalimat yang baru diketik meluncur ke bawah lipatan layar (below the fold) dan tidak terlihat.
    • Solusi: Menghubungkan pembaruan streamingText dengan pembaruan scroll container secara real-time. Layar secara dinamis dan mulus mengikuti kalimat serta kursor kedip ▋ yang sedang ditulis ke arah bawah.
  3. Smart User Pause Interaction:

    • Dilengkapi handleContainerScroll yang mendeteksi jarak scroll pengguna (isUserScrolledUpRef).
    • Jika pengguna sengaja menggulir ke atas (>80px dari dasar) untuk membaca teks atau chart di atas saat streaming masih berjalan, auto-scroll dinonaktifkan sementara agar tidak mengganggu pembacaan pengguna.
    • Ketika pengguna menggulir kembali ke dekat bagian bawah, auto-follow scroll otomatis aktif kembali.