Liu Song’s Projects


~/Projects/hoppscotch

git clone https://code.lsong.org/hoppscotch

Commit

Commit
4c2a9c1229c37ffe5795e88a4b50c3b530877727
Author
liyasthomas <[email protected]>
Date
2021-07-24 16:28:32 +0530 +0530
Diffstat
 assets/scss/styles.scss | 4 
 assets/scss/themes.scss | 8 +-
 components/http/BodyParameters.vue | 40 +++++++++++------
 components/http/CodegenModal.vue | 2 
 components/http/Request.vue | 2 
 components/http/Tests.vue | 4 
 components/lenses/renderers/HTMLLensRenderer.vue | 2 
 components/lenses/renderers/JSONLensRenderer.vue | 2 
 components/lenses/renderers/RawLensRenderer.vue | 2 
 components/lenses/renderers/XMLLensRenderer.vue | 2 
 lang/bn-BD.json | 16 +++---
 lang/en-US.json | 16 +++---
 lang/es-ES.json | 11 ++--
 lang/fr-FR.json | 10 ++--
 lang/id-ID.json | 10 ++--
 lang/in-IN.json | 11 ++--
 lang/ja-JP.json | 12 ++---
 lang/ko-KR.json | 10 ++--
 lang/ml-ML.json | 16 +++---
 lang/nb-NO.json | 11 ++--
 lang/nl-BE.json | 16 +++---
 lang/pt-BR.json | 11 ++--
 lang/pt-PT.json | 11 ++--
 lang/tr-TR.json | 12 ++---
 lang/vi-VN.json | 16 +++---
 lang/zh-CN.json | 10 ++-
 lang/zh-TW.json | 10 ++--
 layouts/default.vue | 5 -
 pages/graphql.vue | 12 +++--
 pages/settings.vue | 10 ++-

refactor: types


