From 3d30b40da074591ccb0ccda905b5bc87efdc5be1 Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Mon, 12 Sep 2022 17:49:25 +0300 Subject: [PATCH] Add toasts service --- app/components/icons/close.js | 1 + app/components/icons/loading.js | 2 +- app/components/toast.hbs | 25 +++++++++++++++++++++ app/components/toast.js | 6 +++++ app/controllers/admin/indexes/item/edit.js | 3 +++ app/services/toasts.js | 18 +++++++++++++++ app/templates/admin/indexes/item/edit.hbs | 6 ++++- tests/integration/components/toast-test.js | 26 ++++++++++++++++++++++ tests/unit/services/toasts-test.js | 12 ++++++++++ 9 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 app/components/icons/close.js create mode 100644 app/components/toast.hbs create mode 100644 app/components/toast.js create mode 100644 app/services/toasts.js create mode 100644 tests/integration/components/toast-test.js create mode 100644 tests/unit/services/toasts-test.js diff --git a/app/components/icons/close.js b/app/components/icons/close.js new file mode 100644 index 0000000..a956cb2 --- /dev/null +++ b/app/components/icons/close.js @@ -0,0 +1 @@ +export { Close as default } from 'ember-mdi'; diff --git a/app/components/icons/loading.js b/app/components/icons/loading.js index 2ff4aa1..5642ac5 100644 --- a/app/components/icons/loading.js +++ b/app/components/icons/loading.js @@ -1 +1 @@ -export { Heart as default } from 'ember-mdi'; +export { Loading as default } from 'ember-mdi'; diff --git a/app/components/toast.hbs b/app/components/toast.hbs new file mode 100644 index 0000000..5888e94 --- /dev/null +++ b/app/components/toast.hbs @@ -0,0 +1,25 @@ +{{#in-element this.toasts.destinationElement}} + +{{/in-element}} diff --git a/app/components/toast.js b/app/components/toast.js new file mode 100644 index 0000000..08ffc1d --- /dev/null +++ b/app/components/toast.js @@ -0,0 +1,6 @@ +import Component from '@glimmer/component'; +import { inject as service } from '@ember/service'; + +export default class ToastComponent extends Component { + @service toasts; +} diff --git a/app/controllers/admin/indexes/item/edit.js b/app/controllers/admin/indexes/item/edit.js index b19a38a..c4bde3e 100644 --- a/app/controllers/admin/indexes/item/edit.js +++ b/app/controllers/admin/indexes/item/edit.js @@ -4,6 +4,7 @@ import { inject as service } from '@ember/service'; export default class AdminIndexesItemEditController extends Controller { @service router; + @service toasts; @action save(event) { @@ -13,6 +14,8 @@ export default class AdminIndexesItemEditController extends Controller { const data = Object.fromEntries(formData.entries()); this.model.save(data); + + this.toasts.add('Hello World!'); } @action diff --git a/app/services/toasts.js b/app/services/toasts.js new file mode 100644 index 0000000..ec73718 --- /dev/null +++ b/app/services/toasts.js @@ -0,0 +1,18 @@ +import Service from '@ember/service'; +import { tracked } from '@glimmer/tracking'; + +export default class ToastsService extends Service { + @tracked plate = []; + + constructor() { + super(); + + this.destinationElement = document.createElement('div'); + + document.body.appendChild(this.destinationElement); + } + + add() { + + } +} diff --git a/app/templates/admin/indexes/item/edit.hbs b/app/templates/admin/indexes/item/edit.hbs index 5c088c9..2e044ef 100644 --- a/app/templates/admin/indexes/item/edit.hbs +++ b/app/templates/admin/indexes/item/edit.hbs @@ -1,4 +1,6 @@ - +{{#if @model.isNew}} + +{{/if}}
{{#if @model.isNew}} @@ -15,3 +17,5 @@