Skip to content

Commit fb7f6fa

Browse files
committed
version bump & changelog
1 parent 5d3cecd commit fb7f6fa

File tree

3 files changed

+25
-39
lines changed

3 files changed

+25
-39
lines changed

.storybook/stories/2.Changelog.mdx

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ import { Meta } from "@storybook/blocks";
44

55
# Changelog
66

7+
## 1.3.4
8+
9+
#### `<easycredit-widget />`
10+
11+
* behebt ein Problem, das unter bestimmten Bedingungen zu einer Endlosschleife führen konnte.
12+
713
## 1.3.3
814

915
* Upgrade auf StencilJS v4.27.0

.storybook/stories/5.Developer.mdx

+18-38
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,23 @@ import { Meta } from "@storybook/blocks";
44

55
<h1>Hinweise für Entwickler</h1>
66

7+
<h2>Benutzen von Event Delegation</h2>
8+
9+
Normalerweise können den Komponenten Event-Handler hinzugefügt werden, sobald Sie `hydriert` sind. In vielen Szenarien werden Elemente aber auch durch JavaScript dynamisch ersetzt oder erst später eingefügt, z.B. wenn Elemente auf der Seite nachladen. Um Event-Handler zuverlässig an die Events zu binden, empfiehlt sich die Verwendung von Event Delegation. Dabei wird der Event-Listener nicht direkt auf das Element registriert, sondern auf Ebene des `document`'s oder eines spezifischeren Nodes. Der Vorteil ist, dass das Element zu diesem Zeitpunkt noch gar nicht vorhanden sein muss. Es muss also auch nicht auf Hydrierung oder das Element an sich gewartet werden. Durch das CustomEvent mit Prefix `easycredit-` wird eine Kollision mit anderen Komponenten oder Funktionen vermieden.
10+
11+
```html
12+
<script>
13+
(async () => {
14+
document.addEventListener('easycredit-submit', (e) => {
15+
if (!e.target.matches('easycredit-checkout')) {
16+
return;
17+
}
18+
19+
console.log('submit!');
20+
})
21+
})();
22+
</script>
23+
```
724

825
<h2>Warten auf Komponenten-Initialisierung mit `whenDefined`</h2>
926

@@ -15,45 +32,8 @@ Um die Komponenten und deren Methoden ansprechen zu können, muss das jeweilige
1532
await customElements.whenDefined('easycredit-checkout');
1633
const checkoutComponent = document.querySelector('easycredit-checkout')
1734
if (checkoutComponent) {
18-
checkoutComponent.addEventListener('submit',() => {
19-
console.log('submit!');
20-
})
35+
checkoutComponent.dispatchEvent( new Event( 'openModal' ) );
2136
}
2237
})();
2338
</script>
2439
```
25-
26-
<h2>dynamisches Hinzufügen von EventHandlern</h2>
27-
28-
Möglicherweise wird die Komponente nicht bereits beim Laden der Seite, sondern erst später durch JavaScript der Seite hinzugefügt oder aktualisiert. Um auf Veränderungen im DOM reagieren zu können, kann die folgende Funktion hilfreich sein:
29-
30-
```html
31-
<script>
32-
const watchForSelector = function (selector, cb) {
33-
const observer = new MutationObserver(function(mutations) {
34-
mutations.forEach(function(mutation) {
35-
mutation.addedNodes.forEach(function(node) {
36-
if (node.nodeType !== Node.ELEMENT_NODE) {
37-
return;
38-
}
39-
if (node.tagName === selector.toUpperCase()) {
40-
return cb(node);
41-
}
42-
43-
const el = node.querySelector(selector);
44-
if (el) {
45-
return cb(el);
46-
}
47-
});
48-
});
49-
});
50-
observer.observe(document, { subtree: true, childList: true });
51-
}
52-
53-
watchForSelector('easycredit-checkout', function(component) {
54-
component.addEventListener('submit',() => {
55-
console.log('submit!');
56-
})
57-
})
58-
</script>
59-
```

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@easycredit/easycredit-components",
33
"license": "MIT",
4-
"version": "1.3.3",
4+
"version": "1.3.4",
55
"description": "The easyCredit Web Components are a set of StencilJS based web components to be universally used in e-commerce platforms like Magento or Shopware. The web components ease integration of easyCredit-Rechnung & easyCredit-Ratenkauf payment solution by providing versatile web frontend elements for marketing, checkout and merchant processes.",
66
"main": "dist/index.cjs.js",
77
"module": "dist/index.js",

0 commit comments

Comments
 (0)