1
- import { useContext , memo } from 'react'
1
+ import { useContext , memo , useEffect , useState } from 'react'
2
2
3
3
import Editor from '@monaco-editor/react'
4
4
import Storage from '../utils/Storage'
@@ -15,6 +15,26 @@ const CustomEditor = ({ className, language }: CustomEditorProps) => {
15
15
const { handleEditorDidMount, handleValueChange, isEditorReady } =
16
16
useContext ( EditorContentContext )
17
17
18
+
19
+ /**
20
+ * Responsive
21
+ * remove line numbers when window
22
+ * is bellow 640 (tailwind's sm value)
23
+ */
24
+ const [ showLineNumber , setShowLineNumbers ] = useState ( true )
25
+
26
+ useEffect ( ( ) => {
27
+ const handleResize = ( ) =>
28
+ window . innerWidth <= 640 ? setShowLineNumbers ( false ) : setShowLineNumbers ( true )
29
+
30
+ window . addEventListener ( 'resize' , handleResize )
31
+ handleResize ( )
32
+
33
+ return ( ) => {
34
+ window . removeEventListener ( 'resize' , handleResize )
35
+ }
36
+ } )
37
+
18
38
return (
19
39
< div className = { className } >
20
40
< Editor
@@ -33,6 +53,7 @@ const CustomEditor = ({ className, language }: CustomEditorProps) => {
33
53
minimap : {
34
54
enabled : false ,
35
55
} ,
56
+ lineNumbers : showLineNumber ? 'on' : 'off' ,
36
57
rulers : [ 80 , 120 ] ,
37
58
renderLineHighlight : 'gutter' ,
38
59
fontSize : 16 ,
0 commit comments