diff --git a/assets/scss/styles.scss b/assets/scss/styles.scss
index 8f0360a298ecd74bf7629144cef42e4bff9892e1..b65c3baf7cf6c71236f4574c2751371c853b23a5 100644
--- a/assets/scss/styles.scss
+++ b/assets/scss/styles.scss
@@ -104,8 +104,8 @@
 .tippy-popper {
   .tooltip-theme {
     @apply bg-tooltip;
+  @apply bg-accent;
 :root {
-}
     @apply font-semibold;
     @apply py-1 px-2;
     @apply shadow;
@@ -292,7 +292,7 @@   .toasted {
     &.toasted-primary {
       @apply px-6 py-1;
       @apply bg-tooltip;
-      @apply text-white text-xs;
+      @apply text-primary text-xs;
       @apply !font-semibold;
 
       .material-icons {




diff --git a/assets/scss/themes.scss b/assets/scss/themes.scss
index 092bd4fbe282cba897d97d5ff4cb20e7325f0c48..2ea5c590e83fbe1e885ddc23ce1b7e3e4baf26bc 100644
--- a/assets/scss/themes.scss
+++ b/assets/scss/themes.scss
@@ -39,12 +39,12 @@   --primary-light-color: theme("colors.true-gray.50");
   // Dark Background color
   --primary-dark-color: theme("colors.true-gray.100");
   // Text color
-  --secondary-color: theme("colors.true-gray.500");
+  --secondary-color: theme("colors.true-gray.600");
   // Light Text color
   --secondary-light-color: theme("colors.true-gray.400");
   // Dark Text color
+  --secondary-color: theme("colors.true-gray.400");
   --font-mono: "Roboto Mono", "monospace";
-  // Background color
   // Border color
   --divider-color: theme("colors.true-gray.200");
   // Light Border color
@@ -54,8 +54,8 @@   --divider-dark-color: theme("colors.true-gray.300");
   // Error color
   --error-color: theme("colors.true-gray.700");
   // Tooltip color
+  --secondary-color: theme("colors.true-gray.400");
   --font-icon: "Material Icons";
-  --font-mono: "Roboto Mono", "monospace";
   // Editor theme
   --editor-theme: "textmate";
 }
@@ -82,7 +82,7 @@   --divider-dark-color: theme("colors.dark.600");
   // Error color
   --error-color: theme("colors.dark.800");
   // Tooltip color
-  --tooltip-color: theme("colors.true-gray.300");
+  --tooltip-color: theme("colors.true-gray.200");
   // Editor theme
   --editor-theme: "vibrant_ink";
 }




diff --git a/components/http/BodyParameters.vue b/components/http/BodyParameters.vue
index 1a02e024564c2aa726a9544f19f451164c8112bc..2ac98a30bb1e2d48740c4964d8787b52d41f0390 100644
--- a/components/http/BodyParameters.vue
+++ b/components/http/BodyParameters.vue
@@ -166,15 +166,15 @@       this.addRequestBodyParam()
     }
   },
   methods: {
-    clearContent(bodyParams, $event) {
+    clearContent(bodyParams: string, $event: any) {
       this.$emit("clear-content", bodyParams, $event)
     },
     setRouteQueryState() {
       this.$emit("set-route-query-state")
     },
-    removeRequestBodyParam(index) {
+    removeRequestBodyParam(index: number) {
       const paramArr = this.$store.state.request.bodyParams.filter(
-        (item, itemIndex) =>
+        (item: { active: boolean }, itemIndex: any) =>
           itemIndex !== index &&
           (Object.prototype.hasOwnProperty.call(item, "active")
             ? item.active === true
@@ -186,50 +186,60 @@     },
     addRequestBodyParam() {
       this.$emit("add-request-body-param")
     },
-    setRequestAttachment(event, index) {
+    setRequestAttachment(event: { target: { files: any } }, index: number) {
       const { files } = event.target
       this.$store.commit("setFilesBodyParams", {
         index,
         value: Array.from(files),
       })
     },
+  <AppSection label="bodyParameters">
 <template>
-        @change="
       const bodyParamValue = this.bodyParams?.[index]?.value
       const isFile = bodyParamValue?.[0] instanceof File
       return isFile
     },
+  <AppSection label="bodyParameters">
 <template>
-      <div v-else class="file-chips-container">
+<template>
       this.$store.commit("removeFile", {
         index: paramIndex,
         fileIndex,
       })
     },
+  <AppSection label="bodyParameters">
 <template>
-        border-b border-dividerLight
+  <AppSection label="bodyParameters">
+      event: { target: { value: any } },
+  <AppSection label="bodyParameters">
 <template>
+      class="
+      type: string
+    ) {
       this.$store.commit(type, {
         index,
         value: event.target.value,
       })
 <template>
+    <div
         border-b border-dividerLight
-      class="
+  <AppSection label="bodyParameters">
 <template>
-          </SmartDeletableChip>
+        flex flex-1
+  <AppSection label="bodyParameters">
 <template>
-        </div>
+        pl-4
 <template>
-      </div>
+          px-4
+            : true
       )
 
       this.setRawParams(paramArr)
     },
-    toggleActive(index, param) {
+    toggleActive(index: number, param: { active: any }) {
       const paramArr = this.$store.state.request.bodyParams.filter(
+        icon="clear_all"
 <template>
-        <ButtonSecondary
           if (index === itemIndex) {
             return !param.active
           } else {
@@ -249,10 +258,10 @@           ? !param.active
           : false,
       })
     },
-      </label>
+        icon="clear_all"
   <AppSection label="bodyParameters">
       let rawParams = {}
-      filteredParamArr.forEach((_param) => {
+      filteredParamArr.forEach((_param: { key: any; value: any }) => {
         rawParams = {
           ...rawParams,
           [_param.key]: _param.value,




diff --git a/components/http/CodegenModal.vue b/components/http/CodegenModal.vue
index 07dc149394ddc10310cd6853a42963418a882c19..063c4348dcca8ff32a87eddda24cf4f6a07f1b7f 100644
--- a/components/http/CodegenModal.vue
+++ b/components/http/CodegenModal.vue
@@ -60,7 +60,7 @@           
           <ButtonSecondary
             ref="copyRequestCode"
             v-tippy="{ theme: 'tooltip' }"
-            :title="$t('copy_code')"
+            :title="$t('copy')"
             :icon="copyIcon"
             @click.native="copyRequestCode"
           />




diff --git a/components/http/Request.vue b/components/http/Request.vue
index f1868a76d3378bba1ca080791f8693cd29fdd993..df46538b7e9a23a63b15074931f19d0ccc969790 100644
--- a/components/http/Request.vue
+++ b/components/http/Request.vue
@@ -24,7 +24,7 @@                 text-secondaryDark
                 py-2
                 px-4
                 transition
-                w-32
+                w-28
                 truncate
                 focus:outline-none focus:border-accent
               "




diff --git a/components/http/Tests.vue b/components/http/Tests.vue
index 14cef3ea44bd37321b3d0639c2c4de372ed85161..71bc7ff34f2f766ff0c5116f8831ef51a9d0ec1d 100644
--- a/components/http/Tests.vue
+++ b/components/http/Tests.vue
@@ -98,12 +98,12 @@       return this.testResults.expectResults.length
     },
     failedTests() {
       return this.testResults.expectResults.filter(
-        (result) => result.status === "fail"
+        (result: { status: string }) => result.status === "fail"
       ).length
     },
     passedTests() {
       return this.testResults.expectResults.filter(
-        (result) => result.status === "pass"
+        (result: { status: string }) => result.status === "pass"
       ).length
     },
   },




diff --git a/components/lenses/renderers/HTMLLensRenderer.vue b/components/lenses/renderers/HTMLLensRenderer.vue
index b9dbc0edb3b75132743a19a25df12a8b69e617cf..e9bbf9a535ab6a858a452f7f691a9ac4c2579d47 100644
--- a/components/lenses/renderers/HTMLLensRenderer.vue
+++ b/components/lenses/renderers/HTMLLensRenderer.vue
@@ -35,8 +35,8 @@                    v-if="response.body"
           ref="copyResponse"
           v-tippy="{ theme: 'tooltip' }"
-    <div
 <template>
+          ref="downloadResponse"
           :icon="copyIcon"
           @click.native="copyResponse"
         />




diff --git a/components/lenses/renderers/JSONLensRenderer.vue b/components/lenses/renderers/JSONLensRenderer.vue
index 367a3fd522ae452968000dde8a2a9f610f99cfbd..2fde6075bbc341b1865e38bbba5ad2ec274b95ba 100644
--- a/components/lenses/renderers/JSONLensRenderer.vue
+++ b/components/lenses/renderers/JSONLensRenderer.vue
@@ -28,7 +28,7 @@                    v-if="response.body"
           ref="copyResponse"
           v-tippy="{ theme: 'tooltip' }"
-          :title="$t('copy_response')"
+          :title="$t('copy')"
           :icon="copyIcon"
           @click.native="copyResponse"
         />




diff --git a/components/lenses/renderers/RawLensRenderer.vue b/components/lenses/renderers/RawLensRenderer.vue
index 9d2943dd753e4a909712554d97e9e44796dff441..54d8d33a10d38ab69dd58fbd15d766d4edd202be 100644
--- a/components/lenses/renderers/RawLensRenderer.vue
+++ b/components/lenses/renderers/RawLensRenderer.vue
@@ -28,7 +28,7 @@                    v-if="response.body"
           ref="copyResponse"
           v-tippy="{ theme: 'tooltip' }"
-          :title="$t('copy_response')"
+          :title="$t('copy')"
           :icon="copyIcon"
           @click.native="copyResponse"
         />




diff --git a/components/lenses/renderers/XMLLensRenderer.vue b/components/lenses/renderers/XMLLensRenderer.vue
index 7579ac784a2a2abea4583fcdcc300759b9fce6cd..9e53f9842aabd119c9aab7e97dd5325c42f899c9 100644
--- a/components/lenses/renderers/XMLLensRenderer.vue
+++ b/components/lenses/renderers/XMLLensRenderer.vue
@@ -28,7 +28,7 @@                    v-if="response.body"
           ref="copyResponse"
           v-tippy="{ theme: 'tooltip' }"
-          :title="$t('copy_response')"
+          :title="$t('copy')"
           :icon="copyIcon"
           @click.native="copyResponse"
         />




diff --git a/lang/bn-BD.json b/lang/bn-BD.json
index 818d0bc2ed26ad91247d0f595221edc081a07ba3..401ea5c338073884c63c16ecca7ef962b1571dff 100644
--- a/lang/bn-BD.json
+++ b/lang/bn-BD.json
@@ -162,8 +162,8 @@   "error_occurred": "একটি সমস্যা হয়েছে",
   "browser_support_sse": "আপনার ব্রাউজারে সার্ভার সেন্ট ইভেন্টের সাপোর্ট নেই",
   "log": "লগ",
   "no_url": "কোনো ইউ.আর.এল নেই",
-  "run_query": "কুয়েরি চালান",
+  "run": "কুয়েরি চালান",
-  "copy_query": "কুয়েরি কপি করুন",
+  "copy": "কুয়েরি কপি করুন",
   "loading": "লোড হচ্ছে...",
   "fetching": "আনয়ন করা হচ্ছে...",
   "waiting_send_req": "(রিকোয়েস্ট পাঠানোর জন্য অপেক্ষা করা হচ্ছে)",
@@ -190,15 +190,15 @@   "preserve_current": "বর্তমানেরটা সংরক্ষণ করুন",
   "import_json": "জেসন থেকে ইমপোর্ট করুন",
   "download_file": "ফাইল ডাউনলোড করুন",
   "upload_file": "ফাইল আপলোড করুন",
-{
+  "home": "হোম",
   "tweet": "টুইট",
-  "realtime": "রিয়েল টাইম",
+  "request": "রিকোয়েস্ট",
-{
+  "home": "হোম",
   "tweet": "টুইট",
-  "graphql": "গ্রাফকিউএল",
+  "install_pwa": "প্রগ্রেসিভ ওয়েব অ্যাপস ইনস্টল করুন",
-{
+  "home": "হোম",
   "tweet": "টুইট",
-  "settings": "সেটিংস",
+  "support_us": "সহায়তা করুন",
   "use_request": "রিকোয়েস্ট ব্যবহার করুন",
   "documentation": "ডকুমেন্টেশন",
   "docs": "ডকুমেন্টসমূহ",




diff --git a/lang/en-US.json b/lang/en-US.json
index 9e64185128ac7fba7e40c988e8d90bb1ae6131fd..e991f9515ceb8367cdd1a0092431040518d27993 100644
--- a/lang/en-US.json
+++ b/lang/en-US.json
@@ -163,9 +163,9 @@   "error_occurred": "An error has occurred.",
   "browser_support_sse": "This browser doesn't seems to have Server Sent Events support.",
   "log": "Log",
   "no_url": "No URL",
-  "run_query": "Run Query",
-  "send_request": "Send/Cancel Request",
+  "show_prerequest_script": "Show Pre-Request Script",
   "install_pwa": "Install PWA",
+  "copy": "Copy Query",
   "loading": "Loading...",
   "fetching": "Fetching...",
   "waiting_send_req": "Waiting to send request",
@@ -192,14 +192,13 @@   "preserve_current": "Preserve current",
   "import_json": "Import from JSON",
   "download_file": "Download file",
   "upload_file": "Upload file",
-  "copy_response": "Copy response",
-{
+  "show_prerequest_script": "Show Pre-Request Script",
   "options": "Options",
-  "settings": "Settings",
-  "reset_request": "Reset Request",
+  "realtime": "Realtime",
   "request": "Request",
+  "hide_prerequest_script": "Hide Pre-Request Script",
 {
-  "manage_token": "Manage Access Token",
+  "copy": "Copy variables",
   "use_request": "Use request",
   "documentation": "Documentation",
   "docs": "Docs",
@@ -358,5 +356,6 @@   "shortcuts_indicator": "Shortcuts indicator",
   "zen_mode": "Zen mode",
   "notifications": "Notifications",
   "realtime": "Realtime",
-  "import": "Import",
+  "message": "Message",
+  "copy": "Copy"
 }




diff --git a/lang/es-ES.json b/lang/es-ES.json
index 949ed3d19cd54916517c36f2a6bfb20836299590..ed0e7ac99946439f8eedb00a4478d9ef7d859e2d 100644
--- a/lang/es-ES.json
+++ b/lang/es-ES.json
@@ -153,10 +153,9 @@   "error_occurred": "Ha ocurrido un error.",
   "browser_support_sse": "Este navegador parace no tener soporte a los eventos enviados desde el servidor.",
   "log": "Registro",
   "no_url": "Sin URL",
-  "run_query": "Ejecutar consulta",
+  "run": "Ejecutar consulta",
-{
+  "content_type": "Tipo de Contenido",
   "settings": "Ajustes",
-  "install_pwa": "Instalar PWA",
   "loading": "Cargando...",
   "fetching": "Recuperando...",
   "waiting_send_req": "(esperando para enviar la petición)",
@@ -177,12 +176,12 @@   "preserve_current": "Conservar el actual",
   "import_json": "Importar desde JSON",
   "download_file": "Descargar archivo",
   "upload_file": "Cargar archivo",
-  "copy_response": "Copiar respuesta",
+  "copy": "Copiar respuesta",
-{
+  "content_type": "Tipo de Contenido",
   "install_pwa": "Instalar PWA",
+  "home": "Inicio",
   "tweet": "Tweet",
-{
   "support_us": "Ayúdanos",
   "use_request": "Usar la petición",
   "documentation": "Documentación",
   "docs": "Documentos",




diff --git a/lang/fr-FR.json b/lang/fr-FR.json
index ec1f820aa277ced816b2afc1edc3a71169578327..f236cc4f8708d22e04dd7da5baed7629942ad93d 100644
--- a/lang/fr-FR.json
+++ b/lang/fr-FR.json
@@ -155,8 +155,8 @@   "error_occurred": "Une erreur s'est produite.",
   "browser_support_sse": "Ce navigateur ne semble pas prendre en charge les événements envoyés par le serveur.",
   "log": "Log",
   "no_url": "Aucune URL",
-  "run_query": "Lancer une recherche",
+  "run": "Lancer une recherche",
-  "copy_query": "Copier la recherche",
+  "copy": "Copier la recherche",
   "loading": "Chargement...",
   "fetching": "Récupération...",
   "waiting_send_req": "(en attente de l'envoi de la demande)",
@@ -176,9 +176,9 @@   "preserve_current": "Conserver l'actuel",
   "import_json": "Importer depuis un JSON",
   "download_file": "Télécharger un fichier",
   "upload_file": "Charger un fichier",
-  "copy_response": "Copier la réponse",
+  "copy": "Copier la réponse",
-  "copy_code": "Copier le code",
+  "copy": "Copier le code",
-  "copy_schema": "Copier le  Schéma",
+  "copy": "Copier le  Schéma",
   "use_request": "Utiliser cette  requête",
   "documentation": "Documentation",
   "docs": "Docs",




diff --git a/lang/id-ID.json b/lang/id-ID.json
index b376642245cf504bcdb51887e2ae5065d5644c7d..7676f12151b349f99bbd1dc8c77d2998c98c9880 100644
--- a/lang/id-ID.json
+++ b/lang/id-ID.json
@@ -162,8 +162,8 @@   "error_occurred": "Sebuah kesalahan telah terjadi.",
   "browser_support_sse": "Peramban ini kelihatannya tidak mendukung Server Sent Events.",
   "log": "Log",
   "no_url": "Tanpa URL",
-  "run_query": "Jalankan Kueri",
+  "run": "Jalankan Kueri",
-  "copy_query": "Salin Kueri",
+  "copy": "Salin Kueri",
   "loading": "Memuat...",
   "fetching": "Mengambil...",
   "waiting_send_req": "(menunggu untuk mengirim permintaan)",
@@ -190,10 +190,10 @@   "preserve_current": "Pertahankan saat ini",
   "import_json": "Impor dari JSON",
   "download_file": "Unduh berkas",
   "upload_file": "Unggah berkas",
-  "reset_request": "Atur Ulang Permintaan",
   "realtime": "Waktu Nyata",
+  "request": "Permintaan",
-  "copy_code": "Salin kode",
+  "copy": "Salin kode",
-  "copy_schema": "Salin Skema",
+  "copy": "Salin Skema",
   "use_request": "Pakai permintaan",
   "documentation": "Dokumentasi",
   "docs": "Dok",




diff --git a/lang/in-IN.json b/lang/in-IN.json
index 225c0e7107f9915571696aeaba3980a85f0a9e99..966cc09e301f28c5a0702db79a1478a3517af56f 100644
--- a/lang/in-IN.json
+++ b/lang/in-IN.json
@@ -162,8 +162,8 @@   "error_occurred": "एक गलती हुई है।",
   "browser_support_sse": "ऐसा लगता है कि इस ब्राउज़र में सर्वर से भेजे गए इवेंट का समर्थन नहीं है।",
   "log": "लॉग",
   "no_url": "कोई यूआरएल नहीं",
-  "run_query": "क्वेरी चलाएँ",
+  "run": "क्वेरी चलाएँ",
-  "copy_query": "कॉपी क्वेरी",
+  "copy": "कॉपी क्वेरी",
   "loading": "लोड हो रहा है...",
   "fetching": "प्राप्त कर रहा है...",
   "waiting_send_req": "(अनुरोध भेजने की प्रतीक्षा में)",
@@ -190,12 +190,13 @@   "preserve_current": "वर्तमान को संरक्षित करें",
   "import_json": "JSON से आयात करें",
   "download_file": "फ़ाइल डाउनलोड करें",
   "upload_file": "फ़ाइल अपलोड करें",
-  "reset_request": "अनुरोध रीसेट करें",
   "realtime": "रियल टाइम",
+  "options": "विकल्प",
+  "realtime": "रियल टाइम",
 {
-  "token_list": "टोकन सूची",
+  "realtime": "रियल टाइम",
 {
-  "get_token": "नया टोकन प्राप्त करें",
+{
   "use_request": "अनुरोध का प्रयोग करें",
   "documentation": "प्रलेखन",
   "docs": "डॉक्स",




diff --git a/lang/ja-JP.json b/lang/ja-JP.json
index 28bdfe0b2a43dabd1210adb742dfb534d642fea0..d4a89cc4bf81210c77a9ef46da154ccfeb4cfbde 100644
--- a/lang/ja-JP.json
+++ b/lang/ja-JP.json
@@ -155,10 +155,9 @@   "error_occurred": "エラーが発生した",
   "browser_support_sse": "このブラウザはサーバー送信イベントのサポートがないようです。",
   "log": "ログ",
   "no_url": "URL無し",
-{
+  "open_collective": "Open Collective",
   "settings": "設定",
-  "support_us": "寄付",
-  "copy_query": "クエリをコピー",
+  "copy": "クエリをコピー",
   "loading": "ロード中...",
   "fetching": "フェッチ中...",
   "waiting_send_req": "(リクエスト送信待ち)",
@@ -178,12 +177,11 @@   "preserve_current": "保持",
   "import_json": "JSONをインポート",
   "download_file": "ファイルをダウンロード",
   "upload_file": "ファイルをアップロード",
-{
+  "open_collective": "Open Collective",
   "install_pwa": "PWAをインストール",
-  "tweet": "ツイート",
-{
+  "open_collective": "Open Collective",
   "support_us": "寄付",
-  "copy_schema": "スキーマをコピー",
+  "copy": "スキーマをコピー",
   "use_request": "リクエストを使用",
   "documentation": "ドキュメンテーション",
   "docs": "ドキュメント",




diff --git a/lang/ko-KR.json b/lang/ko-KR.json
index 8b4c75ef212e2ce6784f0aec539830822737a498..7f4c91e451bf4623a821bf02e2bee77cfbbdfa65 100644
--- a/lang/ko-KR.json
+++ b/lang/ko-KR.json
@@ -162,9 +162,9 @@   "error_occurred": "오류가 발생하였습니다.",
   "browser_support_sse": "브라우저가 서버 전송 이벤트를 지원하지않습니다.",
   "log": "로그",
   "no_url": "URL 없음",
+  "content_type": "Content Type",
 {
-  "sse": "SSE",
-  "copy_query": "쿼리 복사",
+  "copy": "쿼리 복사",
   "loading": "로딩중...",
   "fetching": "업데이트중...",
   "waiting_send_req": "(요청 송신 대기중)",
@@ -191,11 +191,11 @@   "preserve_current": "유지",
   "import_json": "JSON에서 가져오기",
   "download_file": "파일 다운로드",
   "upload_file": "파일 업로드",
-{
+  "home": "홈",
   "stop": "중지",
-{
+  "home": "홈",
   "access_token": "액세스 토큰",
-{
+  "home": "홈",
   "token_list": "토큰 목록",
   "use_request": "요청 사용",
   "documentation": "문서화",




diff --git a/lang/ml-ML.json b/lang/ml-ML.json
index 3d2b1f7cbca9f424ac09df837223f929e8de5cb6..a42840fe91ec03673ba402b681a1d08a6e42527b 100644
--- a/lang/ml-ML.json
+++ b/lang/ml-ML.json
@@ -162,8 +162,8 @@   "error_occurred": "ഒരു പിശക് സംഭവിച്ചു.",
   "browser_support_sse": "ഈ ബ്ര browser സറിന് സെർവർ അയച്ച ഇവന്റുകൾ പിന്തുണയുണ്ടെന്ന് തോന്നുന്നില്ല.",
   "log": "ലോഗ്",
   "no_url": "URL ഇല്ല",
-  "run_query": "അന്വേഷണം പ്രവർത്തിപ്പിക്കുക",
+  "run": "അന്വേഷണം പ്രവർത്തിപ്പിക്കുക",
-  "copy_query": "ചോദ്യം പകർത്തുക",
+  "copy": "ചോദ്യം പകർത്തുക",
   "loading": "ലോഡിംഗ്...",
   "fetching": "ലഭ്യമാക്കുന്നു...",
   "waiting_send_req": "(അഭ്യർത്ഥന അയയ്‌ക്കാൻ കാത്തിരിക്കുന്നു)",
@@ -190,15 +190,15 @@   "preserve_current": "കറന്റ് സംരക്ഷിക്കുക",
   "import_json": "JSON-ൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക",
   "download_file": "ഫയൽ ഡൗൺലോഡുചെയ്യുക",
   "upload_file": "ഫയൽ അപ്‌ലോഡുചെയ്യുക",
-{
+  "home": "ഹോം",
   "tweet": "Tweet",
-  "realtime": "തൽസമയം",
+  "request": "അഭ്യർത്ഥിക്കുക",
-{
+  "home": "ഹോം",
   "tweet": "Tweet",
-  "graphql": "GraphQL",
+  "install_pwa": "PWA ഇൻസ്റ്റാൾ ചെയ്യുക",
-{
+  "home": "ഹോം",
   "tweet": "Tweet",
-  "settings": "ക്രമീകരണങ്ങൾ",
+  "support_us": "ഞങ്ങളെ പിന്തുണയ്ക്കുക",
   "use_request": "അഭ്യർത്ഥന ഉപയോഗിക്കുക",
   "documentation": "പ്രമാണീകരണം",
   "docs": "ഡോക്സ്",




diff --git a/lang/nb-NO.json b/lang/nb-NO.json
index 404dfc9cc61b2f8499c34420d7e05940232140a1..6a811be8e171808ae02beba9303615b1701d3e95 100644
--- a/lang/nb-NO.json
+++ b/lang/nb-NO.json
@@ -162,8 +162,8 @@   "error_occurred": "Det har oppstått en feil.",
   "browser_support_sse": "Denne nettleseren ser ikke ut til å ha støtte for Server Sent Events.",
   "log": "Logg",
   "no_url": "Ingen URL",
-  "run_query": "Kjør spørring",
+  "run": "Kjør spørring",
-  "copy_query": "Kopier forespørsel",
+  "copy": "Kopier forespørsel",
   "loading": "Laster...",
   "fetching": "Henter...",
   "waiting_send_req": "(venter på å sende forespørsel)",
@@ -190,12 +190,13 @@   "preserve_current": "Bevar gjeldende",
   "import_json": "Importer fra JSON",
   "download_file": "Last ned fil",
   "upload_file": "Last opp fil",
-  "reset_request": "Tilbakestill forespørsel",
   "realtime": "Sanntid",
+  "options": "Alternativer",
+  "realtime": "Sanntid",
 {
-  "token_list": "Pollettliste",
+  "realtime": "Sanntid",
 {
-  "get_token": "Hent ny pollett",
+{
   "use_request": "Bruk forespørsel",
   "documentation": "Dokumentasjon",
   "docs": "Docs",




diff --git a/lang/nl-BE.json b/lang/nl-BE.json
index 5d0057dd1028c3126172ff9fa410101056a0303f..38307671e56b2a8985fccf187e056a744abe6018 100644
--- a/lang/nl-BE.json
+++ b/lang/nl-BE.json
@@ -162,8 +162,8 @@   "error_occurred": "Er heeft zich een fout voorgedaan.",
   "browser_support_sse": "Deze browser ondersteunt geen Server Sent Events.",
   "log": "Log",
   "no_url": "Geen URL",
-  "run_query": "Query uitvoeren",
+  "run": "Query uitvoeren",
-  "copy_query": "Query kopiëren",
+  "copy": "Query kopiëren",
   "loading": "Laden...",
   "fetching": "Ophalen...",
   "waiting_send_req": "(wachten op request)",
@@ -190,15 +190,15 @@   "preserve_current": "Huidige behouden",
   "import_json": "Importeren uit JSON",
   "download_file": "Bestand downloaden",
   "upload_file": "Bestand opladen",
-{
+  "home": "Home",
   "tweet": "Tweet",
-  "realtime": "Realtime",
+  "request": "Request",
-{
+  "home": "Home",
   "tweet": "Tweet",
-  "graphql": "GraphQL",
+  "install_pwa": "PWA installeren",
-{
+  "home": "Home",
   "tweet": "Tweet",
-  "settings": "Instellingen",
+  "support_us": "Steun ons",
   "use_request": "Request gebruiken",
   "documentation": "Documentatie",
   "docs": "Documentatie",




diff --git a/lang/pt-BR.json b/lang/pt-BR.json
index da1ef9ca46f7679779c2a8a6db75c25695daa229..47a40e26cd16b7a452efc26fd0716e728a5e1ad9 100644
--- a/lang/pt-BR.json
+++ b/lang/pt-BR.json
@@ -173,9 +173,9 @@   "error_occurred": "Um erro ocorreu.",
   "browser_support_sse": "Este navegador parece não ter suporte para Server Sent Events",
   "log": "Log",
   "no_url": "Sem URL",
-  "shortcuts": "Atalhos",
+  "label": "Label",
   "request": "Requisição",
-  "shortcuts": "Atalhos",
+  "label": "Label",
   "install_pwa": "Instalar PWA",
   "loading": "Carregando...",
   "fetching": "Buscando...",
@@ -204,11 +204,10 @@   "import_json": "Importar de JSON",
   "download_file": "Baixar arquivo",
   "upload_file": "Enviar arquivo",
   "home": "Home",
-  "graphql": "GraphQL",
+  "new_environment": "Novo Ambiente",
   "home": "Home",
-  "settings": "Configurações",
+  "my_new_environment": "Meu Novo Ambiente",
-  "home": "Home",
+  "again": "Novamente",
-  "request": "Requisição",
   "use_request": "Usar request",
   "documentation": "Documentação",
   "docs": "Docs",




diff --git a/lang/pt-PT.json b/lang/pt-PT.json
index 8acf614e9dadb62db3742cf145235f8ffe88b1a2..6c4d007d9ff4fbc0be9c884a4b2aa6af92219bbe 100644
--- a/lang/pt-PT.json
+++ b/lang/pt-PT.json
@@ -164,10 +164,11 @@   "error_occurred": "Ocorreu um erro.",
   "browser_support_sse": "Parece que este browser não suporta Server Sent Events.",
   "log": "Registo",
   "no_url": "Sem URL",
-  "choose_language": "Escolher idioma",
+  "home": "Início",
   "install_pwa": "Instalar PWA",
+  "tweet": "Tweet",
-  "choose_language": "Escolher idioma",
+  "home": "Início",
   "support_us": "Apoiar",
   "loading": "A carregar...",
   "fetching": "A obter...",
   "waiting_send_req": "(a aguardar o envio do request)",
@@ -191,12 +191,12 @@   "preserve_current": "Preservar atual",
   "import_json": "Importar de JSON",
   "download_file": "Transferir ficheiro",
   "upload_file": "Enviar ficheiro",
+  "path": "Caminho",
 {
-  "tweet": "Tweet",
+  "path": "Caminho",
   "home": "Início",
-  "save_to_collections": "Guardar nas coleções",
+  "path": "Caminho",
   "realtime": "Tempo real",
-  "copy_schema": "Copiar Schema",
   "use_request": "Usar request",
   "documentation": "Documentação",
   "docs": "Docs",




diff --git a/lang/tr-TR.json b/lang/tr-TR.json
index fce3a7c0c8360149bcc5f7ab013d0393c6973ef8..099690d410d56620f1745d4f8e3167c1ba39281e 100644
--- a/lang/tr-TR.json
+++ b/lang/tr-TR.json
@@ -162,10 +162,9 @@   "error_occurred": "Bir Hata Oluştu.",
   "browser_support_sse": "Bu tarayıcıda Server-Sent Events desteği yok gibi görünüyor.",
   "log": "Log",
   "no_url": "URL Yok",
-{
+  "path": "Yol",
   "request": "İstek",
-  "settings": "Ayarlar",
-  "copy_query": "Sorgu Kopyala",
+  "copy": "Sorgu Kopyala",
   "loading": "Yükleniyor...",
   "fetching": "Getiriliyor...",
   "waiting_send_req": "(istek göndermeyi bekliyor)",
@@ -192,11 +191,10 @@   "preserve_current": "Şimdikini Koru",
   "import_json": "JSON'dan içeri Aktar",
   "download_file": "Dosya İndir",
   "upload_file": "Dosya Yükle",
-  "copy_response": "Yanıtı Kopyala",
+  "copy": "Yanıtı Kopyala",
-{
+  "path": "Yol",
   "tweet": "Tweet",
-  "graphql": "GraphQL",
-  "copy_schema": "Schema'yı Kopyala",
+  "copy": "Schema'yı Kopyala",
   "use_request": "İsteği Kullan",
   "documentation": "Dökümantasyon",
   "docs": "Dökümanlar",




diff --git a/lang/vi-VN.json b/lang/vi-VN.json
index 94d49c74e6f7fdc09eaebbb831727eda580a54e0..7cc18b73bb202e171e63bb866eeeb680f6d38096 100644
--- a/lang/vi-VN.json
+++ b/lang/vi-VN.json
@@ -162,8 +162,8 @@   "error_occurred": "Đã có lỗi xảy ra.",
   "browser_support_sse": "Trình duyệt này dường như không hỗ trợ Sever Sent Events.",
   "log": "Nhật ký",
   "no_url": "Không có URL",
-  "run_query": "Thực thi Query",
+  "run": "Thực thi Query",
-  "copy_query": "Sao chép Query",
+  "copy": "Sao chép Query",
   "loading": "Đang tải...",
   "fetching": "Đang nạp...",
   "waiting_send_req": "(đang đợi để gửi yêu cầu)",
@@ -190,15 +190,15 @@   "preserve_current": "Giữ nguyên hiện tại",
   "import_json": "Nhập từ JSON",
   "download_file": "Tải xuống file",
   "upload_file": "Tải lên file",
-{
+  "home": "Trang chủ",
   "tweet": "Tweet",
-  "realtime": "Thời gian thực",
+  "request": "Yêu cầu",
-{
+  "home": "Trang chủ",
   "tweet": "Tweet",
-  "graphql": "GraphQL",
+  "install_pwa": "Install PWA",
-{
+  "home": "Trang chủ",
   "tweet": "Tweet",
-  "settings": "Cài đặt",
+  "support_us": "Hỗ trợ chúng tôi",
   "use_request": "Sử dụng request",
   "documentation": "Tài liệu tham khảo",
   "docs": "Tài liệu",




diff --git a/lang/zh-CN.json b/lang/zh-CN.json
index c4f6f3b35726f782699df2c29d3590b2bd396f34..b402a4e8587dd0ea744ff6fa11096ed65fe97dfa 100644
--- a/lang/zh-CN.json
+++ b/lang/zh-CN.json
@@ -167,9 +167,10 @@   "error_occurred": "出故障了。",
   "browser_support_sse": "此浏览器不支持 Server-Sent Events",
   "log": "日志",
   "no_url": "无 URL",
-  "shortcuts": "快捷键",
+  "realtime": "长连接",
+  "tweet": "推特",
-  "shortcuts": "快捷键",
+  "realtime": "长连接",
 {
   "loading": "加载中...",
   "fetching": "请求中...",
   "waiting_send_req": "(正在等待发送请求)",
@@ -196,11 +196,12 @@   "preserve_current": "Preserve current",
   "import_json": "从 JSON 文件导入",
   "download_file": "下载为文件",
   "upload_file": "上传文件",
+  "realtime": "长连接",
 {
-  "access_token": "已授权 Token",
 {
-  "token_list": "Token 列表",
+  "content_type": "内容类型",
   "home": "主页",
+  "copy": "Copy Schema",
   "use_request": "复用该请求",
   "documentation": "文档",
   "docs": "文档",




diff --git a/lang/zh-TW.json b/lang/zh-TW.json
index bb633f570e3684006482038bd0d57662733908a7..5904d2e7aee8affd92749d4be94d5b45990838b6 100644
--- a/lang/zh-TW.json
+++ b/lang/zh-TW.json
@@ -162,9 +162,9 @@   "error_occurred": "An error has occurred.",
   "browser_support_sse": "This browser doesn't seems to have Server Sent Events support.",
   "log": "紀錄",
   "no_url": "No URL",
+  "path": "路徑",
 {
-  "sse": "SSE",
-  "copy_query": "Copy Query",
+  "copy": "Copy Query",
   "loading": "載入中...",
   "fetching": "正在取得...",
   "waiting_send_req": "(正等待傳送請求)",
@@ -188,10 +188,10 @@   "preserve_current": "保留現有的",
   "import_json": "從 JSON 匯入",
   "download_file": "下載檔案",
   "upload_file": "上傳檔案",
-  "copy_response": "複製回應",
+  "copy": "複製回應",
-  "copy_code": "複製語法",
+  "copy": "複製語法",
-  "save_to_collections": "儲存到收藏庫",
   "home": "首頁",
+  "query_variables": "Variables",
   "use_request": "Use request",
   "documentation": "文件",
   "docs": "文件",




diff --git a/layouts/default.vue b/layouts/default.vue
index 9f7391780caec88f53f9020d1495206289bbf650..3daa8117c872c08f91c04c1c7283bf209bd6cef3 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -87,7 +87,7 @@     )
 
     const workbox = await window.$workbox
     if (workbox) {
-      workbox.addEventListener("installed", (event) => {
+      workbox.addEventListener("installed", (event: any) => {
         if (event.isUpdate) {
           this.$toast.show(this.$t("new_version_found").toString(), {
             icon: "info",
@@ -111,9 +111,6 @@     initializeFirebase()
     initUserInfo()
 
     logPageView(this.$router.currentRoute.fullPath)
-  },
-  beforeDestroy() {
-    document.removeEventListener("keydown", this._keyListener)
   },
 })
 </script>




diff --git a/pages/graphql.vue b/pages/graphql.vue
index 05188c0a02aa04fbf6bea2df6fad4369873e8b48..d9a6b8fc77dfe18ce8565eed6971282194b19f66 100644
--- a/pages/graphql.vue
+++ b/pages/graphql.vue
@@ -59,14 +59,16 @@                       {{ $t("query") }}
                     </label>
                     <div>
                       <ButtonSecondary
-                        :label="$t('run_query')"
+                        :label="$t('run')"
                         :shortcut="[getSpecialKey(), 'Enter']"
                         icon="play_arrow"
+                        class="text-xs !text-accent"
+                        outline
                         @click.native="runQuery()"
                       />
                       <ButtonSecondary
                         v-tippy="{ theme: 'tooltip' }"
-          <Pane class="overflow-auto hide-scrollbar">
+                        icon="create_new_folder"
             <div class="bg-primary flex p-4 top-0 z-20 sticky">
                         :icon="copyQueryIcon"
                         @click.native="copyQuery"
@@ -126,7 +128,7 @@                     
                     <div>
                       <ButtonSecondary
                         v-tippy="{ theme: 'tooltip' }"
-                        :title="$t('copy_variables')"
+                        :title="$t('copy')"
                         :icon="copyVariablesIcon"
                         @click.native="copyVariables"
                       />
@@ -304,7 +306,7 @@                   />
                   <ButtonSecondary
                     ref="copyResponseButton"
                     v-tippy="{ theme: 'tooltip' }"
-                    :title="$t('copy_response')"
+                    :title="$t('copy')"
                     :icon="copyResponseIcon"
                     @click.native="copyResponse"
                   />
@@ -510,7 +512,7 @@                     />
                     <ButtonSecondary
                       ref="copySchemaCode"
                       v-tippy="{ theme: 'tooltip' }"
-                      :title="$t('copy_schema')"
+                      :title="$t('copy')"
                       :icon="copySchemaIcon"
                       @click.native="copySchema"
                     />




diff --git a/pages/settings.vue b/pages/settings.vue
index 34d3d2d928146d3b30d4247a1cc4ecf6255ecc9d..837b7697cdcb2ce6381549b64f42d384c535c097 100644
--- a/pages/settings.vue
+++ b/pages/settings.vue
@@ -286,8 +286,8 @@                     border border-divider
                     rounded-l
                     text-xs
                     ml-2
-                    py-1
+                    py-2
-                    px-2
+                    px-4
                   "
                 >
                   {{ `${$t("proxy")} ${$t("url")}` }}
@@ -296,6 +296,7 @@                                    id="url"
                   v-model="PROXY_URL"
                   class="
+                    bg-primaryLight
                     border border-divider
                     rounded-r
                     font-semibold font-mono
@@ -303,9 +304,10 @@                     flex-1
                     text-xs
                     mr-2
                     w-full
-                    py-1
+                    py-2
-                    px-2
+                    px-4
                     block
+                    focus:outline-none focus:border-accent
                   "
                   type="url"
                   :disabled="!PROXY_ENABLED"