import { getI18n } from "@/plugins/i18n/index";
import { deepMerge } from "@antfu/utils";
import { useI18n } from "vue-i18n";
import { createVuetify } from "vuetify";
import { VBtn } from "vuetify/lib/components/VBtn";
import { createVueI18nAdapter } from "vuetify/lib/locale/adapters/vue-i18n";
import defaults from "./defaults";
import { icons } from "./icons";
import { staticPrimaryColor, themes } from "./theme";

// Styles
import { cookieRef } from "@/@layouts/stores/config";
import "@core-scss/template/libs/vuetify/index.scss";
import "vuetify/lib/styles/main.sass";

export default function (app) {
  const cookieThemeValues = {
    defaultTheme: resolveVuetifyTheme(),
    themes: {
      light: {
        colors: {
          primary: cookieRef("lightThemePrimaryColor", staticPrimaryColor)
            .value,
        },
      },
      dark: {
        colors: {
          primary: cookieRef("darkThemePrimaryColor", staticPrimaryColor).value,
        },
      },
    },
  };

  const optionTheme = deepMerge({ themes }, cookieThemeValues);

  const vuetify = createVuetify({
    aliases: {
      IconBtn: VBtn,
    },
    defaults,
    icons,
    theme: optionTheme,
    locale: {
      adapter: createVueI18nAdapter({ i18n: getI18n(), useI18n }),
    },
  });

  app.use(vuetify);
}
