This commit is contained in:
10
src/api.ts
10
src/api.ts
@@ -126,6 +126,16 @@ export async function removeCode(id: number) {
|
|||||||
await api.delete(`/${id}`)
|
await api.delete(`/${id}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getMaxkb(): Promise<{ enabled: boolean }> {
|
||||||
|
const res = await api.get("/maxkb")
|
||||||
|
return res.data
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function postMaxkb(): Promise<{ enabled: boolean }> {
|
||||||
|
const res = await api.post("/maxkb")
|
||||||
|
return res.data
|
||||||
|
}
|
||||||
|
|
||||||
export async function debug(code: string, inputs: string[]) {
|
export async function debug(code: string, inputs: string[]) {
|
||||||
const res = await api.post("/debug", {
|
const res = await api.post("/debug", {
|
||||||
code,
|
code,
|
||||||
|
|||||||
30
src/composables/maxkb.ts
Normal file
30
src/composables/maxkb.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import { ref } from "vue"
|
||||||
|
import { getMaxkb, postMaxkb } from "../api"
|
||||||
|
|
||||||
|
const enabled = ref(true)
|
||||||
|
|
||||||
|
function applyState() {
|
||||||
|
document.querySelectorAll<HTMLElement>("body > [id^='maxkb-']").forEach(el => {
|
||||||
|
el.style.display = enabled.value ? "" : "none"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function fetchMaxkbState() {
|
||||||
|
try {
|
||||||
|
const res = await getMaxkb()
|
||||||
|
enabled.value = res.enabled
|
||||||
|
applyState()
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function toggleMaxkb() {
|
||||||
|
try {
|
||||||
|
const res = await postMaxkb()
|
||||||
|
enabled.value = res.enabled
|
||||||
|
applyState()
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function initMaxkb() {
|
||||||
|
fetchMaxkbState()
|
||||||
|
}
|
||||||
@@ -22,17 +22,20 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useMagicKeys, whenever } from "@vueuse/core"
|
import { useMagicKeys, whenever } from "@vueuse/core"
|
||||||
import { ref } from "vue"
|
import { onMounted, ref } from "vue"
|
||||||
import { run } from "../composables/code"
|
import { run } from "../composables/code"
|
||||||
|
import { initMaxkb, toggleMaxkb } from "../composables/maxkb"
|
||||||
import Content from "./Content.vue"
|
import Content from "./Content.vue"
|
||||||
import File from "./File.vue"
|
import File from "./File.vue"
|
||||||
import Header from "./Header.vue"
|
import Header from "./Header.vue"
|
||||||
import Query from "./Query.vue"
|
import Query from "./Query.vue"
|
||||||
|
|
||||||
|
onMounted(initMaxkb)
|
||||||
|
|
||||||
const file = ref(false)
|
const file = ref(false)
|
||||||
const query = ref(false)
|
const query = ref(false)
|
||||||
|
|
||||||
const { alt_shift_p, ctrl_shift_p, ctrl_shift_z, ctrl_shift_m } = useMagicKeys()
|
const { alt_shift_p, ctrl_shift_p, ctrl_shift_z, ctrl_shift_m, ctrl_shift_h } = useMagicKeys()
|
||||||
|
|
||||||
whenever(alt_shift_p, () => {
|
whenever(alt_shift_p, () => {
|
||||||
file.value = true
|
file.value = true
|
||||||
@@ -48,6 +51,8 @@ whenever(ctrl_shift_m, () => {
|
|||||||
query.value = true
|
query.value = true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
whenever(ctrl_shift_h, toggleMaxkb)
|
||||||
|
|
||||||
const { ctrl_s } = useMagicKeys({
|
const { ctrl_s } = useMagicKeys({
|
||||||
passive: false,
|
passive: false,
|
||||||
onEventFired(e) {
|
onEventFired(e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user