fix: nested richtext bug and test (#2966)
* fix: nested richtext bug and test * chore: fix accidentally deleted character
This commit is contained in:
committed by
GitHub
parent
a8e47088bb
commit
801f60939b
@@ -247,7 +247,7 @@ const RichText: React.FC<Props> = (props) => {
|
|||||||
const parsedJSON = JSON.parse(valueToRender);
|
const parsedJSON = JSON.parse(valueToRender);
|
||||||
valueToRender = parsedJSON;
|
valueToRender = parsedJSON;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// do nothing
|
valueToRender = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -188,6 +188,30 @@ const RichTextFields: CollectionConfig = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'blocks',
|
||||||
|
type: 'blocks',
|
||||||
|
blocks: [
|
||||||
|
{
|
||||||
|
slug: 'textBlock',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: 'text',
|
||||||
|
type: 'text',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'richTextBlock',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: 'text',
|
||||||
|
type: 'richText',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -440,12 +464,32 @@ export const richTextBulletsDoc = {
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const richTextBlocks = [
|
||||||
|
{
|
||||||
|
blockType: 'textBlock',
|
||||||
|
text: 'Regular text',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
blockType: 'richTextBlock',
|
||||||
|
text: [
|
||||||
|
{
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
text: 'Rich text',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
type: 'h1',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
export const richTextDoc = {
|
export const richTextDoc = {
|
||||||
title: 'Rich Text',
|
title: 'Rich Text',
|
||||||
selectHasMany: ['one', 'five'],
|
selectHasMany: ['one', 'five'],
|
||||||
richText: generateRichText(),
|
richText: generateRichText(),
|
||||||
richTextReadOnly: generateRichText(),
|
richTextReadOnly: generateRichText(),
|
||||||
richTextCustomFields: generateRichText(),
|
richTextCustomFields: generateRichText(),
|
||||||
|
blocks: richTextBlocks,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default RichTextFields;
|
export default RichTextFields;
|
||||||
|
|||||||
@@ -736,6 +736,25 @@ describe('fields', () => {
|
|||||||
const textField = await editLinkModal.locator('#field-text');
|
const textField = await editLinkModal.locator('#field-text');
|
||||||
await expect(textField).toHaveValue('Hello, I\'m a rich text field.');
|
await expect(textField).toHaveValue('Hello, I\'m a rich text field.');
|
||||||
});
|
});
|
||||||
|
test('should not take value from previous block', async () => {
|
||||||
|
await navigateToRichTextFields();
|
||||||
|
|
||||||
|
// check first block value
|
||||||
|
const textField = await page.locator('#field-blocks__0__text');
|
||||||
|
await expect(textField).toHaveValue('Regular text');
|
||||||
|
|
||||||
|
// remove the first block
|
||||||
|
const editBlock = await page.locator('#blocks-row-0 .popup-button');
|
||||||
|
await editBlock.click();
|
||||||
|
const removeButton = await page.locator('#blocks-row-0').getByRole('button', { name: 'Remove' });
|
||||||
|
await expect(removeButton).toBeVisible();
|
||||||
|
await removeButton.click();
|
||||||
|
|
||||||
|
// check new first block value
|
||||||
|
const richTextField = await page.locator('#field-blocks__0__text');
|
||||||
|
const richTextValue = await richTextField.innerText();
|
||||||
|
await expect(richTextValue).toContain('Rich text');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user