Skip to content

Commit 6dd4235

Browse files
authored
Fix swatch class location and other minor fixes (#990)
* add sass embedded to avoid ci problems in template * Update swatch class location
1 parent e18ac1d commit 6dd4235

File tree

6 files changed

+28
-20
lines changed

6 files changed

+28
-20
lines changed

packages/devextreme-cli/src/templates/nextjs/application/src/theme.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function toggleTheme(prevTheme<%=#isTypeScript%>: string<%=/isTypeScript%>) {
1818
const newTheme = getNextTheme(prevTheme);
1919

2020
if (typeof window !== 'undefined') {
21-
document.body.classList.replace(
21+
document.querySelector('.app')?.classList.replace(
2222
themeClassNamePrefix + prevTheme,
2323
themeClassNamePrefix + newTheme
2424
);
@@ -27,8 +27,7 @@ function toggleTheme(prevTheme<%=#isTypeScript%>: string<%=/isTypeScript%>) {
2727
const additionalClassNamePostfix = isCurrentThemeDark ? '-' + prevTheme : '';
2828
const additionalClassName = `${additionalClassNamePrefix}${additionalClassNamePostfix}`
2929

30-
document.body
31-
.querySelector(`.${additionalClassName}`)?.classList
30+
document.querySelector('.app')?.querySelector(`.${additionalClassName}`)?.classList
3231
.replace(additionalClassName, additionalClassNamePrefix + (isCurrentThemeDark ? '' : '-dark'));
3332

3433
currentTheme = newTheme;
@@ -45,8 +44,8 @@ export function useThemeContext() {
4544
}, []);
4645

4746
useLayoutEffect(() => {
48-
if (typeof window !== 'undefined' && !document.body.className.includes(themeClassNamePrefix)) {
49-
document.body.classList.add(themeClassNamePrefix + theme);
47+
if (typeof window !== 'undefined' && !document.querySelector('.app')?.className.includes(themeClassNamePrefix)) {
48+
document.querySelector('.app')?.classList.add(themeClassNamePrefix + theme);
5049
}
5150
}, [theme]);
5251

packages/devextreme-cli/src/templates/react/application/src/theme.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function toggleTheme(prevTheme<%=#isTypeScript%>: string<%=/isTypeScript%>) {
1616
const isCurrentThemeDark = prevTheme === 'dark';
1717
const newTheme = getNextTheme(prevTheme);
1818

19-
document.body.classList.replace(
19+
document.getElementById('root')?.classList.replace(
2020
themeClassNamePrefix + prevTheme,
2121
themeClassNamePrefix + newTheme
2222
);
@@ -25,8 +25,7 @@ function toggleTheme(prevTheme<%=#isTypeScript%>: string<%=/isTypeScript%>) {
2525
const additionalClassNamePostfix = isCurrentThemeDark ? '-' + prevTheme : '';
2626
const additionalClassName = `${additionalClassNamePrefix}${additionalClassNamePostfix}`
2727

28-
document.body
29-
.querySelector(`.${additionalClassName}`)?.classList
28+
document.getElementById('root')?.querySelector(`.${additionalClassName}`)?.classList
3029
.replace(additionalClassName, additionalClassNamePrefix + (isCurrentThemeDark ? '' : '-dark'));
3130

3231
currentTheme = newTheme;
@@ -41,8 +40,8 @@ export function useThemeContext() {
4140
return currentTheme === 'dark';
4241
}, []);
4342

44-
if (!document.body.className.includes(themeClassNamePrefix)) {
45-
document.body.classList.add(themeClassNamePrefix + theme);
43+
if (!document.getElementById('root')?.className.includes(themeClassNamePrefix)) {
44+
document.getElementById('root')?.classList.add(themeClassNamePrefix + theme);
4645
}
4746

4847
return useMemo(()=> ({ theme, switchTheme, isDark }), [theme, switchTheme, isDark]);

packages/devextreme-cli/src/templates/vue-v3/application/src/theme-service.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ class ThemeService {
77
isDark = ref(false);
88

99
constructor() {
10-
if (!document.body.className.includes(this.themeClassNamePrefix)) {
10+
if (!document.getElementById('app').className.includes(this.themeClassNamePrefix)) {
1111
this.currentTheme.value = this.themes[0];
1212

13-
document.body.classList.add(this.themeClassNamePrefix + this.currentTheme.value);
13+
document.getElementById('app').classList.add(this.themeClassNamePrefix + this.currentTheme.value);
1414
}
1515
}
1616

@@ -20,7 +20,7 @@ class ThemeService {
2020

2121
this.currentTheme.value = this.themes[prevTheme === this.themes[0] ? 1 : 0];
2222

23-
document.body.classList.replace(
23+
document.getElementById('app').classList.replace(
2424
this.themeClassNamePrefix + prevTheme,
2525
this.themeClassNamePrefix + this.currentTheme.value
2626
);
@@ -29,7 +29,7 @@ class ThemeService {
2929
const additionalClassNamePostfix = isCurrentThemeDark ? '-' + prevTheme : '';
3030
const additionalClassName = `${additionalClassNamePrefix}${additionalClassNamePostfix}`
3131

32-
document.body
32+
document.getElementById('app')
3333
.querySelector(`.${additionalClassName}`)?.classList
3434
.replace(additionalClassName, additionalClassNamePrefix + (isCurrentThemeDark ? '' : '-dark'));
3535

packages/devextreme-schematics/src/add-layout/files/src/app/shared/services/theme.service.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ export class ThemeService {
1818
currentTheme: Theme = getNextTheme();
1919

2020
constructor(@Inject(DOCUMENT) private document: Document) {
21-
if (!this.document.body.className.includes(themeClassNamePrefix)) {
22-
this.document.body.classList.add(themeClassNamePrefix + this.currentTheme);
21+
if (!this.document.querySelector('.app')?.className.includes(themeClassNamePrefix)) {
22+
this.document.querySelector('.app')?.classList.add(themeClassNamePrefix + this.currentTheme);
2323
}
2424
}
2525

@@ -30,7 +30,7 @@ export class ThemeService {
3030
const newTheme = getNextTheme(this.currentTheme);
3131
const isCurrentThemeDark = currentTheme === 'dark';
3232

33-
this.document.body.classList.replace(
33+
this.document.querySelector('.app')?.classList.replace(
3434
themeClassNamePrefix + currentTheme,
3535
themeClassNamePrefix + newTheme
3636
);
@@ -39,8 +39,7 @@ export class ThemeService {
3939
const additionalClassNamePostfix = isCurrentThemeDark ? '-' + currentTheme : '';
4040
const additionalClassName = `${additionalClassNamePrefix}${additionalClassNamePostfix}`
4141

42-
this.document.body
43-
.querySelector(`.${additionalClassName}`)?.classList
42+
this.document.querySelector('.app')?.querySelector(`.${additionalClassName}`)?.classList
4443
.replace(additionalClassName, additionalClassNamePrefix + (isCurrentThemeDark ? '' : '-dark'));
4544

4645
this.currentTheme = newTheme;

packages/devextreme-schematics/src/install/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function(options: any): Rule {
2222

2323
return chain([
2424
(host: Tree) => addDevExtremeDependency(host, { dxversion: options.dxversion }),
25+
(host: Tree) => addSassEmbeddedDependency(host),
2526
(host: Tree) => addDevExtremeCSS(host, { project: options.project }),
2627
(host: Tree) => reqisterJSZip(host),
2728
(_, context: SchematicContext) => {
@@ -55,6 +56,15 @@ function addDevExtremeDependency(host: Tree, options: any) {
5556
return host;
5657
}
5758

59+
function addSassEmbeddedDependency(host: Tree) {
60+
addPackageJsonDependency(host, {
61+
type: NodeDependencyType.Dev,
62+
name: 'sass-embedded',
63+
version: latestVersions['sass-embedded']
64+
});
65+
return host;
66+
}
67+
5868
async function addDevExtremeCSS(host: Tree, options: any) {
5969
const projectName = await getProjectName(host, options.project);
6070
modifyJSONFile(host, './angular.json', config => {

packages/devextreme-schematics/src/utility/latest-versions.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
export const latestVersions = {
33
'devextreme': '25.1.4',
44
'devextreme-angular': '25.1.4',
5-
'devextreme-cli': 'latest'
5+
'devextreme-cli': 'latest',
6+
'sass-embedded': '1.66.0'
67
};

0 commit comments

Comments
 (0)