@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
32 lines (31 loc) • 1.08 kB
JavaScript
"use client";
import React, { useCallback, useReducer, useRef } from 'react';
import SectionContainerContext from "./SectionContainerContext.js";
function SectionContainerProvider(props) {
const [, forceUpdate] = useReducer(() => ({}), {});
const {
validateInitially,
containerMode,
disableEditing = false,
children
} = props;
const containerModeRef = useRef(disableEditing === true ? 'view' : containerMode === 'auto' ? 'view' : containerMode);
const switchContainerMode = useCallback(mode => {
if (disableEditing) {
return;
}
containerModeRef.current = mode;
forceUpdate();
}, [disableEditing]);
return React.createElement(SectionContainerContext.Provider, {
value: {
validateInitially,
containerMode: disableEditing === true ? 'view' : containerModeRef.current,
initialContainerMode: disableEditing === true ? 'view' : containerMode,
switchContainerMode,
disableEditing
}
}, children);
}
export default SectionContainerProvider;
//# sourceMappingURL=SectionContainerProvider.js.map