@@ -60,27 +60,44 @@ modalBtn.addEventListener('click', (e)=>{
6060 const imgInput = document . getElementById ( 'imageInput' ) . files [ 0 ] ;
6161 const imgFile = URL . createObjectURL ( imgInput ) ;
6262
63- const title = document . getElementById ( "title" ) . value . split ( ) ;
63+ const title = document . getElementById ( "title" ) . value . trim ( ) ;
6464 const description = document . getElementById ( "description" ) . value . trim ( ) ;
6565
6666 if ( formValid ( imgFile , title , description ) ) {
67- addItem ( imgFile , title , description ) ;
67+ const id = Date . now ( ) ;
68+
69+ addItem ( id , imgFile , title , description ) ;
70+
71+ let storageData = JSON . parse ( localStorage . getItem ( "content" ) )
72+ if ( ! storageData ) {
73+ storageData = [ ]
74+ }
75+
76+ let itemData = { id , imgFile, title, description }
77+
78+ storageData . push ( itemData )
79+
80+ localStorage . setItem ( "content" , JSON . stringify ( storageData ) ) ;
81+
82+ document . getElementById ( "imageInput" ) . value = "" ;
83+ document . getElementById ( "image-preview" ) . src = "" ;
6884 document . querySelector ( '.modal__form' ) . reset ( ) ;
6985
7086 if ( modalContainer . classList . contains ( "show-modal" ) ) {
7187 modalContainer . classList . remove ( 'show-modal' ) ;
7288 modalContainer . classList . add ( 'hide' ) ;
7389 }
90+
7491 }
7592} )
7693
77- function addItem ( imgFile , title , description ) {
94+ function addItem ( id , imgFile , title , description ) {
7895
79- const content = document . querySelector ( '.content' )
96+ const content = document . querySelector ( '.content' ) ;
8097
8198 content . innerHTML +=
8299 `
83- <div class="content__item">
100+ <div class="content__item item" data-id=" ${ id } ">
84101 <div class="item__image">
85102 <img src="${ imgFile } " alt="Card Image">
86103 <p>Lorem ipsum dolor site amet</p>
@@ -101,3 +118,62 @@ function addItem(imgFile, title, description){
101118
102119 `
103120}
121+
122+ function removeItem ( ) {
123+ document . querySelector ( ".content" ) . addEventListener ( "click" , ( e ) => {
124+ console . log ( e . target ) ;
125+ if ( e . target . classList . contains ( "bi-trash" ) ) {
126+ const item = e . target . closest ( ".item" ) ;
127+ item . remove ( ) ;
128+
129+ let storageData = JSON . parse ( localStorage . getItem ( "content" ) ) || [ ] ;
130+ const itemId = item . dataset . id ;
131+
132+ const index = localStorage . findIndex ( item => item . id === itemId ) ;
133+ console . log ( index )
134+
135+ if ( index !== - 1 ) {
136+ storageData . splice ( index , 1 ) ;
137+ localStorage . setItem ( "content" , JSON . stringify ( storageData ) ) ;
138+ }
139+
140+ }
141+ } )
142+ }
143+ removeItem ( )
144+
145+
146+ window . onload = ( ) => {
147+ itemData = JSON . parse ( localStorage . getItem ( "content" ) ) ;
148+ if ( ! itemData ) {
149+ itemData = [ ] ;
150+ }
151+
152+ const content = document . querySelector ( ".content" ) ;
153+
154+ itemData . forEach ( item => {
155+
156+ content . innerHTML +=
157+ `
158+ <div class="content__item item" data-id="${ item . id } ">
159+ <div class="item__image">
160+ <img src="${ item . imgFile } " alt="Item Image">
161+ <p>Lorem ipsum dolor site amet</p>
162+ </div>
163+ <div class="item__infos">
164+ <h1>${ item . title } </h1>
165+ <p>${ item . description } </p>
166+ <div class="item__infos__btns">
167+ <button class="btn">Details</button>
168+ <div class="item__infos__icons">
169+ <i class="bi bi-pen"></i>
170+ <i class="bi bi-trash"></i>
171+ <div class="alert-content"></div>
172+ </div>
173+ </div>
174+ </div>
175+ </div>
176+
177+ `
178+ } )
179+ }
0 commit comments