File tree 1 file changed +56
-0
lines changed
1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change @@ -147,3 +147,59 @@ export class BasketStorage extends EventTarget {
147
147
const basketStorage = BasketStorage .getInstance ();
148
148
export default basketStorage ;
149
149
```
150
+
151
+ with lit component
152
+
153
+ ``` js
154
+ import { html , css , LitElement } from " https://cdn.jsdelivr.net/npm/lit@2/+esm" ;
155
+ import basketStorage from " ./basketStorage.js" ;
156
+
157
+ export class Basket extends LitElement {
158
+ static get properties () {
159
+ return {
160
+ items: { type: Array },
161
+ };
162
+ }
163
+
164
+ constructor () {
165
+ super ();
166
+ }
167
+
168
+ connectedCallback () {
169
+ super .connectedCallback ();
170
+ basketStorage .addEventListener (" updated" , (i ) => {
171
+ this .items = basketStorage .getItems ();
172
+ });
173
+ }
174
+
175
+ submit (e ) {
176
+ e .preventDefault ();
177
+
178
+ const searchNode = this .renderRoot .querySelector (" #search" );
179
+ if (searchNode) {
180
+ const v = searchNode .value ;
181
+ basketStorage .addItem (v);
182
+ }
183
+ searchNode .value = " " ;
184
+ }
185
+
186
+ render () {
187
+ return html `
188
+ <form @submit =${this.submit} >
189
+ <div >
190
+ <input type =" text" id =" search" />
191
+ <button type =" submit" >Submit</button >
192
+ </div >
193
+ <div >
194
+ ${ this .items
195
+ ? html ` ${ this .items .map ((i ) => {
196
+ return html ` <div >${ i} </div >` ;
197
+ })} `
198
+ : html ` <h2 >No items</h2 >` }
199
+ </div >
200
+ </form >
201
+ ` ;
202
+ }
203
+ }
204
+ customElements .define (" app-basket" , Basket);
205
+ ```
You can’t perform that action at this time.
0 commit comments