Skip to content

Commit 00e9136

Browse files
updates
1 parent 6b805df commit 00e9136

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

lib/builder.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,39 @@ const Builder = () => {
3737
const [language, setLanguage] = useState('javascript');
3838
const randomType = ["redirect", "compress", "docs"];
3939

40-
useEffect(() => {
41-
var h_div = document.getElementById('monaco');
40+
const [editorID, setEditorID] = useState(0);
41+
const createEditor = (h_div, value, language) => {
4242
var editor = monaco.editor.create(h_div, {
43-
value: [
44-
'module.exports = {',
45-
`\ttype: "${randomType[Math.floor(Math.random() * randomType.length)]}"`,
46-
'}'
47-
].join('\n'),
43+
value,
4844
language,
4945
fontFamily: "'Source Code Pro', Consolas, 'Courier New', monospace",
5046
fontSize: 15
5147
});
48+
editor.updateOptions({fontSize: 14});
49+
setEditorID(monaco.editor.getEditors().indexOf(editor) || 0);
50+
return editor;
51+
}
52+
useEffect(() => {
53+
var h_div = document.getElementById('monaco');
54+
var editor = createEditor(h_div, [
55+
'module.exports = {',
56+
`\ttype: "${randomType[Math.floor(Math.random() * randomType.length)]}"`,
57+
'}'
58+
].join('\n'), language);
5259
window.addEventListener('resize', () => {
5360
editor.layout();
5461
});
55-
editor.updateOptions({fontSize: 14});
56-
document.body.addEventListener('click', () => {
57-
setLanguage(document.body.style.getPropertyValue('--l'));
58-
editor.updateOptions({language});
59-
});
6062
}, []);
63+
useEffect(() => {
64+
monaco.editor.getEditors()[editorID].updateOptions({
65+
language
66+
});
67+
return () => {
68+
monaco.editor.getEditors()[editorID].updateOptions({
69+
language
70+
});
71+
}
72+
}, [language]);
6173

6274
return (
6375
<>
@@ -76,6 +88,7 @@ const Builder = () => {
7688
titles={[translate.raw('builder-langdropup-collapsed'), translate.raw('builder-langdropup-expanded'), translate.raw('builder-langdropup-switchToLang')]}
7789
items={[['JavaScript', '/img/js.svg', 'javascript'], ['HTML', '/img/html.svg', 'html']]}
7890
variable="l"
91+
setVar={setLanguage}
7992
addItemNameToTitles2={true}
8093
/>
8194
</div>

lib/ui/select.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const GoogleFonts_Icons_ArrowDropUp = (props) => (
3131
<path d="M328-400q-9 0-14.5-6t-5.5-14q0-2 6-14l145-145q5-5 10-7t11-2q6 0 11 2t10 7l145 145q3 3 4.5 6.5t1.5 7.5q0 8-5.5 14t-14.5 6H328Z" />
3232
</svg>
3333
);
34-
const Img = ({ item }) => (<img src={item[1]} title={item[0]} alt="" className='fi r2px ow' />);
34+
const Img = ({ item, className }) => (<img src={item[1]} title={item[0]} alt="" className={'fi r2px ow' + className ? ' '+className : ''} />);
3535

3636
let selectID = 0;
3737
const ArrowDropUp_Translate = ['none', '0px -1px'];
@@ -40,6 +40,7 @@ const Select = ({
4040
titles,
4141
items,
4242
variable,
43+
setVar,
4344
addItemNameToTitles2 = false
4445
}) => {
4546
const [id, setID] = useState(0);
@@ -68,7 +69,7 @@ const Select = ({
6869
translate: hover ? ArrowDropUp_Translate[1] : ArrowDropUp_Translate[0],
6970
webkitTranslate: hover ? ArrowDropUp_Translate[1] : ArrowDropUp_Translate[0]
7071
}} />
71-
<Img item={items[id]} />
72+
<Img item={items[id]} className='z1' />
7273
{items[id][0]}
7374
{switch_ ? <div className='du r5px ob'>{
7475
items.map((item, iid) => (
@@ -80,6 +81,7 @@ const Select = ({
8081
onClick={() => {
8182
setID(iid);
8283
setHover(false);
84+
if (typeof(setVar) === 'function') { try { setVar(item[2]); } catch (_e) {} }
8385
}}
8486
>
8587
<Img item={item} />

pages/style.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,7 @@ button {
194194
gap: 2px !important;
195195
background-color: black;
196196
}
197+
198+
.z1 { /* Z-index - 1 */
199+
z-index: 1;
200+
}

0 commit comments

Comments
 (0)