diff --git a/src/composables/code.ts b/src/composables/code.ts index feb17c7..74229e8 100644 --- a/src/composables/code.ts +++ b/src/composables/code.ts @@ -1,31 +1,61 @@ import { ref } from "vue" import copyTextToClipboard from "copy-text-to-clipboard" -import { Code, LANGUAGE } from "../types" +import { Code, LANGUAGE, Cache } from "../types" import { sources } from "../templates" import { submit } from "../api" +import { useStorage } from "@vueuse/core" + +const defaultLanguage = "python" + +const cache: Cache = { + language: useStorage("code_language", defaultLanguage), + input: useStorage("code_input", ""), + code: { + python: useStorage("code_python", sources["python"]), + c: useStorage("code_c", sources["c"]), + java: useStorage("code_java", sources["java"]), + cpp: useStorage("code_cpp", sources["cpp"]), + }, +} export const code = ref({ - value: sources["python"], - language: "python", + value: cache.code[defaultLanguage].value, + language: cache.language.value, }) -export const input = ref("") +export const input = ref(cache.input.value) export const output = ref("") export const loading = ref(false) +export function init() { + code.value.language = cache.language.value + code.value.value = cache.code[code.value.language].value + input.value = cache.input.value +} + export function copy() { copyTextToClipboard(code.value.value) } export function reset() { - code.value.value = sources["python"] + code.value.value = sources[code.value.language] + cache.code[code.value.language].value = sources[code.value.language] output.value = "" } export function changeLanguage(language: LANGUAGE) { - code.value.value = sources[language] + cache.language.value = language + code.value.value = cache.code[language].value output.value = "" } +export function changeCode(value: string) { + cache.code[code.value.language].value = value +} + +export function changeInput(value: string) { + cache.input.value = value +} + export async function run() { loading.value = true const cleanCode = code.value.value.trim() diff --git a/src/desktop/Content.vue b/src/desktop/Content.vue index 26df10b..9dc19a6 100644 --- a/src/desktop/Content.vue +++ b/src/desktop/Content.vue @@ -1,3 +1,18 @@ + + @@ -16,7 +32,11 @@ :max="3 / 5" > - +