Compare commits

...

11 Commits

20 changed files with 60 additions and 37 deletions

View File

@@ -429,6 +429,11 @@ pre.ace_editor {
} }
} }
.splitpanes__pane {
@apply will-change-auto;
transform: translateZ(0);
}
.smart-splitter .splitpanes__splitter { .smart-splitter .splitpanes__splitter {
@apply relative; @apply relative;
@apply before:absolute; @apply before:absolute;

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="flex h-full flex-1 flex-col"> <div class="h-full">
<HoppSmartTabs <HoppSmartTabs
v-model="selectedOptionTab" v-model="selectedOptionTab"
styles="sticky top-0 bg-primary z-10 border-b-0" styles="sticky top-0 bg-primary z-10 border-b-0"

View File

@@ -72,7 +72,9 @@
</tippy> </tippy>
</div> </div>
</div> </div>
<div ref="schemaEditor" class="flex flex-1 flex-col"></div> <div class="h-full">
<div ref="schemaEditor"></div>
</div>
</div> </div>
<component <component
:is="response[0].error.component" :is="response[0].error.component"

View File

@@ -145,11 +145,9 @@
/> />
</div> </div>
</div> </div>
<div <div v-if="schemaString" class="h-full relative w-full">
v-if="schemaString" <div ref="schemaEditor" class="absolute inset-0"></div>
ref="schemaEditor" </div>
class="flex flex-1 flex-col"
></div>
<HoppSmartPlaceholder <HoppSmartPlaceholder
v-else v-else
:src="`/images/states/${colorMode.value}/blockchain.svg`" :src="`/images/states/${colorMode.value}/blockchain.svg`"

View File

@@ -67,7 +67,9 @@
/> />
</div> </div>
</div> </div>
<div ref="variableEditor" class="flex flex-1 flex-col"></div> <div class="h-full relative">
<div ref="variableEditor" class="flex flex-1 flex-col"></div>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@@ -49,7 +49,9 @@
/> />
</div> </div>
</div> </div>
<div v-if="bulkMode" ref="bulkEditor" class="flex flex-1 flex-col"></div> <div v-if="bulkMode" class="h-full relative w-full">
<div ref="bulkEditor" class="absolute inset-0"></div>
</div>
<div v-else> <div v-else>
<draggable <draggable
v-model="workingHeaders" v-model="workingHeaders"

View File

@@ -44,7 +44,9 @@
/> />
</div> </div>
</div> </div>
<div v-if="bulkMode" ref="bulkEditor" class="flex flex-1 flex-col"></div> <div v-if="bulkMode" class="h-full relative">
<div ref="bulkEditor" class="absolute inset-0"></div>
</div>
<div v-else> <div v-else>
<draggable <draggable
v-model="workingParams" v-model="workingParams"

View File

@@ -30,8 +30,8 @@
</div> </div>
</div> </div>
<div class="flex flex-1 border-b border-dividerLight"> <div class="flex flex-1 border-b border-dividerLight">
<div class="w-2/3 border-r border-dividerLight"> <div class="w-2/3 border-r border-dividerLight h-full relative">
<div ref="preRequestEditor" class="h-full"></div> <div ref="preRequestEditor" class="h-full absolute inset-0"></div>
</div> </div>
<div <div
class="z-[9] sticky top-upperTertiaryStickyFold h-full min-w-[12rem] max-w-1/3 flex-shrink-0 overflow-auto overflow-x-auto bg-primary p-4" class="z-[9] sticky top-upperTertiaryStickyFold h-full min-w-[12rem] max-w-1/3 flex-shrink-0 overflow-auto overflow-x-auto bg-primary p-4"

View File

@@ -59,7 +59,9 @@
/> />
</div> </div>
</div> </div>
<div ref="rawBodyParameters" class="flex flex-1 flex-col"></div> <div class="h-full relative">
<div ref="rawBodyParameters" class="absolute inset-0"></div>
</div>
</div> </div>
</template> </template>

View File

@@ -9,7 +9,7 @@
/> />
</template> </template>
<template #secondary> <template #secondary>
<HttpResponse v-model:document="tab.document" /> <HttpResponse v-model:document="tab.document" :is-embed="false" />
</template> </template>
</AppPaneLayout> </AppPaneLayout>
</template> </template>

View File

@@ -30,8 +30,8 @@
</div> </div>
</div> </div>
<div class="flex flex-1 border-b border-dividerLight"> <div class="flex flex-1 border-b border-dividerLight">
<div class="w-2/3 border-r border-dividerLight"> <div class="w-2/3 border-r border-dividerLight h-full relative">
<div ref="testScriptEditor" class="h-full"></div> <div ref="testScriptEditor" class="h-full absolute inset-0"></div>
</div> </div>
<div <div
class="z-[9] sticky top-upperTertiaryStickyFold h-full min-w-[12rem] max-w-1/3 flex-shrink-0 overflow-auto overflow-x-auto bg-primary p-4" class="z-[9] sticky top-upperTertiaryStickyFold h-full min-w-[12rem] max-w-1/3 flex-shrink-0 overflow-auto overflow-x-auto bg-primary p-4"

View File

@@ -44,7 +44,9 @@
/> />
</div> </div>
</div> </div>
<div v-if="bulkMode" ref="bulkEditor" class="flex flex-1 flex-col"></div> <div v-if="bulkMode" class="h-full relative">
<div ref="bulkEditor" class="absolute inset-0"></div>
</div>
<div v-else> <div v-else>
<draggable <draggable
v-model="workingUrlEncodedParams" v-model="workingUrlEncodedParams"

View File

@@ -44,11 +44,9 @@
/> />
</div> </div>
</div> </div>
<div <div v-show="!previewEnabled" class="h-full">
v-show="!previewEnabled" <div ref="htmlResponse" class="flex flex-1 flex-col"></div>
ref="htmlResponse" </div>
class="flex flex-1 flex-col"
></div>
<iframe <iframe
v-show="previewEnabled" v-show="previewEnabled"
ref="previewFrame" ref="previewFrame"

View File

@@ -119,11 +119,12 @@
/> />
</div> </div>
</div> </div>
<div <div class="h-full">
ref="jsonResponse" <div
class="flex h-auto h-full flex-1 flex-col" ref="jsonResponse"
:class="toggleFilter ? 'responseToggleOn' : 'responseToggleOff'" :class="toggleFilter ? 'responseToggleOn' : 'responseToggleOff'"
></div> ></div>
</div>
<div <div
v-if="outlinePath" v-if="outlinePath"
class="sticky bottom-0 z-10 flex flex-shrink-0 flex-nowrap overflow-auto overflow-x-auto border-t border-dividerLight bg-primaryLight px-2" class="sticky bottom-0 z-10 flex flex-shrink-0 flex-nowrap overflow-auto overflow-x-auto border-t border-dividerLight bg-primaryLight px-2"

View File

@@ -35,7 +35,9 @@
/> />
</div> </div>
</div> </div>
<div ref="rawResponse" class="flex flex-1 flex-col"></div> <div class="h-full">
<div ref="rawResponse" class="flex flex-1 flex-col"></div>
</div>
</div> </div>
</template> </template>

View File

@@ -35,7 +35,9 @@
/> />
</div> </div>
</div> </div>
<div ref="xmlResponse" class="flex flex-1 flex-col"></div> <div class="h-full">
<div ref="xmlResponse" class="flex flex-1 flex-col"></div>
</div>
</div> </div>
</template> </template>

View File

@@ -130,7 +130,9 @@
/> />
</div> </div>
</div> </div>
<div ref="wsCommunicationBody" class="flex flex-1 flex-col"></div> <div class="h-full">
<div ref="wsCommunicationBody" class="flex flex-1 flex-col"></div>
</div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@@ -62,7 +62,7 @@
:shortcut="['T']" :shortcut="['T']"
@click=" @click="
() => { () => {
openInNewTab() emit('open-shared-request', parseRequest)
hide() hide()
} }
" "
@@ -128,6 +128,7 @@ const emit = defineEmits<{
embedProperties?: string | null embedProperties?: string | null
): void ): void
(e: "delete-shared-request", codeID: string): void (e: "delete-shared-request", codeID: string): void
(e: "open-shared-request", request: HoppRESTRequest): void
}>() }>()
const tippyActions = ref<TippyComponent | null>(null) const tippyActions = ref<TippyComponent | null>(null)

