mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 22:47:17 +00:00
140 lines
5.4 KiB
Diff
140 lines
5.4 KiB
Diff
diff --git a/dist/index.mjs b/dist/index.mjs
|
|
index 567480ba5ccc30619db2eb8e6da8d618ddb5e891..c49c573893a26897062cda2af9896bc69881db2a 100644
|
|
--- a/dist/index.mjs
|
|
+++ b/dist/index.mjs
|
|
@@ -3056,14 +3056,16 @@ function useSetEditorValues({
|
|
);
|
|
}
|
|
function createTab({
|
|
+ id,
|
|
+ title,
|
|
query = null,
|
|
variables = null,
|
|
headers = null
|
|
-} = {}) {
|
|
+}) {
|
|
return {
|
|
- id: guid(),
|
|
+ id: id || guid(),
|
|
hash: hashFromTabContents({ query, variables, headers }),
|
|
- title: query && fuzzyExtractOperationName(query) || DEFAULT_TITLE,
|
|
+ title: title || query && fuzzyExtractOperationName(query) || DEFAULT_TITLE,
|
|
query,
|
|
variables,
|
|
headers,
|
|
@@ -3081,8 +3083,7 @@ function setPropertiesInActiveTab(state, partialTab) {
|
|
const newTab = { ...tab, ...partialTab };
|
|
return {
|
|
...newTab,
|
|
- hash: hashFromTabContents(newTab),
|
|
- title: newTab.operationName || (newTab.query ? fuzzyExtractOperationName(newTab.query) : void 0) || DEFAULT_TITLE
|
|
+ hash: hashFromTabContents(newTab)
|
|
};
|
|
})
|
|
};
|
|
@@ -3304,25 +3305,31 @@ function EditorContextProvider(props) {
|
|
responseEditor,
|
|
defaultHeaders
|
|
});
|
|
- const addTab = useCallback(() => {
|
|
- setTabState((current) => {
|
|
- const updatedValues = synchronizeActiveTabValues(current);
|
|
- const updated = {
|
|
- tabs: [...updatedValues.tabs, createTab({ headers: defaultHeaders })],
|
|
- activeTabIndex: updatedValues.tabs.length
|
|
- };
|
|
- storeTabs(updated);
|
|
- setEditorValues(updated.tabs[updated.activeTabIndex]);
|
|
- onTabChange == null ? void 0 : onTabChange(updated);
|
|
- return updated;
|
|
- });
|
|
- }, [
|
|
- defaultHeaders,
|
|
- onTabChange,
|
|
- setEditorValues,
|
|
- storeTabs,
|
|
- synchronizeActiveTabValues
|
|
- ]);
|
|
+ const addTab = useCallback(
|
|
+ (_tabState) => {
|
|
+ setTabState((current) => {
|
|
+ const updatedValues = synchronizeActiveTabValues(current);
|
|
+ const updated = {
|
|
+ tabs: [
|
|
+ ...updatedValues.tabs,
|
|
+ createTab({ ..._tabState, headers: defaultHeaders })
|
|
+ ],
|
|
+ activeTabIndex: updatedValues.tabs.length
|
|
+ };
|
|
+ storeTabs(updated);
|
|
+ setEditorValues(updated.tabs[updated.activeTabIndex]);
|
|
+ onTabChange == null ? void 0 : onTabChange(updated);
|
|
+ return updated;
|
|
+ });
|
|
+ },
|
|
+ [
|
|
+ defaultHeaders,
|
|
+ onTabChange,
|
|
+ setEditorValues,
|
|
+ storeTabs,
|
|
+ synchronizeActiveTabValues
|
|
+ ]
|
|
+ );
|
|
const changeTab = useCallback(
|
|
(index) => {
|
|
setTabState((current) => {
|
|
@@ -3418,6 +3425,7 @@ function EditorContextProvider(props) {
|
|
const value = useMemo(
|
|
() => ({
|
|
...tabState,
|
|
+ setTabState,
|
|
addTab,
|
|
changeTab,
|
|
moveTab,
|
|
diff --git a/dist/types/editor/context.d.ts b/dist/types/editor/context.d.ts
|
|
index 199db8a294f8132d46470498870adbdf9fdc83af..d8901fe0d50db17db36a502dcf69d5f69efb84a1 100644
|
|
--- a/dist/types/editor/context.d.ts
|
|
+++ b/dist/types/editor/context.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
import { DocumentNode, FragmentDefinitionNode, OperationDefinitionNode, ValidationRule } from 'graphql';
|
|
import { VariableToType } from 'graphql-language-service';
|
|
-import { ReactNode } from 'react';
|
|
+import { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
import { TabDefinition, TabsState, TabState } from './tabs';
|
|
import { CodeMirrorEditor } from './types';
|
|
export declare type CodeMirrorEditorWithOperationFacts = CodeMirrorEditor & {
|
|
@@ -10,10 +10,11 @@ export declare type CodeMirrorEditorWithOperationFacts = CodeMirrorEditor & {
|
|
variableToType: VariableToType | null;
|
|
};
|
|
export declare type EditorContextType = TabsState & {
|
|
+ setTabState: Dispatch<SetStateAction<TabsState>>;
|
|
/**
|
|
* Add a new tab.
|
|
*/
|
|
- addTab(): void;
|
|
+ addTab(tabState?: Pick<TabState, 'id' | 'query' | 'variables' | 'headers' | 'title'>): void;
|
|
/**
|
|
* Switch to a different tab.
|
|
* @param index The index of the tab that should be switched to.
|
|
@@ -38,7 +39,7 @@ export declare type EditorContextType = TabsState & {
|
|
* @param partialTab A partial tab state object that will override the
|
|
* current values. The properties `id`, `hash` and `title` cannot be changed.
|
|
*/
|
|
- updateActiveTabValues(partialTab: Partial<Omit<TabState, 'id' | 'hash' | 'title'>>): void;
|
|
+ updateActiveTabValues(partialTab: Partial<Omit<TabState, 'hash'>>): void;
|
|
/**
|
|
* The CodeMirror editor instance for the headers editor.
|
|
*/
|
|
diff --git a/dist/types/editor/tabs.d.ts b/dist/types/editor/tabs.d.ts
|
|
index 28704a9c1c6e22fa75986de8591759e13035c8c5..5204d2b25198f89da9bba70804656f02799c7df6 100644
|
|
--- a/dist/types/editor/tabs.d.ts
|
|
+++ b/dist/types/editor/tabs.d.ts
|
|
@@ -90,7 +90,7 @@ export declare function useSetEditorValues({ queryEditor, variableEditor, header
|
|
headers?: string | null | undefined;
|
|
response: string | null;
|
|
}) => void;
|
|
-export declare function createTab({ query, variables, headers, }?: Partial<TabDefinition>): TabState;
|
|
+export declare function createTab({ id, title, query, variables, headers, }: Partial<TabDefinition & Pick<TabState, 'id' | 'title'>>): TabState;
|
|
export declare function setPropertiesInActiveTab(state: TabsState, partialTab: Partial<Omit<TabState, 'id' | 'hash' | 'title'>>): TabsState;
|
|
export declare function fuzzyExtractOperationName(str: string): string | null;
|
|
export declare function clearHeadersFromTabs(storage: StorageAPI | null): void;
|