import { defineStore } from 'pinia';

export const useSnackbarStore = defineStore('snackbar', {
/**
 * The state of the snackbar store.
 * It contains the following properties:
 * - `show`: a boolean indicating whether the snackbar should be shown or not.
 * - `text`: a string containing the text to be displayed in the snackbar.
 * - `color`: a string containing the color of the snackbar.
 * - `timeout`: a number containing the timeout of the snackbar in milliseconds.
 */
  state: () => ({
    show: false,
    text: '',
    color: '',
    timeout: 3000,
  }),
  actions: {
    /**
     * Show a snackbar with the given text, color and timeout.
     * @param {string} text - The text to be displayed in the snackbar.
     * @param {string} [color='error'] - The color of the snackbar.
     * @param {number} [timeout=3000] - The timeout of the snackbar in milliseconds.
     */
    showSnackbar(text: string, color = 'error', timeout = 3000) {
      this.text = text;
      this.color = color;
      this.timeout = timeout;
      this.show = true;
    },
  },
});
