All files / blong-browser/src/design useDesignMode.ts

100% Statements 27/27
100% Branches 2/2
14.28% Functions 1/7
100% Lines 27/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 281x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * useDesignMode — consumes design mode context.
 * Returns {active: false, ...} when not in a DesignModeProvider.
 */
import {use} from 'react';
import {DesignModeContext, type IDesignModeContextValue} from './DesignModeContext.js';
 
const inertResult: IDesignModeContextValue = {
    active: false,
    selected: null,
    select: () => undefined,
    config: {cards: {}, layouts: {}, schema: {}},
    updateConfig: () => undefined,
    permission: 'portal.design',
    canUndo: false,
    canRedo: false,
    undo: () => undefined,
    redo: () => undefined,
    pushHistory: () => undefined,
    saving: false,
    saveConfig: async () => undefined,
};
 
export function useDesignMode(): IDesignModeContextValue {
    const ctx = use(DesignModeContext as React.Context<IDesignModeContextValue | null>);
    return ctx ?? inertResult;
}