View File

@@ -53,6 +53,7 @@
:request="request" :request="request"
@customize-shared-request="customizeSharedRequest" @customize-shared-request="customizeSharedRequest"
@delete-shared-request="deleteSharedRequest" @delete-shared-request="deleteSharedRequest"
@open-shared-request="openRequestInNewTab"
/> />
<HoppSmartIntersection <HoppSmartIntersection
v-if="hasMoreSharedRequests" v-if="hasMoreSharedRequests"
@@ -483,6 +484,13 @@ const getErrorMessage = (err: GQLError<string>) => {
} }
} }
const openRequestInNewTab = (request: HoppRESTRequest) => {
restTab.createNewTab({
isDirty: false,
request,
})
}
defineActionHandler("share.request", ({ request }) => { defineActionHandler("share.request", ({ request }) => {
requestToShare.value = request requestToShare.value = request
displayShareRequestModal(true) displayShareRequestModal(true)

View File

@@ -171,9 +171,6 @@ export const baseTheme = EditorView.theme({
".cm-activeLineGutter": { ".cm-activeLineGutter": {
backgroundColor: "transparent", backgroundColor: "transparent",
}, },
".cm-scroller::-webkit-scrollbar": {
display: "none",
},
".cm-foldPlaceholder": { ".cm-foldPlaceholder": {
backgroundColor: "var(--divider-light-color)", backgroundColor: "var(--divider-light-color)",
color: "var(--secondary-dark-color)", color: "var(--secondary-dark-color)",
@@ -320,9 +317,6 @@ export const inputTheme = EditorView.theme({
".cm-activeLineGutter": { ".cm-activeLineGutter": {
backgroundColor: "transparent", backgroundColor: "transparent",
}, },
".cm-scroller::-webkit-scrollbar": {
display: "none",
},
".cm-foldPlaceholder": { ".cm-foldPlaceholder": {
backgroundColor: "var(--divider-light-color)", backgroundColor: "var(--divider-light-color)",
color: "var(--secondary-dark-color)", color: "var(--secondary-dark-color)",