All files / roosterjs-content-model-core/lib/coreApi/restoreUndoSnapshot restoreSnapshotLogicalRoot.ts

100% Statements 7/7
83.33% Branches 5/6
100% Functions 1/1
100% Lines 7/7

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  1x         1x 6x 2x   2x 2x     4x      
import type { EditorCore, Snapshot } from 'roosterjs-content-model-types';
import { getPositionFromPath } from './getPositionFromPath';
 
/**
 * @internal
 */
export function restoreSnapshotLogicalRoot(core: EditorCore, snapshot: Snapshot) {
    if (snapshot.logicalRootPath && snapshot.logicalRootPath.length > 0) {
        const restoredLogicalRoot = getPositionFromPath(core.physicalRoot, snapshot.logicalRootPath)
            .node as HTMLDivElement;
        Eif (restoredLogicalRoot !== core.logicalRoot) {
            core.api.setLogicalRoot(core, restoredLogicalRoot);
        }
    } else {
        core.api.setLogicalRoot(core, null);
    }
}