mirror of
				https://github.com/notion-enhancer/notion-enhancer.git
				synced 2025-10-31 14:18:08 +11:00 
			
		
		
		
	feat(menu): indicate upload status of file inputs with label change
This commit is contained in:
		
							parent
							
								
									5a91e58104
								
							
						
					
					
						commit
						38b056429e
					
				| @ -120,9 +120,19 @@ function Input({ | ||||
| 
 | ||||
|   let _initialValue; | ||||
|   extendProps($input, { | ||||
|     onclick: () => { | ||||
|       // change text to "uploading..." until file has uploaded
 | ||||
|       // to reassure users experiencing latency while file is processed
 | ||||
|       if (type === "file") $filename.innerText = "Uploading..."; | ||||
|     }, | ||||
|     onchange: (event) => { | ||||
|       if (_set && type === "file") { | ||||
|         readUpload(event).then(_set); | ||||
|         readUpload(event) | ||||
|           .then(_set) | ||||
|           // refocus iframe after file has uploaded,
 | ||||
|           // sometimes switching back after opening the
 | ||||
|           // native file upload menu causes a loss of focus
 | ||||
|           .then(() => window.focus()); | ||||
|       } else _set?.($input.value); | ||||
|     }, | ||||
|     onrerender: async () => { | ||||
|  | ||||
| @ -42,6 +42,8 @@ function Onboarding() { | ||||
|         notion-enhancer's privacy policy and terms & conditions. | ||||
|       <//>
 | ||||
|       <div class="flex items-center my-[14px] gap-[8px]"> | ||||
|         <!-- _requireReload=${false} prevents the footer from | ||||
|         suggesting a reload of the app when the box is checked --> | ||||
|         <${Checkbox} | ||||
|           _set=${(checked) => ($submitAgreement.disabled = !checked)} | ||||
|           _requireReload=${false} | ||||
|  | ||||
| @ -1,48 +0,0 @@ | ||||
| /** | ||||
|  * notion-enhancer: menu | ||||
|  * (c) 2021 dragonwocky <thedragonring.bod@gmail.com> (https://dragonwocky.me/)
 | ||||
|  * (https://notion-enhancer.github.io/) under the MIT license
 | ||||
|  */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| const notificationsURL = 'https://notion-enhancer.github.io/notifications.json'; | ||||
| 
 | ||||
| export default async function ({ env, fs, storage, registry, web }, db) { | ||||
|   web.addHotkeyListener(await db.get(['hotkey']), env.focusMenu); | ||||
| 
 | ||||
|   const sidebarSelector = '.notion-sidebar-container .notion-sidebar > div:nth-child(3) > div > div:nth-child(2)'; | ||||
|   await web.whenReady([sidebarSelector]); | ||||
| 
 | ||||
|   const $sidebarLink = web.html`<div class="enhancer--sidebarMenuLink" role="button" tabindex="0">
 | ||||
|       <div> | ||||
|         <div>${await fs.getText('media/colour.svg')}</div> | ||||
|         <div><div>notion-enhancer</div></div> | ||||
|       </div> | ||||
|     </div>`; | ||||
|   $sidebarLink.addEventListener('click', env.focusMenu); | ||||
| 
 | ||||
|   const notifications = { | ||||
|     cache: await storage.get(['notifications'], []), | ||||
|     provider: await fs.getJSON(notificationsURL), | ||||
|     count: (await registry.errors()).length, | ||||
|   }; | ||||
|   for (const notification of notifications.provider) { | ||||
|     if ( | ||||
|       !notifications.cache.includes(notification.id) && | ||||
|       notification.version === env.version && | ||||
|       (!notification.environments || notification.environments.includes(env.name)) | ||||
|     ) { | ||||
|       notifications.count++; | ||||
|     } | ||||
|   } | ||||
|   if ((await storage.get(['last_read_changelog'])) !== env.version) notifications.count++; | ||||
|   if (notifications.count) { | ||||
|     web.render( | ||||
|       $sidebarLink.children[0], | ||||
|       web.html`<div class="enhancer--notificationBubble"><div><span>${notifications.count}</span></div></div>` | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   web.render(document.querySelector(sidebarSelector), $sidebarLink); | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user