mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-01-31 23:11:41 +03:00
47 lines
1.1 KiB
Vue
47 lines
1.1 KiB
Vue
<template>
|
|
<nav v-if="enable" class="navbar-links toggle-bar">
|
|
<div class="navbar-links-item">
|
|
<a class="nav-link" @click.prevent="toggleTheme">{{ text }}</a>
|
|
</div>
|
|
</nav>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import { defineComponent } from "vue";
|
|
import { useThemeLocaleData } from "@vuepress/plugin-theme-data/lib/client";
|
|
import { ToggleOptions } from "../types";
|
|
|
|
export default defineComponent({
|
|
computed: {
|
|
enable: function (): Boolean {
|
|
const option = useThemeLocaleData<ToggleOptions>();
|
|
return option.value.enableToggle;
|
|
},
|
|
text: function (): String {
|
|
const option = useThemeLocaleData<ToggleOptions>();
|
|
return option.value.ToggleText;
|
|
},
|
|
},
|
|
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>
|