feat: cleaner save context handling for graphql (#3282)

Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
This commit is contained in:
Andrew Bastin
2023-08-24 19:07:17 +05:30
committed by GitHub
parent a9a4ebf595
commit b08b63dc73
16 changed files with 365 additions and 42 deletions

View File

@@ -7,6 +7,7 @@ import { BehaviorSubject } from "rxjs"
import { HoppRESTDocument } from "./rest/document"
import { HoppGQLRequest, HoppRESTRequest } from "@hoppscotch/data"
import { RequestOptionTabs } from "~/components/http/RequestOptions.vue"
import { HoppGQLSaveContext } from "./graphql/document"
export type HoppAction =
| "contextmenu.open" // Send/Cancel a Hoppscotch Request
@@ -109,6 +110,7 @@ type HoppActionArgsMap = {
"gql.request.open": {
request: HoppGQLRequest
saveContext?: HoppGQLSaveContext
}
"modals.environment.add": {
envName: string

View File

@@ -197,3 +197,30 @@ export function getTabsRefTo(func: (tab: HoppGQLTab) => boolean) {
.filter(func)
.map((tab) => getTabRef(tab.id))
}
export function closeOtherTabs(tabID: string) {
if (!tabMap.has(tabID)) {
console.warn(
`The tab to close other tabs does not exist (tab id: ${tabID})`
)
return
}
tabOrdering.value = [tabID]
tabMap.forEach((_, id) => {
if (id !== tabID) tabMap.delete(id)
})
currentTabID.value = tabID
}
export function getDirtyTabsCount() {
let count = 0
for (const tab of tabMap.values()) {
if (tab.document.isDirty) count++
}
return count
}