Skip to content

Commit f8edf40

Browse files
authored
Merge pull request #135 from umaranis/upgrade-lexical-to-0.33.0
Upgrade lexical to 0.33.0
2 parents 2a3234f + 006bfa7 commit f8edf40

File tree

18 files changed

+781
-185
lines changed

18 files changed

+781
-185
lines changed

demos/playground/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
},
9898
"size-limit": [
9999
{
100-
"limit": "210 kb",
100+
"limit": "211 kb",
101101
"path": "dist/assets/main-*.js"
102102
}
103103
]

demos/playground/src/__tests__/e2e/CodeBlock.spec.mjs

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,4 +1322,193 @@ test.describe('CodeBlock', () => {
13221322
focusPath: [0, 4, 0],
13231323
});
13241324
});
1325+
1326+
test('Can create code block with language `diff`', async ({
1327+
page,
1328+
isRichText,
1329+
}) => {
1330+
await focusEditor(page);
1331+
await page.keyboard.type(
1332+
'```diff >let a = 1;\n<let b = 2;\nlet c = 3;\n let d = 4;',
1333+
);
1334+
if (isRichText) {
1335+
await assertHTML(
1336+
page,
1337+
html`
1338+
<code
1339+
class="PlaygroundEditorTheme__code PlaygroundEditorTheme__ltr"
1340+
dir="ltr"
1341+
spellcheck="false"
1342+
data-gutter="1234"
1343+
data-highlight-language="diff"
1344+
data-language="diff">
1345+
<span
1346+
class="PlaygroundEditorTheme__tokenInserted"
1347+
data-lexical-text="true">
1348+
&gt;
1349+
</span>
1350+
<span data-lexical-text="true">let a = 1;</span>
1351+
<br />
1352+
<span
1353+
class="PlaygroundEditorTheme__tokenDeleted"
1354+
data-lexical-text="true">
1355+
&lt;
1356+
</span>
1357+
<span data-lexical-text="true">let b = 2;</span>
1358+
<br />
1359+
<span data-lexical-text="true">let c = 3;</span>
1360+
<br />
1361+
<span
1362+
class="PlaygroundEditorTheme__tokenUnchanged"
1363+
data-lexical-text="true"></span>
1364+
<span data-lexical-text="true">let d = 4;</span>
1365+
</code>
1366+
`,
1367+
);
1368+
} else {
1369+
await assertHTML(
1370+
page,
1371+
html`
1372+
<p
1373+
class="PlaygroundEditorTheme__paragraph PlaygroundEditorTheme__ltr"
1374+
dir="ltr">
1375+
<span data-lexical-text="true">\`\`\`diff &gt;let a = 1;</span>
1376+
<br />
1377+
<span data-lexical-text="true">&lt;let b = 2;</span>
1378+
<br />
1379+
<span data-lexical-text="true">let c = 3;</span>
1380+
<br />
1381+
<span data-lexical-text="true">let d = 4;</span>
1382+
</p>
1383+
`,
1384+
);
1385+
}
1386+
});
1387+
1388+
test('Can create code block with language `diff-javascript`', async ({
1389+
page,
1390+
isRichText,
1391+
}) => {
1392+
await focusEditor(page);
1393+
await page.keyboard.type(
1394+
'```diff-javascript +let a = 1;\n-let b = 2;\nlet c = 3;\n let d = 4;',
1395+
);
1396+
if (isRichText) {
1397+
await assertHTML(
1398+
page,
1399+
html`
1400+
<code
1401+
class="PlaygroundEditorTheme__code PlaygroundEditorTheme__ltr"
1402+
dir="ltr"
1403+
spellcheck="false"
1404+
data-gutter="1234"
1405+
data-highlight-language="diff-javascript"
1406+
data-language="diff-javascript">
1407+
<span
1408+
class="PlaygroundEditorTheme__tokenInserted"
1409+
data-lexical-text="true">
1410+
+
1411+
</span>
1412+
<span
1413+
class="PlaygroundEditorTheme__tokenAttr"
1414+
data-lexical-text="true">
1415+
let
1416+
</span>
1417+
<span data-lexical-text="true">a</span>
1418+
<span
1419+
class="PlaygroundEditorTheme__tokenOperator"
1420+
data-lexical-text="true">
1421+
=
1422+
</span>
1423+
<span data-lexical-text="true"></span>
1424+
<span
1425+
class="PlaygroundEditorTheme__tokenProperty"
1426+
data-lexical-text="true">
1427+
1
1428+
</span>
1429+
<span
1430+
class="PlaygroundEditorTheme__tokenPunctuation"
1431+
data-lexical-text="true">
1432+
;
1433+
</span>
1434+
<br />
1435+
<span
1436+
class="PlaygroundEditorTheme__tokenDeleted"
1437+
data-lexical-text="true">
1438+
-
1439+
</span>
1440+
<span
1441+
class="PlaygroundEditorTheme__tokenAttr"
1442+
data-lexical-text="true">
1443+
let
1444+
</span>
1445+
<span data-lexical-text="true">b</span>
1446+
<span
1447+
class="PlaygroundEditorTheme__tokenOperator"
1448+
data-lexical-text="true">
1449+
=
1450+
</span>
1451+
<span data-lexical-text="true"></span>
1452+
<span
1453+
class="PlaygroundEditorTheme__tokenProperty"
1454+
data-lexical-text="true">
1455+
2
1456+
</span>
1457+
<span
1458+
class="PlaygroundEditorTheme__tokenPunctuation"
1459+
data-lexical-text="true">
1460+
;
1461+
</span>
1462+
<br />
1463+
<span data-lexical-text="true">let c = 3;</span>
1464+
<br />
1465+
<span
1466+
class="PlaygroundEditorTheme__tokenUnchanged"
1467+
data-lexical-text="true"></span>
1468+
<span
1469+
class="PlaygroundEditorTheme__tokenAttr"
1470+
data-lexical-text="true">
1471+
let
1472+
</span>
1473+
<span data-lexical-text="true">d</span>
1474+
<span
1475+
class="PlaygroundEditorTheme__tokenOperator"
1476+
data-lexical-text="true">
1477+
=
1478+
</span>
1479+
<span data-lexical-text="true"></span>
1480+
<span
1481+
class="PlaygroundEditorTheme__tokenProperty"
1482+
data-lexical-text="true">
1483+
4
1484+
</span>
1485+
<span
1486+
class="PlaygroundEditorTheme__tokenPunctuation"
1487+
data-lexical-text="true">
1488+
;
1489+
</span>
1490+
</code>
1491+
`,
1492+
);
1493+
} else {
1494+
await assertHTML(
1495+
page,
1496+
html`
1497+
<p
1498+
class="PlaygroundEditorTheme__paragraph PlaygroundEditorTheme__ltr"
1499+
dir="ltr">
1500+
<span data-lexical-text="true">
1501+
\`\`\`diff-javascript +let a = 1;
1502+
</span>
1503+
<br />
1504+
<span data-lexical-text="true">-let b = 2;</span>
1505+
<br />
1506+
<span data-lexical-text="true">let c = 3;</span>
1507+
<br />
1508+
<span data-lexical-text="true">let d = 4;</span>
1509+
</p>
1510+
`,
1511+
);
1512+
}
1513+
});
13251514
});
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
*/
8+
import {
9+
assertHTML,
10+
click,
11+
focusEditor,
12+
html,
13+
initialize,
14+
test,
15+
} from '../utils/index.mjs';
16+
17+
test.fixme(
18+
'Layout - removes layout completely when both columns are empty and backspace is pressed at the first layout item',
19+
async ({page, isPlainText, isCollab}) => {
20+
test.skip(isPlainText);
21+
await initialize({isCollab, page});
22+
await focusEditor(page);
23+
24+
await page.keyboard.type('/');
25+
await click(page, '.typeahead-popover .icon.columns');
26+
await click(page, '.Modal__modal .Modal__content .Button__root');
27+
28+
// Focus on second column
29+
await click(
30+
page,
31+
'.PlaygroundEditorTheme__layoutContainer .PlaygroundEditorTheme__layoutItem:nth-child(2)',
32+
);
33+
await page.keyboard.press('Backspace');
34+
35+
await assertHTML(
36+
page,
37+
html`
38+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
39+
<div
40+
class="PlaygroundEditorTheme__layoutContainer"
41+
style="grid-template-columns: 1fr 1fr">
42+
<div
43+
class="PlaygroundEditorTheme__layoutItem"
44+
data-lexical-layout-item="true">
45+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
46+
</div>
47+
<div
48+
class="PlaygroundEditorTheme__layoutItem"
49+
data-lexical-layout-item="true">
50+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
51+
</div>
52+
</div>
53+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
54+
`,
55+
);
56+
57+
// Delete content from first column - entire layout should be removed
58+
await click(
59+
page,
60+
'.PlaygroundEditorTheme__layoutContainer .PlaygroundEditorTheme__layoutItem:nth-child(1)',
61+
);
62+
await page.keyboard.press('Backspace');
63+
await assertHTML(
64+
page,
65+
html`
66+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
67+
<p class="PlaygroundEditorTheme__paragraph"><br /></p>
68+
`,
69+
);
70+
},
71+
);

0 commit comments

Comments
 (0)