diff --git a/assets/scss/styles.scss b/assets/scss/styles.scss
index 858f34b03..8f0360a29 100644
--- a/assets/scss/styles.scss
+++ b/assets/scss/styles.scss
@@ -89,7 +89,6 @@ a {
@apply text-current;
@apply no-underline;
@apply outline-none;
- @apply rounded-lg;
@apply focus-visible:(ring ring-inset ring-accent);
@apply transition;
@@ -149,7 +148,7 @@ a {
.tippy-content > div {
@apply flex flex-col;
- @apply max-h-64;
+ @apply max-h-48;
@apply items-stretch;
@apply overflow-y-auto;
}
@@ -170,7 +169,7 @@ hr {
@apply px-4 py-2;
@apply bg-primary;
@apply truncate;
- @apply rounded-lg;
+ @apply rounded;
@apply font-semibold font-mono;
@apply text-xs;
@apply border border-divider;
@@ -226,7 +225,7 @@ input[type="checkbox"] {
&::before {
@apply border border-secondary;
- @apply rounded-lg;
+ @apply rounded;
@apply inline-flex;
@apply items-center;
@apply justify-center;
diff --git a/components/app/Extensions.vue b/components/app/Extensions.vue
deleted file mode 100644
index 0e734a71b..000000000
--- a/components/app/Extensions.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
- {{ $t("extensions") }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $t("extensions_info1") }}
-
-
-
-
-
-
diff --git a/components/app/Footer.vue b/components/app/Footer.vue
new file mode 100644
index 000000000..026a4d989
--- /dev/null
+++ b/components/app/Footer.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
diff --git a/components/app/Header.vue b/components/app/Header.vue
index c8220be63..c86a59f87 100644
--- a/components/app/Header.vue
+++ b/components/app/Header.vue
@@ -1,7 +1,7 @@
-
+
-
Hoppscotch
+
Hoppscotch
@@ -62,56 +62,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -119,7 +71,6 @@
import intializePwa from "~/helpers/pwa"
import { currentUser$ } from "~/helpers/fb/auth"
import { getLocalConfig, setLocalConfig } from "~/newstore/localpersistence"
-import { getPlatformSpecialKey } from "~/helpers/platformutils"
export default {
data() {
@@ -129,9 +80,6 @@ export default {
// prompt.
showInstallPrompt: null,
showLogin: false,
- showExtensions: false,
- showShortcuts: false,
- navigatorShare: navigator.share,
}
},
subscriptions() {
@@ -161,22 +109,5 @@ export default {
})
}
},
- methods: {
- nativeShare() {
- if (navigator.share) {
- navigator
- .share({
- title: "Hoppscotch",
- text: "Hoppscotch • Open source API development ecosystem - Helps you create requests faster, saving precious time on development.",
- url: "https://hoppscotch.io",
- })
- .then(() => {})
- .catch(console.error)
- } else {
- // fallback
- }
- },
- getSpecialKey: getPlatformSpecialKey,
- },
}
diff --git a/components/app/Shortcuts.vue b/components/app/Shortcuts.vue
index 7f2bf276a..0f5999045 100644
--- a/components/app/Shortcuts.vue
+++ b/components/app/Shortcuts.vue
@@ -18,7 +18,7 @@
:key="`shortcut-${index}-key-${keyIndex}`"
class="
border border-divider
- rounded-lg
+ rounded
font-bold
m-1
text-xs
diff --git a/components/button/Primary.vue b/components/button/Primary.vue
index b8c90b2eb..31b62e437 100644
--- a/components/button/Primary.vue
+++ b/components/button/Primary.vue
@@ -17,7 +17,7 @@
? `text-${color}-800 bg-${color}-200 hover:text-${color}-900 hover:bg-${color}-300 focus:text-${color}-900 focus:bg-${color}-300`
: `text-white bg-accent hover:bg-accentDark focus:bg-accentDark`,
label ? 'px-4' : 'px-2',
- rounded ? 'rounded-full' : 'rounded-lg',
+ rounded ? 'rounded-full' : 'rounded',
{ 'opacity-50 cursor-not-allowed': disabled },
{ 'pointer-events-none': loading },
{ 'px-6 py-4 text-lg': large },
@@ -53,9 +53,9 @@
class="svg-icons"
/>
{{ label }}
-
+
@@ -132,21 +132,19 @@ export default {
type: Boolean,
default: false,
},
- shortcuts: {
+ shortcut: {
type: Array,
default: () => [],
},
},
data() {
return {
- SHORTCUTS_INDICATOR_ENABLED: null,
+ SHORTCUT_INDICATOR: null,
}
},
subscriptions() {
return {
- SHORTCUTS_INDICATOR_ENABLED: getSettingSubject(
- "SHORTCUTS_INDICATOR_ENABLED"
- ),
+ SHORTCUT_INDICATOR: getSettingSubject("SHORTCUT_INDICATOR"),
}
},
}
diff --git a/components/button/Secondary.vue b/components/button/Secondary.vue
index 43a488681..a97981aa1 100644
--- a/components/button/Secondary.vue
+++ b/components/button/Secondary.vue
@@ -15,9 +15,9 @@
:class="[
color
? `text-${color}-400 hover:text-${color}-600 focus:text-${color}-600`
- : 'text-secondary hover:text-secondaryDark focus:text-secondaryDark',
+ : 'text-secondary hover:text-secondaryDark hover:bg-primaryDark focus:text-secondaryDark',
label ? 'px-3' : 'px-2',
- rounded ? 'rounded-full' : 'rounded-lg',
+ rounded ? 'rounded-full' : 'rounded',
{ 'opacity-50 cursor-not-allowed': disabled },
{ 'flex-row-reverse': reverse },
{
@@ -41,9 +41,9 @@
class="svg-icons"
/>
{{ label }}
-
+
diff --git a/components/http/Request.vue b/components/http/Request.vue
index 33c2c473d..d62da1968 100644
--- a/components/http/Request.vue
+++ b/components/http/Request.vue
@@ -16,7 +16,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
cursor-pointer
flex
font-mono
@@ -75,7 +75,7 @@
id="send"
class="rounded-none"
:label="!loading ? $t('send') : $t('cancel')"
- :shortcuts="[getSpecialKey(), 'G']"
+ :shortcut="[getSpecialKey(), 'G']"
outline
@click.native="!loading ? newSendRequest() : cancelRequest()"
/>
@@ -125,7 +125,7 @@
diff --git a/components/http/TestResult.vue b/components/http/TestResult.vue
index 6d7512c68..56a571882 100644
--- a/components/http/TestResult.vue
+++ b/components/http/TestResult.vue
@@ -1,8 +1,22 @@
-
+
+
+ {{ results.tests.description }}
+
+
+
+
-
-
-
@@ -45,7 +51,7 @@ import { HoppTestResult } from "~/helpers/types/HoppTestResult"
export default defineComponent({
props: {
results: {
- type: Array as PropType
,
+ type: Object as PropType,
default: null,
},
},
diff --git a/components/http/Tests.vue b/components/http/Tests.vue
index 3f32d0e2e..e8bf69f6e 100644
--- a/components/http/Tests.vue
+++ b/components/http/Tests.vue
@@ -36,9 +36,6 @@
}"
complete-mode="test"
/>
-
- {{ testResults }}
-
@@ -60,22 +57,7 @@
@click.native="clearContent()"
/>
-
-
-
-
-
-
+
diff --git a/components/landing/Hero.vue b/components/landing/Hero.vue
index 7f366e25e..0fc9ced8f 100644
--- a/components/landing/Hero.vue
+++ b/components/landing/Hero.vue
@@ -38,7 +38,7 @@
svg="github"
large
rounded
- :shortcuts="['30k Stars']"
+ :shortcut="['30k Stars']"
/>
diff --git a/components/profile/Picture.vue b/components/profile/Picture.vue
index 0a781a2b0..0d101a8a7 100644
--- a/components/profile/Picture.vue
+++ b/components/profile/Picture.vue
@@ -14,7 +14,7 @@
:alt="alt"
loading="lazy"
/>
-
+
diff --git a/components/realtime/Mqtt.vue b/components/realtime/Mqtt.vue
index 2fcd3bf5b..bec27de52 100644
--- a/components/realtime/Mqtt.vue
+++ b/components/realtime/Mqtt.vue
@@ -14,7 +14,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
font-mono
text-secondaryDark
w-full
diff --git a/components/realtime/Socketio.vue b/components/realtime/Socketio.vue
index e307c469a..87c40d4b9 100644
--- a/components/realtime/Socketio.vue
+++ b/components/realtime/Socketio.vue
@@ -15,7 +15,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
font-mono
text-secondaryDark
w-full
diff --git a/components/realtime/Sse.vue b/components/realtime/Sse.vue
index 60924e82a..a7272e691 100644
--- a/components/realtime/Sse.vue
+++ b/components/realtime/Sse.vue
@@ -12,7 +12,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
font-mono
text-secondaryDark
w-full
diff --git a/components/realtime/Websocket.vue b/components/realtime/Websocket.vue
index ca4f964c3..ae4385149 100644
--- a/components/realtime/Websocket.vue
+++ b/components/realtime/Websocket.vue
@@ -11,7 +11,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
font-mono
text-secondaryDark
w-full
diff --git a/components/smart/DeletableChip.vue b/components/smart/DeletableChip.vue
index 6ac4a29b7..a04b41bd9 100644
--- a/components/smart/DeletableChip.vue
+++ b/components/smart/DeletableChip.vue
@@ -14,7 +14,7 @@
@apply inline-flex;
@apply items-center;
@apply justify-center;
- @apply rounded-lg;
+ @apply rounded;
@apply m-1;
@apply pl-4;
@apply bg-primaryDark;
diff --git a/components/smart/Item.vue b/components/smart/Item.vue
index 9a4ce3597..e3712be79 100644
--- a/components/smart/Item.vue
+++ b/components/smart/Item.vue
@@ -4,7 +4,7 @@
:exact="exact"
:blank="blank"
class="
- rounded-lg
+ rounded
font-semibold
text-xs
py-2
diff --git a/components/smart/Modal.vue b/components/smart/Modal.vue
index d57677c1c..e02f5c52c 100644
--- a/components/smart/Modal.vue
+++ b/components/smart/Modal.vue
@@ -22,7 +22,7 @@
-
+
-
+
@@ -69,38 +39,24 @@ import { performMigrations } from "~/helpers/migrations"
import { initUserInfo } from "~/helpers/teams/BackendUserInfo"
import { registerApolloAuthUpdate } from "~/helpers/apollo"
import { initializeFirebase } from "~/helpers/fb"
-import {
- defaultSettings,
- getSettingSubject,
- applySetting,
- toggleSetting,
-} from "~/newstore/settings"
+import { getSettingSubject } from "~/newstore/settings"
import { logPageView } from "~/helpers/fb/analytics"
-import type { KeysMatching } from "~/types/ts-utils"
-
-type SettingsType = typeof defaultSettings
export default defineComponent({
components: { Splitpanes, Pane },
data() {
return {
LEFT_SIDEBAR: null,
- RIGHT_SIDEBAR: null,
ZEN_MODE: null,
}
},
subscriptions() {
return {
LEFT_SIDEBAR: getSettingSubject("LEFT_SIDEBAR"),
- RIGHT_SIDEBAR: getSettingSubject("RIGHT_SIDEBAR"),
ZEN_MODE: getSettingSubject("ZEN_MODE"),
}
},
watch: {
- ZEN_MODE(ZEN_MODE) {
- this.applySetting("LEFT_SIDEBAR", !ZEN_MODE)
- this.applySetting("RIGHT_SIDEBAR", !ZEN_MODE)
- },
$route(to) {
logPageView(to.fullPath)
},
@@ -159,13 +115,5 @@ export default defineComponent({
beforeDestroy() {
document.removeEventListener("keydown", this._keyListener)
},
- methods: {
- toggleSetting
>(key: K) {
- toggleSetting(key)
- },
- applySetting(key: K, value: SettingsType[K]) {
- applySetting(key, value)
- },
- },
})
diff --git a/layouts/empty.vue b/layouts/empty.vue
new file mode 100644
index 000000000..5d3ae9c40
--- /dev/null
+++ b/layouts/empty.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/middleware/README.md b/middleware/README.md
index 01595ded7..7439fd95c 100644
--- a/middleware/README.md
+++ b/middleware/README.md
@@ -1,7 +1,5 @@
# MIDDLEWARE
-**This directory is not required, you can delete it if you don't want to use it.**
-
This directory contains your application middleware.
Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
diff --git a/newstore/settings.ts b/newstore/settings.ts
index 7888f1e12..14c34d81a 100644
--- a/newstore/settings.ts
+++ b/newstore/settings.ts
@@ -44,7 +44,7 @@ export type SettingsType = {
THEME_COLOR: HoppAccentColor
BG_COLOR: HoppBgColor
TELEMETRY_ENABLED: boolean
- SHORTCUTS_INDICATOR_ENABLED: boolean
+ SHORTCUT_INDICATOR: boolean
LEFT_SIDEBAR: boolean
RIGHT_SIDEBAR: boolean
ZEN_MODE: boolean
@@ -70,7 +70,7 @@ export const defaultSettings: SettingsType = {
THEME_COLOR: "green",
BG_COLOR: "system",
TELEMETRY_ENABLED: true,
- SHORTCUTS_INDICATOR_ENABLED: false,
+ SHORTCUT_INDICATOR: false,
LEFT_SIDEBAR: true,
RIGHT_SIDEBAR: true,
ZEN_MODE: false,
diff --git a/pages/enter.vue b/pages/enter.vue
index ee2646fa1..72acfc889 100644
--- a/pages/enter.vue
+++ b/pages/enter.vue
@@ -1,8 +1,12 @@
-
-
{{ $t("loading") }}
-
{{ $t("waiting_for_connection") }}
-
{{ error }}
+
+
+
+
+
+ {{ $t("waiting_for_connection") }}
+
+
{{ error }}
@@ -13,6 +17,7 @@ import { isSignInWithEmailLink, signInWithEmailLink } from "~/helpers/fb/auth"
import { getLocalConfig, removeLocalConfig } from "~/newstore/localpersistence"
export default Vue.extend({
+ layout: "empty",
data() {
return {
signingInWithEmail: false,
diff --git a/pages/graphql.vue b/pages/graphql.vue
index bfb6cba71..e4263299a 100644
--- a/pages/graphql.vue
+++ b/pages/graphql.vue
@@ -15,7 +15,7 @@
class="
bg-primaryLight
border border-divider
- rounded-l-lg
+ rounded-l
font-mono
text-secondaryDark
w-full
diff --git a/pages/settings.vue b/pages/settings.vue
index cb9c50f1d..367b828f4 100644
--- a/pages/settings.vue
+++ b/pages/settings.vue
@@ -173,13 +173,11 @@
{{ $t("shortcuts_indicator") }}
- {{
- SHORTCUTS_INDICATOR_ENABLED ? $t("enabled") : $t("disabled")
- }}
+ {{ SHORTCUT_INDICATOR ? $t("enabled") : $t("disabled") }}
@@ -229,6 +227,26 @@
{{ $t("extension_ver_not_reported") }}
+
+
+
+
+
+
+
+
import { defineComponent } from "@nuxtjs/composition-api"
-import { hasExtensionInstalled } from "../helpers/strategies/ExtensionStrategy"
+import {
+ hasExtensionInstalled,
+ hasChromeExtensionInstalled,
+ hasFirefoxExtensionInstalled,
+} from "~/helpers/strategies/ExtensionStrategy"
import {
applySetting,
toggleSetting,
@@ -345,7 +367,7 @@ export default defineComponent({
SYNC_ENVIRONMENTS: useSetting("syncEnvironments"),
SYNC_HISTORY: useSetting("syncHistory"),
TELEMETRY_ENABLED: useSetting("TELEMETRY_ENABLED"),
- SHORTCUTS_INDICATOR_ENABLED: useSetting("SHORTCUTS_INDICATOR_ENABLED"),
+ SHORTCUT_INDICATOR: useSetting("SHORTCUT_INDICATOR"),
LEFT_SIDEBAR: useSetting("LEFT_SIDEBAR"),
ZEN_MODE: useSetting("ZEN_MODE"),
currentUser: useReadonlyStream(currentUser$, currentUser$.value),
@@ -357,6 +379,9 @@ export default defineComponent({
? window.__POSTWOMAN_EXTENSION_HOOK__.getVersion()
: null,
+ hasChromeExtInstalled: hasChromeExtensionInstalled(),
+ hasFirefoxExtInstalled: hasFirefoxExtensionInstalled(),
+
clearIcon: "clear_all",
showLogin: false,