Skip to content

Commit e0e5169

Browse files
committed
ARTEMIS-6000 - Remove monaco editor dependency
1 parent d7428db commit e0e5169

4 files changed

Lines changed: 17 additions & 56 deletions

File tree

artemis-console-extension/artemis-extension/app/package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
},
1313
"dependencies": {
1414
"@hawtio/react": "^1.12.3",
15-
"@monaco-editor/react": "^4.6.0",
1615
"@patternfly/react-charts": "^7.4.9",
1716
"@patternfly/react-code-editor": "^5.4.18",
1817
"@patternfly/react-core": "^5.4.14",
@@ -23,7 +22,6 @@
2322
"@patternfly/react-topology": "^5.4.1",
2423
"artemis-console-plugin": "workspace:*",
2524
"d3": "^7.9.0",
26-
"monaco-editor": "^0.52.2",
2725
"react": "^18.3.1",
2826
"react-dom": "^18.3.1",
2927
"react-router-dom": "^6.30.3"
@@ -38,7 +36,6 @@
3836
"css-minimizer-webpack-plugin": "^7.0.2",
3937
"html-webpack-plugin": "^5.6.6",
4038
"mini-css-extract-plugin": "^2.9.4",
41-
"monaco-editor-webpack-plugin": "^7.1.1",
4239
"os-browserify": "^0.3.0",
4340
"path-browserify": "^1.0.1",
4441
"replace": "^1.2.2",

artemis-console-extension/artemis-extension/app/webpack.config.cjs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ const TerserPlugin = require("terser-webpack-plugin")
2525
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin")
2626
const { WebpackManifestPlugin } = require("webpack-manifest-plugin")
2727
const CopyWebpackPlugin = require('copy-webpack-plugin')
28-
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
2928
const bodyParser = require('body-parser')
3029

3130
const outputPath = path.resolve(__dirname, 'build')
@@ -128,23 +127,12 @@ module.exports = (webpackEnv, args) => {
128127
singleton: true,
129128
requiredVersion: dependencies['@hawtio/react'],
130129
},
131-
'monaco-editor': {
132-
singleton: true,
133-
requiredVersion: dependencies['monaco-editor'],
134-
},
135130
'@patternfly/react-core': {
136131
singleton: true,
137132
requiredVersion: dependencies['@patternfly/react-core'],
138133
},
139134
}
140135
}),
141-
new MonacoWebpackPlugin({
142-
// 'html' is required as workaround for 'xml'
143-
// https://github.com/microsoft/monaco-editor/issues/1509
144-
languages: ['xml', 'json', 'html'],
145-
publicPath: '',
146-
globalAPI: true
147-
}),
148136
new InvestigationPlugin({})
149137
],
150138
entry: "./src/index.ts",
@@ -284,18 +272,12 @@ module.exports = (webpackEnv, args) => {
284272
return `${cacheGroupKey}-${packageName}`;
285273
}
286274

