aloha-vue 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import AModal from "../../../../src/AModal/AModal";
2
2
 
3
3
  import AConfirmAPI from "../../../../src/compositionAPI/AConfirmAPI";
4
+ import EventBus from "../../../../src/utils/EventBus";
4
5
 
5
6
  export default {
6
7
  name: "PageConfirm",
@@ -26,8 +27,22 @@ export default {
26
27
  });
27
28
  };
28
29
 
30
+ const openConfirmWithTimeout = () => {
31
+ openConfirm({
32
+ headerText: "Aloha",
33
+ bodyHtml: "<div>Aloha <strong>Hola</strong></div>",
34
+ save: save,
35
+ selectorClose: "#btn_confirm_timeout",
36
+ });
37
+
38
+ setTimeout(() => {
39
+ EventBus.$emit("closeModalConfirm");
40
+ }, 5000);
41
+ };
42
+
29
43
  return {
30
44
  openConfirmLocal,
45
+ openConfirmWithTimeout,
31
46
  };
32
47
  },
33
48
  };
@@ -5,3 +5,10 @@ div
5
5
  type="button"
6
6
  @click="openConfirmLocal"
7
7
  ) Open confirm
8
+
9
+ button.a_btn.a_btn_primary(
10
+ id="btn_confirm_timeout"
11
+ type="button"
12
+ @click="openConfirmWithTimeout"
13
+ ) Open confirm with timeout
14
+
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "Vue.js"
15
15
  ],
16
16
  "homepage": "https://github.com/ilia-brykin/aloha/#README.md",
17
- "version": "1.1.4",
17
+ "version": "1.1.5",
18
18
  "author": {
19
19
  "name": "Ilia Brykin",
20
20
  "email": "brykin.ilia@gmail.com"
@@ -1,5 +1,5 @@
1
1
  import {
2
- h,
2
+ h, onBeforeUnmount,
3
3
  Teleport,
4
4
  withDirectives,
5
5
  } from "vue";
@@ -9,6 +9,8 @@ import ATranslation from "../ATranslation/ATranslation";
9
9
 
10
10
  import ASafeHtml from "../directives/ASafeHtml";
11
11
 
12
+ import CloseFromOutsideAPI from "./compositionAPI/CloseFromOutsideAPI";
13
+
12
14
  import {
13
15
  modalPluginOptions,
14
16
  } from "../plugins/AModalPlugin";
@@ -191,10 +193,21 @@ export default {
191
193
  "update:modelValue",
192
194
  ],
193
195
  setup(props, { emit }) {
196
+ const {
197
+ destroyEventBusCloseFromOutside,
198
+ initEventBusCloseFromOutside,
199
+ } = CloseFromOutsideAPI(props);
200
+
194
201
  const updateModelLocal = model => {
195
202
  emit("update:modelValue", model);
196
203
  };
197
204
 
205
+ initEventBusCloseFromOutside();
206
+
207
+ onBeforeUnmount(() => {
208
+ destroyEventBusCloseFromOutside();
209
+ });
210
+
198
211
  return {
199
212
  updateModelLocal,
200
213
  };
@@ -0,0 +1,29 @@
1
+ import {
2
+ toRef,
3
+ } from "vue";
4
+
5
+ import EventBus from "../../utils/EventBus";
6
+
7
+ export default function CloseFromOutsideAPI(props) {
8
+ const close = toRef(props, "close");
9
+ const isConfirm = toRef(props, "isConfirm");
10
+
11
+ const closeModalFromOutside = () => {
12
+ if (!isConfirm.value) {
13
+ close.value();
14
+ }
15
+ };
16
+
17
+ const initEventBusCloseFromOutside = () => {
18
+ EventBus.$on("closeModal", closeModalFromOutside);
19
+ };
20
+
21
+ const destroyEventBusCloseFromOutside = () => {
22
+ EventBus.$off("closeModal", closeModalFromOutside);
23
+ };
24
+
25
+ return {
26
+ destroyEventBusCloseFromOutside,
27
+ initEventBusCloseFromOutside,
28
+ };
29
+ }
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  computed,
3
- h,
3
+ h, onBeforeUnmount,
4
4
  } from "vue";
5
5
 
6
6
  import AModal from "../AModal/AModal";
7
7
 
8
8
  import AConfirmAPI from "../compositionAPI/AConfirmAPI";
9
+ import CloseFromOutsideAPI from "./compositionAPI/CloseFromOutsideAPI";
9
10
 
10
11
  // @vue/component
11
12
  export default {
@@ -17,6 +18,13 @@ export default {
17
18
  isModalHidden,
18
19
  } = AConfirmAPI();
19
20
 
21
+ const {
22
+ destroyEventBusCloseFromOutside,
23
+ initEventBusCloseFromOutside,
24
+ } = CloseFromOutsideAPI({
25
+ isModalHidden,
26
+ });
27
+
20
28
  const modalProps = computed(() => {
21
29
  return {
22
30
  close: closeConfirm,
@@ -26,6 +34,12 @@ export default {
26
34
  };
27
35
  });
28
36
 
37
+ initEventBusCloseFromOutside();
38
+
39
+ onBeforeUnmount(() => {
40
+ destroyEventBusCloseFromOutside();
41
+ });
42
+
29
43
  return {
30
44
  modalProps,
31
45
  };
@@ -0,0 +1,26 @@
1
+ import {
2
+ ref,
3
+ } from "vue";
4
+
5
+ import EventBus from "../../utils/EventBus";
6
+
7
+ export default function CloseFromOutsideAPI({
8
+ isModalHidden = ref(false),
9
+ }) {
10
+ const closeModalFromOutside = () => {
11
+ isModalHidden.value = true;
12
+ };
13
+
14
+ const initEventBusCloseFromOutside = () => {
15
+ EventBus.$on("closeModalConfirm", closeModalFromOutside);
16
+ };
17
+
18
+ const destroyEventBusCloseFromOutside = () => {
19
+ EventBus.$off("closeModalConfirm", closeModalFromOutside);
20
+ };
21
+
22
+ return {
23
+ destroyEventBusCloseFromOutside,
24
+ initEventBusCloseFromOutside,
25
+ };
26
+ }