@@ -178,10 +178,70 @@ function showHideRow(btn, row) {
178178// Insert a preview for pasted or selected image files
179179function renderPreview ( fileInput , previewDiv ) {
180180 if ( fileInput . files [ 0 ] . type . indexOf ( 'image' ) == 0 ) {
181- previewDiv . innerHTML = '<img id="loadedImage" alt="image"/ >'
182- let loadedImage = document . getElementById ( 'loadedImage' )
183- loadedImage . src = URL . createObjectURL ( fileInput . files [ 0 ] )
181+ // Clear previous content
182+ while ( previewDiv . firstChild ) {
183+ previewDiv . removeChild ( previewDiv . firstChild ) ;
184+ }
185+
186+ const loadedImage = document . createElement ( 'img' ) ;
187+ loadedImage . alt = 'image' ;
188+ loadedImage . src = URL . createObjectURL ( fileInput . files [ 0 ] ) ;
184189 loadedImage . style . border = 'thin solid #555555' ;
190+ previewDiv . appendChild ( loadedImage ) ;
191+ }
192+ }
193+
194+ // Insert avatar-specific previews showing how the image will appear in navbar and profile
195+ function renderAvatarPreview ( fileInput , previewDiv ) {
196+ if ( fileInput . files [ 0 ] . type . indexOf ( 'image' ) == 0 ) {
197+ // Clear previous content
198+ while ( previewDiv . firstChild ) {
199+ previewDiv . removeChild ( previewDiv . firstChild ) ;
200+ }
201+
202+ // Create container
203+ const container = document . createElement ( 'div' ) ;
204+ container . style . display = 'flex' ;
205+ container . style . alignItems = 'center' ;
206+ container . style . justifyContent = 'center' ;
207+ container . style . gap = '20px' ;
208+ container . style . flexWrap = 'wrap' ;
209+
210+ // Create navbar preview section
211+ const navbarSection = document . createElement ( 'div' ) ;
212+ const navbarLabel = document . createElement ( 'p' ) ;
213+ const navbarStrong = document . createElement ( 'strong' ) ;
214+ navbarStrong . textContent = 'Navbar Preview (40x40)' ;
215+ navbarLabel . appendChild ( navbarStrong ) ;
216+ const navbarImg = document . createElement ( 'img' ) ;
217+ navbarImg . alt = 'Navbar preview' ;
218+ navbarImg . className = 'navbar-avatar' ;
219+ navbarImg . style . position = 'static' ;
220+ navbarSection . appendChild ( navbarLabel ) ;
221+ navbarSection . appendChild ( navbarImg ) ;
222+
223+ // Create profile preview section
224+ const profileSection = document . createElement ( 'div' ) ;
225+ const profileLabel = document . createElement ( 'p' ) ;
226+ const profileStrong = document . createElement ( 'strong' ) ;
227+ profileStrong . textContent = 'Profile Preview (250x250)' ;
228+ profileLabel . appendChild ( profileStrong ) ;
229+ const profileImg = document . createElement ( 'img' ) ;
230+ profileImg . alt = 'Profile preview' ;
231+ profileImg . className = 'avatar' ;
232+ profileImg . style . position = 'static' ;
233+ profileSection . appendChild ( profileLabel ) ;
234+ profileSection . appendChild ( profileImg ) ;
235+
236+ // Assemble and append
237+ container . appendChild ( navbarSection ) ;
238+ container . appendChild ( profileSection ) ;
239+ previewDiv . appendChild ( container ) ;
240+
241+ // Set image sources
242+ const imageUrl = URL . createObjectURL ( fileInput . files [ 0 ] ) ;
243+ navbarImg . src = imageUrl ;
244+ profileImg . src = imageUrl ;
185245 }
186246}
187247
0 commit comments