Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/graphiql-react/src/components/operation-editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ interface OperationEditorProps extends EditorProps {
export const OperationEditor: FC<OperationEditorProps> = ({
onClickReference,
onEdit,
editorOverrides,
...props
}) => {
const {
Expand Down Expand Up @@ -231,6 +232,7 @@ export const OperationEditor: FC<OperationEditorProps> = ({
const editor = createEditor(ref, {
model,
theme: monacoTheme,
...editorOverrides,
});
setEditor({ queryEditor: editor });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ interface RequestHeadersEditorProps extends EditorProps {

export const RequestHeadersEditor: FC<RequestHeadersEditorProps> = ({
onEdit,
editorOverrides,
...props
}) => {
const { setEditor, run, prettifyEditors, mergeQuery } = useGraphiQLActions();
Expand All @@ -44,7 +45,7 @@ export const RequestHeadersEditor: FC<RequestHeadersEditorProps> = ({
uri: `${uriInstanceId}${URI_NAME.requestHeaders}`,
value: initialHeaders,
});
const editor = createEditor(ref, { model });
const editor = createEditor(ref, { model, ...editorOverrides });
setEditor({ headerEditor: editor });
const disposables = [
editor.addAction({ ...KEY_BINDINGS.runQuery, run }),
Expand Down
2 changes: 2 additions & 0 deletions packages/graphiql-react/src/components/response-editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ interface ResponseEditorProps extends EditorProps {

export const ResponseEditor: FC<ResponseEditorProps> = ({
responseTooltip: ResponseTooltip,
editorOverrides,
...props
}) => {
const { setEditor, run } = useGraphiQLActions();
Expand Down Expand Up @@ -69,6 +70,7 @@ export const ResponseEditor: FC<ResponseEditorProps> = ({
lineNumbers: 'off',
wordWrap: 'on', // Toggle word wrap on resizing editors
contextmenu: false, // Disable the right-click context menu
...editorOverrides,
});
setEditor({ responseEditor: editor });

Expand Down
3 changes: 2 additions & 1 deletion packages/graphiql-react/src/components/variables-editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ interface VariablesEditorProps extends EditorProps {

export const VariablesEditor: FC<VariablesEditorProps> = ({
onEdit,
editorOverrides,
...props
}) => {
const { setEditor, run, prettifyEditors, mergeQuery } = useGraphiQLActions();
Expand All @@ -40,7 +41,7 @@ export const VariablesEditor: FC<VariablesEditorProps> = ({
uri: `${uriInstanceId}${URI_NAME.variables}`,
value: initialVariables,
});
const editor = createEditor(ref, { model });
const editor = createEditor(ref, { model, ...editorOverrides });
setEditor({ variableEditor: editor });
const disposables = [
editor.addAction({ ...KEY_BINDINGS.runQuery, run }),
Expand Down
11 changes: 10 additions & 1 deletion packages/graphiql-react/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,16 @@ import type {
} from './stores';
import type { RuleKind } from 'graphql-language-service';

export type EditorProps = ComponentPropsWithoutRef<'div'>;
export type EditorProps = ComponentPropsWithoutRef<'div'> & {
/**
* for customizing editor options - i.e. here's
* some options that may be useful to some users
* - suggest: { showWords: false }
* - hover: { above: false }
* - scrollbar: { alwaysConsumeMouseWheel: false }
*/
editorOverrides?: monaco.editor.IStandaloneEditorConstructionOptions;
};

export interface SchemaReference {
kind: RuleKind;
Expand Down
12 changes: 10 additions & 2 deletions packages/graphiql/src/GraphiQL.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ const GraphiQL_: FC<GraphiQLProps> = ({
forcedTheme,
confirmCloseTab,
className,

editorOverrides,
children,
...props
}) => {
Expand Down Expand Up @@ -111,6 +111,7 @@ const GraphiQL_: FC<GraphiQLProps> = ({
forcedTheme,
confirmCloseTab,
className,
editorOverrides,
};
const hasHistoryPlugin = plugins.includes(HISTORY_PLUGIN);
const HistoryToUse = hasHistoryPlugin ? HistoryStore : Fragment;
Expand Down Expand Up @@ -202,6 +203,7 @@ export const GraphiQLInterface: FC<GraphiQLInterfaceProps> = ({
onEditHeaders,
responseTooltip,
showPersistHeadersSettings,
editorOverrides,
}) => {
const { addTab, moveTab, closeTab, changeTab, setVisiblePlugin } =
useGraphiQLActions();
Expand Down Expand Up @@ -359,6 +361,7 @@ export const GraphiQLInterface: FC<GraphiQLInterfaceProps> = ({
<QueryEditor
onClickReference={onClickReference}
onEdit={onEditQuery}
editorOverrides={editorOverrides}
/>
) : (
<Spinner />
Expand Down Expand Up @@ -427,11 +430,13 @@ export const GraphiQLInterface: FC<GraphiQLInterfaceProps> = ({
<VariableEditor
className={activeSecondaryEditor === 'variables' ? '' : 'hidden'}
onEdit={onEditVariables}
editorOverrides={editorOverrides}
/>
{isHeadersEditorEnabled && (
<HeaderEditor
className={activeSecondaryEditor === 'headers' ? '' : 'hidden'}
onEdit={onEditHeaders}
editorOverrides={editorOverrides}
/>
)}
</section>
Expand Down Expand Up @@ -519,7 +524,10 @@ export const GraphiQLInterface: FC<GraphiQLInterfaceProps> = ({
/>
<div className="graphiql-response" ref={editorResize.secondRef}>
{isFetching && <Spinner />}
<ResponseEditor responseTooltip={responseTooltip} />
<ResponseEditor
responseTooltip={responseTooltip}
editorOverrides={editorOverrides}
/>
{footer}
</div>
</div>
Expand Down