47 lines
1.1 KiB
Vue
Raw Normal View History

2021-04-06 23:47:32 +08:00
<template>
2021-05-26 19:05:53 +08:00
<nav v-if="enable" class="navbar-links toggle-bar">
2021-04-06 23:47:32 +08:00
<div class="navbar-links-item">
2021-05-26 19:05:53 +08:00
<a class="nav-link" @click.prevent="toggleTheme">{{ text }}</a>
2021-04-06 23:47:32 +08:00
</div>
</nav>
</template>
<script lang="ts">
import { defineComponent } from "vue";
2021-04-14 18:58:55 +08:00
import { useThemeLocaleData } from "@vuepress/plugin-theme-data/lib/client";
2021-04-07 22:20:50 +08:00
import { ToggleOptions } from "../types";
2021-04-06 23:47:32 +08:00
export default defineComponent({
2021-05-26 19:05:53 +08:00
computed: {
enable: function (): Boolean {
const option = useThemeLocaleData<ToggleOptions>();
return option.value.enableToggle;
},
text: function (): String {
const option = useThemeLocaleData<ToggleOptions>();
return option.value.ToggleText;
},
2021-04-06 23:47:32 +08:00
},
methods: {
toggleTheme() {
const html = document.getElementsByTagName("html")[0];
let theme = html.getAttribute("theme");
if (theme == "light") {
html.setAttribute("theme", "dark");
} else if (theme == "dark") {
html.setAttribute("theme", "light");
} else {
html.setAttribute("theme", "light");
}
},
},
});
</script>
<style lang="scss" scoped>
.toggle-bar {
margin-left: 1.5rem;
}
</style>