UNPKG

@mui/internal-docs-infra

Version:

MUI Infra - internal documentation creation tools.

32 lines 1.2 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; /** * Hook for managing source code editing functionality */ export function useSourceEditing(_ref) { var context = _ref.context, selectedVariantKey = _ref.selectedVariantKey, effectiveCode = _ref.effectiveCode, selectedVariant = _ref.selectedVariant; var contextSetCode = context == null ? void 0 : context.setCode; var setSource = React.useCallback(function (source) { if (contextSetCode) { contextSetCode(function (currentCode) { var newCode = {}; if (!currentCode) { newCode = _extends({}, effectiveCode); // TODO: ensure all source are strings } newCode[selectedVariantKey] = _extends(_extends({}, newCode[selectedVariantKey] || selectedVariant), {}, { source: source, extraFiles: {} }); return newCode; }); } else { console.warn('setCode is not available in the current context. Ensure you are using CodeControllerContext.'); } }, [contextSetCode, selectedVariantKey, effectiveCode, selectedVariant]); return { setSource: contextSetCode ? setSource : undefined }; }