mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 14:37:17 +00:00
41 lines
942 B
TypeScript
41 lines
942 B
TypeScript
import { useCallback, useState } from 'react';
|
|
|
|
export type LaboratorySettings = {
|
|
fetch: {
|
|
credentials: 'include' | 'omit' | 'same-origin';
|
|
};
|
|
};
|
|
|
|
export interface LaboratorySettingsState {
|
|
settings: LaboratorySettings;
|
|
}
|
|
|
|
export interface LaboratorySettingsActions {
|
|
setSettings: (settings: LaboratorySettings) => void;
|
|
}
|
|
|
|
export const useSettings = (props: {
|
|
defaultSettings?: LaboratorySettings | null;
|
|
onSettingsChange?: (settings: LaboratorySettings | null) => void;
|
|
}): LaboratorySettingsState & LaboratorySettingsActions => {
|
|
const [settings, _setSettings] = useState<LaboratorySettings>(
|
|
props.defaultSettings ?? {
|
|
fetch: {
|
|
credentials: 'same-origin',
|
|
},
|
|
},
|
|
);
|
|
|
|
const setSettings = useCallback(
|
|
(settings: LaboratorySettings) => {
|
|
_setSettings(settings);
|
|
props.onSettingsChange?.(settings);
|
|
},
|
|
[props],
|
|
);
|
|
|
|
return {
|
|
settings,
|
|
setSettings,
|
|
};
|
|
};
|