Skip to content

Commit 16758f2

Browse files
committed
Preserve shared schema editor mode on text loads
1 parent 2b9fe10 commit 16758f2

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

packages/core-ui/js/gui_components/shared/test-data/schema/shared-schema-editor-controller.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,8 @@ function createSharedSchemaEditorController({
522522
}
523523
};
524524

525-
const loadSchemaText = (schemaText, { showErrors = true, preferRowMode = true } = {}) => {
525+
const loadSchemaText = (schemaText, { showErrors = true, preferRowMode } = {}) => {
526+
const previousTextMode = session.getTextMode();
526527
const textArea = getTextElement();
527528
if (textArea) {
528529
textArea.value = String(schemaText ?? '');
@@ -535,11 +536,14 @@ function createSharedSchemaEditorController({
535536
return { ...parsed, applied: false };
536537
}
537538

538-
if (preferRowMode) {
539+
const shouldUseRowMode = preferRowMode === undefined ? !previousTextMode : Boolean(preferRowMode);
540+
541+
if (shouldUseRowMode) {
539542
session.setTextMode(false);
540543
updateModeView();
541544
applySemanticValidationForAllRows();
542545
} else {
546+
session.setTextMode(true);
543547
updateModeView();
544548
}
545549

packages/core-ui/src/tests/shared/shared-schema-definition-view.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,20 @@ IF [Priority] = "high" THEN [Status] = "open" ENDIF`;
539539
expect(within(document.body).getByDisplayValue('Loaded Status')).toBeTruthy();
540540
});
541541

542+
test('loadSchemaText preserves text mode by default for existing callers', () => {
543+
const component = createComponent();
544+
545+
fireEvent.click(document.querySelector('[data-role="schema-mode-toggle"]'));
546+
547+
expect(document.querySelector('[data-role="schema-text-region"]').style.display).toBe('block');
548+
549+
component.loadSchemaText('Loaded Name\nliteral(Ada)', { showErrors: true });
550+
551+
expect(document.querySelector('[data-role="schema-text-region"]').style.display).toBe('block');
552+
expect(document.querySelector('[data-role="schema-rows-region"]').style.display).toBe('none');
553+
expect(document.querySelector('[data-role="schema-textbox"]').value).toBe('Loaded Name\nliteral(Ada)');
554+
});
555+
542556
test('load schema file action surfaces schema parse errors and keeps the loaded text visible', async () => {
543557
createComponent({
544558
services: {

0 commit comments

Comments
 (0)