Skip to content

Commit 15021b4

Browse files
authored
Merge pull request #5 from PRGfx/neos9
Neos 9 compatibility
2 parents a52bc5c + f4e2d89 commit 15021b4

File tree

10 files changed

+596
-9885
lines changed

10 files changed

+596
-9885
lines changed

.editorconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
max_line_length = 120
10+
tab_width = 4
11+
trim_trailing_whitespace = true
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const esbuild = require('esbuild');
2+
const extensibilityMap = require("@neos-project/neos-ui-extensibility/extensibilityMap.json");
3+
const isWatch = process.argv.includes('--watch');
4+
5+
/** @type {import("esbuild").BuildOptions} */
6+
const options = {
7+
logLevel: "info",
8+
bundle: true,
9+
target: "es2020",
10+
entryPoints: {"Plugin": "src/index.js"},
11+
loader: {".js": "tsx"},
12+
outdir: "../../../Public/JavaScript/TextPartLanguage",
13+
alias: extensibilityMap
14+
}
15+
16+
if (isWatch) {
17+
esbuild.context(options).then((ctx) => ctx.watch())
18+
} else {
19+
esbuild.build(options)
20+
}
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
{
2-
"description": "",
3-
"license": "GNU GPLv3",
4-
"private": true,
5-
"scripts": {
6-
"build": "neos-react-scripts build",
7-
"watch": "neos-react-scripts watch"
8-
},
9-
"devDependencies": {
10-
"@neos-project/neos-ui-extensibility": "^8.2.0",
11-
"@neos-project/build-essentials": "^8.2.0"
12-
},
13-
"neos": {
14-
"buildTargetDirectory": "../../../Public/JavaScript/TextPartLanguage"
15-
},
16-
"dependencies": {
17-
"@ckeditor/ckeditor5-language": "27.1.0",
18-
"@ckeditor/ckeditor5-utils": "^27.1.0",
19-
"null-loader": "^4.0.1",
20-
"raw-loader": "^4.0.2"
21-
}
2+
"description": "",
3+
"license": "GNU GPLv3",
4+
"private": true,
5+
"scripts": {
6+
"build": "node build.js",
7+
"watch": "node build.js --watch"
8+
},
9+
"devDependencies": {
10+
"@neos-project/neos-ui-extensibility": "~8.3.0",
11+
"esbuild": "^0.25.5"
12+
},
13+
"neos": {
14+
"buildTargetDirectory": "../../../Public/JavaScript/TextPartLanguage"
15+
},
16+
"dependencies": {
17+
"@ckeditor/ckeditor5-language": "27.1.0",
18+
"@ckeditor/ckeditor5-utils": "^27.1.0",
19+
"null-loader": "^4.0.1",
20+
"raw-loader": "^4.0.2"
21+
}
2222
}

Resources/Private/JavaScript/TextPartLanguage/src/LanguageSelect.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
33
import { neos } from '@neos-project/neos-ui-decorators';
44
import { SelectBox } from '@neos-project/react-ui-components';
55
import { connect } from 'react-redux';
6-
import { $transform } from 'plow-js';
76
import { selectors } from '@neos-project/neos-ui-redux-store';
87
import * as CkEditorApi from '@neos-project/neos-ui-ckeditor5-bindings';
98
import { commandName } from './command';
@@ -15,8 +14,8 @@ export const sanitizeOptions = (options) =>
1514
@neos(globalRegistry => ({
1615
i18nRegistry: globalRegistry.get('i18n'),
1716
}))
18-
@connect($transform({
19-
formattingUnderCursor: selectors.UI.ContentCanvas.formattingUnderCursor,
17+
@connect(state => ({
18+
formattingUnderCursor: selectors.UI.ContentCanvas.formattingUnderCursor(state),
2019
}))
2120
export default class LanguageSelect extends PureComponent {
2221
static propTypes = {

Resources/Private/JavaScript/TextPartLanguage/src/editing.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,15 @@ export default class TextPartLanguageEditing extends Plugin {
5050

5151
conversion.for('downcast').attributeToElement({
5252
model: attributeName,
53-
view: (attributeValue, writer) => {
53+
// between Neos 8 and 9 the editor API changed and the writer is passed in an options object
54+
view: (attributeValue, maybeWriter) => {
5455
if (!attributeValue) {
5556
return;
5657
}
5758

5859
const { languageCode, textDirection } = parseLanguageAttribute(attributeValue);
5960

61+
const writer = 'writer' in maybeWriter ? maybeWriter.writer : maybeWriter;
6062
return writer.createAttributeElement('span', {
6163
lang: languageCode,
6264
dir: textDirection || this.languageDirectionLookup(languageCode),

Resources/Private/JavaScript/TextPartLanguage/src/manifest.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import manifest from '@neos-project/neos-ui-extensibility';
22
import TextPartLanguage from './editing';
33
import LanguageSelect from './LanguageSelect';
4-
import { $get } from 'plow-js';
54

65
manifest('Prgfx.Neos.TextPartLanguage', {}, (globalRegistry, { frontendConfiguration }) => {
76

@@ -24,7 +23,7 @@ manifest('Prgfx.Neos.TextPartLanguage', {}, (globalRegistry, { frontendConfigura
2423
richtextToolbar.set('textPartLanguage', {
2524
component: LanguageSelect,
2625
callbackPropName: 'onSelect',
27-
isVisible: $get('textLanguages'),
26+
isVisible: editorOptions => !!editorOptions?.textLanguages,
2827
defaultLanguages,
2928
});
3029
});

0 commit comments

Comments
 (0)