Skip to content

Commit

Permalink
refactor: create modal initialState module
Browse files Browse the repository at this point in the history
  • Loading branch information
sebnitu committed Aug 15, 2020
1 parent 607815e commit 47cf786
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 54 deletions.
8 changes: 3 additions & 5 deletions packages/core/dist/scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,9 @@
};
var focusTrigger = function focusTrigger() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;

if (obj.memory.trigger) {
obj.memory.trigger.focus();
obj.memory.trigger = null;
}
if (!obj || !obj.memory || !obj.memory.trigger) return;
obj.memory.trigger.focus();
obj.memory.trigger = null;
};
var FocusTrap = function () {
function FocusTrap() {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/dist/scripts.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions packages/core/src/js/focus.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@ export const focusTarget = (target, settings) => {
};

export const focusTrigger = (obj = null) => {
if (obj.memory.trigger) {
obj.memory.trigger.focus();
obj.memory.trigger = null;
}
if (!obj || !obj.memory || !obj.memory.trigger) return;
obj.memory.trigger.focus();
obj.memory.trigger = null;
};

export class FocusTrap {
Expand Down
8 changes: 3 additions & 5 deletions packages/drawer/dist/scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -761,11 +761,9 @@
};
var focusTrigger = function focusTrigger() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;

if (obj.memory.trigger) {
obj.memory.trigger.focus();
obj.memory.trigger = null;
}
if (!obj || !obj.memory || !obj.memory.trigger) return;
obj.memory.trigger.focus();
obj.memory.trigger = null;
};
var FocusTrap = function () {
function FocusTrap() {
Expand Down
2 changes: 1 addition & 1 deletion packages/drawer/dist/scripts.min.js

Large diffs are not rendered by default.

41 changes: 20 additions & 21 deletions packages/modal/dist/scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -761,11 +761,9 @@
};
var focusTrigger = function focusTrigger() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;

if (obj.memory.trigger) {
obj.memory.trigger.focus();
obj.memory.trigger = null;
}
if (!obj || !obj.memory || !obj.memory.trigger) return;
obj.memory.trigger.focus();
obj.memory.trigger = null;
};
var FocusTrap = function () {
function FocusTrap() {
Expand Down Expand Up @@ -1070,6 +1068,21 @@
}
}

function setInitialState(obj) {
var modals = document.querySelectorAll("[data-".concat(obj.settings.dataModal, "]"));
modals.forEach(function (el) {
if (el.classList.contains(obj.settings.stateOpened)) {
setInert(false, obj.settings.selectorInert);
setOverflowHidden(false, obj.settings.selectorOverflow);
focusTrigger(obj);
obj.focusTrap.destroy();
}

removeClass(el, obj.settings.stateOpened, obj.settings.stateOpening, obj.settings.stateClosing);
addClass(el, obj.settings.stateClosed);
});
}

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
Expand Down Expand Up @@ -1129,22 +1142,8 @@
}
}, {
key: "setInitialState",
value: function setInitialState() {
var _this = this;

var modals = document.querySelectorAll("[data-".concat(this.settings.dataModal, "]"));
modals.forEach(function (el) {
if (el.classList.contains(_this.settings.stateOpened)) {
setInert(false, _this.settings.selectorInert);
setOverflowHidden(false, _this.settings.selectorOverflow);
focusTrigger(_this);

_this.focusTrap.destroy();
}

removeClass(el, _this.settings.stateOpened, _this.settings.stateOpening, _this.settings.stateClosing);
addClass(el, _this.settings.stateClosed);
});
value: function setInitialState$1() {
setInitialState(this);
}
}, {
key: "moveModals",
Expand Down
2 changes: 1 addition & 1 deletion packages/modal/dist/scripts.min.js

Large diffs are not rendered by default.

19 changes: 3 additions & 16 deletions packages/modal/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { addClass, hasClass, removeClass } from '@vrembem/core';
import { hasClass } from '@vrembem/core';
import { setInert, setOverflowHidden, setTabindex } from '@vrembem/core';
import { FocusTrap, focusTarget, focusTrigger } from '@vrembem/core';
import { openTransition, closeTransition } from '@vrembem/core';
import { moveElement } from '@vrembem/core';

import { defaults } from './src/js/defaults';
import { handlerClick, handlerKeyup } from './src/js/handlers';
import { setInitialState } from './src/js/initialState';

export default class Modal {
constructor(options) {
Expand Down Expand Up @@ -59,21 +60,7 @@ export default class Modal {
}

setInitialState() {
const modals = document.querySelectorAll(`[data-${this.settings.dataModal}]`);
modals.forEach((el) => {
if (el.classList.contains(this.settings.stateOpened)) {
setInert(false, this.settings.selectorInert);
setOverflowHidden(false, this.settings.selectorOverflow);
focusTrigger(this);
this.focusTrap.destroy();
}
removeClass(el,
this.settings.stateOpened,
this.settings.stateOpening,
this.settings.stateClosing
);
addClass(el, this.settings.stateClosed);
});
setInitialState(this);
}

moveModals(ref = this.settings.moveModals.ref, type = this.settings.moveModals.type) {
Expand Down
21 changes: 21 additions & 0 deletions packages/modal/src/js/initialState.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { addClass, removeClass } from '@vrembem/core';
import { setInert, setOverflowHidden } from '@vrembem/core';
import { focusTrigger } from '@vrembem/core';

export function setInitialState(obj) {
const modals = document.querySelectorAll(`[data-${obj.settings.dataModal}]`);
modals.forEach((el) => {
if (el.classList.contains(obj.settings.stateOpened)) {
setInert(false, obj.settings.selectorInert);
setOverflowHidden(false, obj.settings.selectorOverflow);
focusTrigger(obj);
obj.focusTrap.destroy();
}
removeClass(el,
obj.settings.stateOpened,
obj.settings.stateOpening,
obj.settings.stateClosing
);
addClass(el, obj.settings.stateClosed);
});
}

0 comments on commit 47cf786

Please sign in to comment.