Skip to content

Commit de0daa1

Browse files
committed
fix: fixed ClassAdder components to allow SSR
Fixes #29.
1 parent fd46898 commit de0daa1

32 files changed

+207
-342
lines changed

packages/card/ActionButtons.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function ActionButtons(...args) {
5-
internals.class = 'mdc-card__action-buttons';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
ActionButtons.prototype = ClassAdder;
12-
13-
export default ActionButtons;
4+
export default classAdderBuilder({
5+
class: 'mdc-card__action-buttons',
6+
component: Div,
7+
contexts: {}
8+
});

packages/card/ActionIcons.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function ActionIcons(...args) {
5-
internals.class = 'mdc-card__action-icons';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
ActionIcons.prototype = ClassAdder;
12-
13-
export default ActionIcons;
4+
export default classAdderBuilder({
5+
class: 'mdc-card__action-icons',
6+
component: Div,
7+
contexts: {}
8+
});

packages/card/Content.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function Content(...args) {
5-
internals.class = 'smui-card__content';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
Content.prototype = ClassAdder;
12-
13-
export default Content;
4+
export default classAdderBuilder({
5+
class: 'smui-card__content',
6+
component: Div,
7+
contexts: {}
8+
});

packages/card/MediaContent.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function MediaContent(...args) {
5-
internals.class = 'mdc-card__media-content';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
MediaContent.prototype = ClassAdder;
12-
13-
export default MediaContent;
4+
export default classAdderBuilder({
5+
class: 'mdc-card__media-content',
6+
component: Div,
7+
contexts: {}
8+
});

packages/common/classAdderBuilder.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import ClassAdder, {internals} from './ClassAdder.svelte';
2+
3+
export function classAdderBuilder(props) {
4+
function Component(...args) {
5+
Object.assign(internals, props);
6+
return new ClassAdder(...args);
7+
}
8+
9+
Component.prototype = ClassAdder;
10+
11+
// SSR support
12+
if (ClassAdder.$$render) {
13+
Component.$$render = (...args) => Object.assign(internals, props) && ClassAdder.$$render(...args);
14+
}
15+
if (ClassAdder.render) {
16+
Component.render = (...args) => Object.assign(internals, props) && ClassAdder.render(...args);
17+
}
18+
19+
return Component;
20+
}

packages/dialog/Actions.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Footer from '@smui/common/Footer.svelte';
33

4-
function Actions(...args) {
5-
internals.class = 'mdc-dialog__actions';
6-
internals.component = Footer;
7-
internals.contexts = {
4+
export default classAdderBuilder({
5+
class: 'mdc-dialog__actions',
6+
component: Footer,
7+
contexts: {
88
'SMUI:button:context': 'dialog:action'
9-
};
10-
return new ClassAdder(...args);
11-
}
12-
13-
Actions.prototype = ClassAdder;
14-
15-
export default Actions;
9+
}
10+
});

packages/dialog/Content.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function Content(...args) {
5-
internals.class = 'mdc-dialog__content';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
Content.prototype = ClassAdder;
12-
13-
export default Content;
4+
export default classAdderBuilder({
5+
class: 'mdc-dialog__content',
6+
component: Div,
7+
contexts: {}
8+
});

packages/dialog/Title.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import H2 from '@smui/common/H2.svelte';
33

4-
function Title(...args) {
5-
internals.class = 'mdc-dialog__title';
6-
internals.component = H2;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
Title.prototype = ClassAdder;
12-
13-
export default Title;
4+
export default classAdderBuilder({
5+
class: 'mdc-dialog__title',
6+
component: H2,
7+
contexts: {}
8+
});

packages/drawer/AppContent.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function AppContent(...args) {
5-
internals.class = 'mdc-drawer-app-content';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
AppContent.prototype = ClassAdder;
12-
13-
export default AppContent;
4+
export default classAdderBuilder({
5+
class: 'mdc-drawer-app-content',
6+
component: Div,
7+
contexts: {}
8+
});

packages/drawer/Content.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import ClassAdder, {internals} from '@smui/common/ClassAdder.svelte';
1+
import {classAdderBuilder} from '@smui/common/classAdderBuilder.js';
22
import Div from '@smui/common/Div.svelte';
33

4-
function Content(...args) {
5-
internals.class = 'mdc-drawer__content';
6-
internals.component = Div;
7-
internals.contexts = {};
8-
return new ClassAdder(...args);
9-
}
10-
11-
Content.prototype = ClassAdder;
12-
13-
export default Content;
4+
export default classAdderBuilder({
5+
class: 'mdc-drawer__content',
6+
component: Div,
7+
contexts: {}
8+
});

0 commit comments

Comments
 (0)