Sinau Coding
Berbincang santai perihal pemrograman
Tukang ketik yang sedang belajar pemrograman
12/24/2022 05:51:00 PM

Cara meng-custom style current date pada komponen Qalendar

Pada artikel ini akan ditunjukkan bagaimana cara untuk meng-custom style current date pada komponen Qalendar.

Qalendar adalah komponen Full Calendar atau Event Calendar yang tersedia untuk Vue 3. Sesuai dengan namanya Qalendar ini berfungsi untuk menamapilkan data kalender dalam 3 mode, harian (day, mingguan (week) atau bulanan (month).

Komponen Qalendar ini memiliki banyak konfigurasi yang dapat Anda gunakan untuk mengatur style data yang akan ditampilkan. Meski begitu, sampai tulisan ini ditulis, ternyata Qalendar masih belum memiliki pengaturan untuk mengatur bagaimana current date ditampilkan. Misalkan Anda ingin mengubah background dari current date, maka saat ini masih belum memungkinkan. Oleh karena itu, pada artikel ini, akan ditunjukkan salah satu cara untuk mengatur style dari div atau span current date Qalendar agar lebih mencolok.

Idenya adalah dengan cara membuat element style secara dinamis, dimana rule-nya diatur untuk id dari current date.

1.Mengetahui id atau kelas yang ingin di atur style-nya

Pada mode bulanan, tiap-tiap div tanggal diberi id dengan format day-YYYY-MM-DD.
Contoh : day-2022-12-12.

Format id div pada mode bulanan

Maka, kita dapat membuat variable untuk menyimpan id current date sebagai berikut:

const currentDate = ref(null);
onMounted(() => {
  currentDate.value = 'day-' + new Date().toISOString().split('T')[0];
});
Pada kode di atas, pembuatan id dilakukan pada onMounted, tetapi tidak harus seperti ini. Jika diperlukan, silahkan sesuaikan dengan kebutuhan Anda.


Baca juga :
Membuat promise based Modal/Dialog dengan menggunakan Vue 3 dan Quasar

2. Membuat element style untuk mengatur css div current date

Silahkan buat fungsi tertentu, untuk membuat element style secara dinamis, dimana element style id diberi id agar mudah untuk di hapus atau di override. Misalkan element style tersebut kita beri id datestyle.

Lalu tambahkan rule style untuk id current date sesuai keinginan Anda. Misalkan background-color, border dan lain-lain.

const updateBackground = () => {
  if (!currentDate.value) return;
  var link = document.getElementById('datestyle');
  if (!link) {
    link = document.createElement('style');
    link.id = 'datestyle';
    document.head.appendChild(link);
  }
  // setiap kali nilai current date berubah, maka lebih aman jika style di rewrite
  link.innerHTML = `
    #${currentDate.value} {
      border: 1px solid #73ffc2;
      background-color: #d6ffed;
    }

    #${currentDate.value} span.calendar-month__day-date{
      font-weight: bold;
      background-color: #00baff;
      border-radius: 50%;
      padding: 5px;
      color: white      
    }
  `;
};

3. Merespon di setiap perubahan current date dan mode

Panggil fungsi di atas setiap kali ada perubahan mode dan ada perubahan nilai current date.

<template>
  <Qalendar :events="events" @updated-mode="updatedMode" />
</template>

<script setup>
import { Qalendar } from 'qalendar';

...


const updatedMode = () => {
  updateBackground();
};

watch(currentDate, () => {
  updateBackground();
});
</script>

Dengan ini maka Anda telah dapat meng-custom style div dari current date. Silahkan modifikasi dan sesuaikan dengan kebutuhan Anda. Seperti gambar di bawah inilah hasil akhirnya.

Sekian tip/trik kali ini. Selamat mencoba dan semoga yang sedikit ini bermanfaat.

 

Contribute to meshwara/custom_style_qalendar_today development by creating an account on GitHub.

Komentar

Load more