Skip to content

Commit

Permalink
fix: update new class internals to report hasClass properly
Browse files Browse the repository at this point in the history
  • Loading branch information
hperrin committed Apr 3, 2021
1 parent 7eb48c7 commit 52a7b2c
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 33 deletions.
2 changes: 2 additions & 0 deletions packages/button/Button.svelte
Expand Up @@ -112,12 +112,14 @@
setContext('SMUI:icon:context', 'button');
function addClass(className) {
// Doesn't need hasClass.
if (!internalClasses[className]) {
internalClasses[className] = true;
}
}
function removeClass(className) {
// Doesn't need hasClass.
if (internalClasses[className]) {
delete internalClasses[className];
internalClasses = internalClasses;
Expand Down
17 changes: 11 additions & 6 deletions packages/drawer/Drawer.svelte
Expand Up @@ -5,9 +5,9 @@
class="
mdc-drawer
{className}
{Object.keys(internalClasses).join(
' '
)}
{Object.keys(internalClasses)
.filter((className) => internalClasses[className])
.join(' ')}
{variant === 'dismissible'
? 'mdc-drawer--dismissible'
: ''}
Expand Down Expand Up @@ -111,7 +111,7 @@
? new Foundation({
addClass,
removeClass,
hasClass: (className) => element.classList.contains(className),
hasClass,
elementHasClass: (element, className) =>
element.classList.contains(className),
saveFocus: () => (previousFocus = document.activeElement),
Expand Down Expand Up @@ -146,6 +146,12 @@
: undefined;
}
function hasClass(className) {
return className in internalClasses
? internalClasses[className]
: getElement().classList.contains(className);
}
function addClass(className) {
if (!internalClasses[className]) {
internalClasses[className] = true;
Expand All @@ -154,8 +160,7 @@
function removeClass(className) {
if (internalClasses[className]) {
delete internalClasses[className];
internalClasses = internalClasses;
internalClasses[className] = false;
}
}
Expand Down
6 changes: 0 additions & 6 deletions packages/icon-button/IconButton.svelte
Expand Up @@ -170,12 +170,6 @@
}
}
function removeAttr(name) {
if (name in internalAttrs) {
internalAttrs[name] = undefined;
}
}
function handleChange(evtData) {
console.log('event called: ', evtData);
pressed = evtData.isOn;
Expand Down
19 changes: 12 additions & 7 deletions packages/list/Item.svelte
Expand Up @@ -13,9 +13,9 @@
class="
mdc-list-item
{className}
{Object.keys(internalClasses).join(
' '
)}
{Object.keys(internalClasses)
.filter((className) => internalClasses[className])
.join(' ')}
{activated ? 'mdc-list-item--activated' : ''}
{selected
? 'mdc-list-item--selected'
Expand Down Expand Up @@ -118,6 +118,7 @@
set selected(value) {
selected = value;
},
hasClass,
addClass,
removeClass,
addAttr,
Expand Down Expand Up @@ -170,6 +171,12 @@
dispatch(element, 'SMUI:list:item:unmount', accessor);
});
function hasClass(className) {
return className in internalClasses
? internalClasses[className]
: getElement().classList.contains(className);
}
function addClass(className) {
if (!internalClasses[className]) {
internalClasses[className] = true;
Expand All @@ -178,8 +185,7 @@
function removeClass(className) {
if (internalClasses[className]) {
delete internalClasses[className];
internalClasses = internalClasses;
internalClasses[className] = false;
}
}
Expand All @@ -191,8 +197,7 @@
function removeAttr(name) {
if (name in internalAttrs) {
delete internalAttrs[name];
internalAttrs = internalAttrs;
internalAttrs[name] = undefined;
}
}
Expand Down
8 changes: 6 additions & 2 deletions packages/list/List.svelte
Expand Up @@ -203,8 +203,7 @@
getElement() !== document.activeElement &&
getElement().contains(document.activeElement),
isRootFocused: () => document.activeElement === getElement(),
listItemAtIndexHasClass: (index, className) =>
getOrderedList()[index].element.classList.contains(className),
listItemAtIndexHasClass,
notifyAction: (index) => {
selectedIndex = index;
dispatch(element, 'MDCList:action', { index });
Expand Down Expand Up @@ -296,6 +295,11 @@
accessor && accessor.element.focus();
}
function listItemAtIndexHasClass(index, className) {
const accessor = getOrderedList()[index];
return accessor && accessor.hasClass(className);
}
function addClassForElementIndex(index, className) {
const accessor = getOrderedList()[index];
accessor && accessor.addClass(className);
Expand Down
17 changes: 11 additions & 6 deletions packages/menu-surface/MenuSurface.svelte
Expand Up @@ -9,9 +9,9 @@
class="
mdc-menu-surface
{className}
{Object.keys(
internalClasses
).join(' ')}
{Object.keys(internalClasses)
.filter((className) => internalClasses[className])
.join(' ')}
{fixed ? 'mdc-menu-surface--fixed' : ''}
{isStatic
? 'mdc-menu-surface--open'
Expand Down Expand Up @@ -140,7 +140,7 @@
instance = new MDCMenuSurfaceFoundation({
addClass,
removeClass,
hasClass: (className) => element.classList.contains(className),
hasClass,
hasAnchor: () => !!anchorElement,
notifyClose: () => {
open = isStatic;
Expand Down Expand Up @@ -243,6 +243,12 @@
}
});
function hasClass(className) {
return className in internalClasses
? internalClasses[className]
: getElement().classList.contains(className);
}
function addClass(className) {
if (!internalClasses[className]) {
internalClasses[className] = true;
Expand All @@ -251,8 +257,7 @@
function removeClass(className) {
if (internalClasses[className]) {
delete internalClasses[className];
internalClasses = internalClasses;
internalClasses[className] = false;
}
}
Expand Down
17 changes: 11 additions & 6 deletions packages/top-app-bar/TopAppBar.svelte
Expand Up @@ -14,9 +14,9 @@
class="
mdc-top-app-bar
{className}
{Object.keys(
internalClasses
).join(' ')}
{Object.keys(internalClasses)
.filter((className) => internalClasses[className])
.join(' ')}
{variant === 'short'
? 'mdc-top-app-bar--short'
: ''}
Expand Down Expand Up @@ -154,7 +154,7 @@
}[variant] || MDCTopAppBarFoundation;
return new Foundation({
hasClass: (className) => element.classList.contains(className),
hasClass,
addClass,
removeClass,
setStyle: addStyle,
Expand All @@ -167,6 +167,12 @@
});
}
function hasClass(className) {
return className in internalClasses
? internalClasses[className]
: getElement().classList.contains(className);
}
function addClass(className) {
if (!internalClasses[className]) {
internalClasses[className] = true;
Expand All @@ -175,8 +181,7 @@
function removeClass(className) {
if (internalClasses[className]) {
delete internalClasses[className];
internalClasses = internalClasses;
internalClasses[className] = false;
}
}
Expand Down

0 comments on commit 52a7b2c

Please sign in to comment.