Skip to content

Commit ecf16e7

Browse files
committed
feat: updated Button for MDC v10
1 parent ae3f23d commit ecf16e7

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

packages/button/Button.svelte

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<svelte:component
22
this={component}
3-
use={[[Ripple, {ripple, unbounded: false, disabled: !!$$props.disabled, classForward: classes => rippleClasses = classes}], forwardEvents, ...use]}
3+
use={[[Ripple, {ripple, unbounded: false, disabled: !!$$props.disabled, addClass, removeClass}], forwardEvents, ...use]}
44
class="
55
mdc-button
66
{className}
7-
{rippleClasses.join(' ')}
7+
{internalClasses.join(' ')}
88
{variant === 'raised' ? 'mdc-button--raised' : ''}
99
{variant === 'unelevated' ? 'mdc-button--unelevated' : ''}
1010
{variant === 'outlined' ? 'mdc-button--outlined' : ''}
@@ -48,8 +48,8 @@
4848
4949
export let component = href == null ? Button : A;
5050
51+
let internalClasses = [];
5152
let context = getContext('SMUI:button:context');
52-
let rippleClasses = [];
5353
5454
$: dialogExcludes = (context === 'dialog:action') ? ['action', 'default'] : [];
5555
@@ -58,4 +58,18 @@
5858
5959
setContext('SMUI:label:context', 'button');
6060
setContext('SMUI:icon:context', 'button');
61+
62+
function addClass(className) {
63+
const idx = internalClasses.indexOf(className);
64+
if (idx === -1) {
65+
internalClasses.push(className);
66+
}
67+
}
68+
69+
function removeClass(className) {
70+
const idx = internalClasses.indexOf(className);
71+
if (idx !== -1) {
72+
internalClasses.splice(idx, 1);
73+
}
74+
}
6175
</script>

packages/button/GroupItem.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ export default function GroupItem(node) {
44
return {
55
destroy() {
66
node.classList.remove('smui-button__group-item');
7-
}
8-
}
9-
}
7+
},
8+
};
9+
}

packages/button/bare.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ import Icon from '@smui/common/Icon.svelte';
77

88
export default Button;
99

10-
export {Group, GroupItem, Label, Icon};
10+
export { Group, GroupItem, Label, Icon };

packages/button/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import './_index.scss';
22
export * from './bare.js';
3-
export {default} from './bare.js';
3+
export { default } from './bare.js';

0 commit comments

Comments
 (0)