Skip to content

Commit 629e343

Browse files
committed
refactor: extract applyStyleSheetRules to css.ts
1 parent 7a09921 commit 629e343

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

src/common/css.ts

+21
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,24 @@
66
export function em2Px(em: number, fontSize: number): number {
77
return em * fontSize;
88
}
9+
10+
/**
11+
* Apply css content to workbench
12+
* @param styleSheetContent CSS sheet content
13+
* @param rulesClassName Style tag class Name
14+
*/
15+
export function applyStyleSheetRules(
16+
styleSheetContent: string,
17+
rulesClassName: string
18+
) {
19+
const themeStyles = document.head.getElementsByClassName(rulesClassName);
20+
if (themeStyles.length === 0) {
21+
const elStyle = document.createElement('style');
22+
elStyle.type = 'text/css';
23+
elStyle.className = rulesClassName;
24+
elStyle.innerHTML = styleSheetContent;
25+
document.head.appendChild(elStyle);
26+
} else {
27+
(<HTMLStyleElement>themeStyles[0]).innerHTML = styleSheetContent;
28+
}
29+
}

src/services/themeService.ts

+2-19
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,7 @@ import { IExtension } from 'mo/model/extension';
77
import { ITheme, ThemeColor, TokenColor } from 'mo/model/theme';
88
import { container, inject, singleton } from 'tsyringe';
99
import * as monaco from 'monaco-editor';
10-
11-
/**
12-
* Apply css content to workbench
13-
* @param styleSheetContent CSS sheet content
14-
* @param rulesClassName Style tag class Name
15-
*/
16-
function _applyRules(styleSheetContent: string, rulesClassName: string) {
17-
const themeStyles = document.head.getElementsByClassName(rulesClassName);
18-
if (themeStyles.length === 0) {
19-
const elStyle = document.createElement('style');
20-
elStyle.type = 'text/css';
21-
elStyle.className = rulesClassName;
22-
elStyle.innerHTML = styleSheetContent;
23-
document.head.appendChild(elStyle);
24-
} else {
25-
(<HTMLStyleElement>themeStyles[0]).innerHTML = styleSheetContent;
26-
}
27-
}
10+
import { applyStyleSheetRules } from 'mo/common/css';
2811

2912
@singleton()
3013
export class ThemeService implements ITheme {
@@ -60,7 +43,7 @@ export class ThemeService implements ITheme {
6043
public getThemeById(themeId: string, extension: IExtension) {}
6144

6245
public applyTheme() {
63-
_applyRules('', '');
46+
applyStyleSheetRules('', '');
6447
}
6548
}
6649

0 commit comments

Comments
 (0)