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

0% Statements 0/27
0% Branches 0/1
0% Functions 0/1
0% Lines 0/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 28                                                       
/**
 * 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;
}