--- @module "plugins.dashboard.alpha"
--- This module defines the alpha plugin spec for the Neovim configuration.
--          ╭─────────────────────────────────────────────────────────╮
--          │                          ALPHA                          │
--          ╰─────────────────────────────────────────────────────────╯
return { -- Alpha
  "goolord/alpha-nvim",
  event = "VimEnter",
  enabled = require("data.func").check_global_var(
    "dashboard",
    "alpha",
    "alpha"
  ),
  opts = require("data.dash").alpha.opts,
  config = function(_, dashboard)
    -- close Lazy and re-open when the dashboard is ready
    if vim.o.filetype == "lazy" then
      vim.cmd.close()
      vim.api.nvim_create_autocmd("User", {
        once = true,
        pattern = "AlphaReady",
        callback = function()
          require("lazy").show()
        end,
      })
    end

    -- Setup the dashboard
    require("alpha").setup(dashboard.opts)

    -- Open Alpha when Vim is started with no file arguments
    vim.api.nvim_create_autocmd("User", {
      once = true,
      pattern = "LazyVimStarted",
      callback = function()
        local stats = require("lazy").stats()
        local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
        dashboard.section.footer.val = "󰇥  Neovim loaded "
          .. stats.loaded
          .. "/"
          .. stats.count
          .. " plugins in "
          .. ms
          .. "ms 󱐌"
        pcall(vim.cmd.AlphaRedraw)

        -- Handle other plugins that may conflict
        -- If auto-cursorline is installed, disable it
        if pcall(require, "auto-cursorline") then
          require("auto-cursorline").disable({ buffer = true })
        end
      end,
    })
  end,
}