287-
// Default to the cache group key (e.g., react, patternfly, monaco)
275+
// Default to the cache group key (e.g., react, patternfly)
288276
return cacheGroupKey;
289277
},
290278
priority: 30,
291279
enforce: true,
292280
},
293-
monaco: {
294-
test: /[\\/]node_modules[\\/](monaco-editor)[\\/]/,
295-
name: 'monaco',
296-
priority: 25,
297-
enforce: true,
298-
},
299281
hawtio: {
300282
test: /[\\/]node_modules[\\/]@hawtio[\\/]/,
301283
name: 'hawtio',

artemis-console-extension/artemis-extension/packages/artemis-console-plugin/package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
},
2727
"devDependencies": {
2828
"@hawtio/react": "^1.12.3",
29-
"@monaco-editor/react": "^4.6.0",
3029
"@patternfly/react-charts": "^7.4.9",
3130
"@patternfly/react-code-editor": "^5.4.18",
3231
"@patternfly/react-core": "^5.4.14",
@@ -46,7 +45,6 @@
4645
"jest": "^30.2.0",
4746
"jest-environment-jsdom": "^30.2.0",
4847
"jest-fetch-mock": "^3.0.3",
49-
"monaco-editor": "^0.52.2",
5048
"react": "^18.3.1",
5149
"react-dom": "^18.3.1",
5250
"react-router-dom": "^6.30.3",
@@ -59,7 +57,6 @@
5957
},
6058
"peerDependencies": {
6159
"@hawtio/react": "^1.12",
62-
"@monaco-editor/react": "^4",
6360
"@patternfly/react-charts": "^7",
6461
"@patternfly/react-code-editor": "^5",
6562
"@patternfly/react-core": "^5",
@@ -68,7 +65,6 @@
6865
"@patternfly/react-table": "^5",
6966
"@patternfly/react-tokens": "^5",
7067
"@patternfly/react-topology": "^5",
71-
"monaco-editor": "^0.52",
7268
"react": "^17 || ^18",
7369
"react-dom": "^17 || ^18",
7470
"react-router-dom": "^6.30",

artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/messages/SendMessage.tsx

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,17 @@ import {
3535
Checkbox,
3636
Tooltip,
3737
Popover,
38-
TextContent
38+
TextContent,
39+
TextArea
3940
} from '@patternfly/react-core'
4041
import { OutlinedQuestionCircleIcon } from '@patternfly/react-icons/dist/esm/icons/outlined-question-circle-icon'
4142
import { InfoCircleIcon } from '@patternfly/react-icons/dist/esm/icons/info-circle-icon'
4243
import { TrashIcon } from '@patternfly/react-icons/dist/esm/icons/trash-icon'
43-
import { CodeEditor, Language } from '@patternfly/react-code-editor'
44+
import { Language } from '@patternfly/react-code-editor'
4445
import { eventService, jolokiaService } from '@hawtio/react'
4546
import { artemisService } from '../artemis-service'
4647
import { Message } from './MessageView'
4748

48-
import * as monacoEditor from 'monaco-editor'
49-
import { loader } from '@monaco-editor/react'
50-
51-
loader.config({ monaco: monacoEditor })
52-
5349
type SendBodyMessageProps = {
5450
onBodyChange: (body: string) => void
5551
body?: string
@@ -67,24 +63,16 @@ const MessageBody: React.FunctionComponent<SendBodyMessageProps> = props => {
6763
const [messageBody, setMessageBody] = useState<string>(props.body?props.body:'')
6864
const [selectedFormat, setSelectedFormat] = useState<Language>(Language.xml)
6965
const [isDropdownOpen, setDropdownOpen] = useState(false)
70-
const editorRef = useRef<monacoEditor.editor.IStandaloneCodeEditor | null>(null)
71-
72-
const editorDidMount = (editor: monacoEditor.editor.IStandaloneCodeEditor) => {
73-
editorRef.current = editor
74-
}
7566

7667
const handleAutoFormat = () => {
77-
if (editorRef.current) {
78-
const model = editorRef.current.getModel()
79-
if (model) {
80-
if (selectedFormat === Language.xml) {
81-
//monaco doesn't have built in xml formatter
82-
updateMessageBody(xmlFormat(messageBody))
83-
} else {
84-
const range = model.getFullModelRange()
85-
editorRef.current.trigger('', 'editor.action.formatDocument', { range })
86-
}
87-
}
68+
try {
69+
if (selectedFormat === Language.xml) {
70+
updateMessageBody(xmlFormat(messageBody))
71+
} else if (selectedFormat === Language.json) {
72+
updateMessageBody(JSON.stringify(JSON.parse(messageBody), null, 2))
73+
}
74+
} catch {
75+
// ignore formatting errors
8876
}
8977
}
9078

@@ -104,13 +92,11 @@ const MessageBody: React.FunctionComponent<SendBodyMessageProps> = props => {
10492
return (
10593
<>
10694
<FormGroup label='Message'>
107-
<CodeEditor
108-
code={messageBody}
109-
onEditorDidMount={editorDidMount}
110-
language={selectedFormat}
111-
height={'300px'}
112-
onChange={updateMessageBody}
113-
/>
95+
<TextArea
96+
value={messageBody}
97+
onChange={(_event, value) => updateMessageBody(value)}
98+
rows={12}
99+
/>
114100
</FormGroup>
115101
<FormGroup>
116102
<Flex>

0 commit comments

Comments
 (0)