don’t read for storage data automatically
saves on resources for files that don’t necessarily need it
This commit is contained in:
		
							parent
							
								
									51574e0ba8
								
							
						
					
					
						commit
						333310fcc8
					
				
					 1 changed files with 247 additions and 243 deletions
				
			
		|  | @ -214,7 +214,91 @@ export default class windowman { | |||
| 				}); | ||||
| 			} | ||||
| 
 | ||||
| 			async function storage() { | ||||
| 			elements(); | ||||
| 			text(); | ||||
| 			icons(); | ||||
| 		} | ||||
| 
 | ||||
| 		// Adds events to the window.
 | ||||
| 		function events() { | ||||
| 			/* Map buttons to their corresponding action buttons. */ | ||||
| 			function actions() { | ||||
| 				function links() { | ||||
| 					let buttons = document.querySelectorAll("button[href]"); | ||||
| 
 | ||||
| 					if (buttons) { | ||||
| 						buttons.forEach((button) => { | ||||
| 							let event = function () { | ||||
| 								// Get the data from the button.
 | ||||
| 								let target = {}; | ||||
| 								target[`source`] = this.getAttribute(`href`); | ||||
| 
 | ||||
| 								// Get the correct path.
 | ||||
| 								target[`path`] = ( | ||||
| 									!target[`source`].includes(`://`) | ||||
| 										? window.location.pathname | ||||
| 												.split(`/`) | ||||
| 												.slice(0, -1) | ||||
| 												.join(`/`) | ||||
| 												.concat(`/`) | ||||
| 										: `` | ||||
| 								).concat(target[`source`]); | ||||
| 
 | ||||
| 								windowman.new( | ||||
| 									target[`path`], | ||||
| 									this.getAttribute(`tab-height`) | ||||
| 										? this.getAttribute(`tab-height`) | ||||
| 										: null, | ||||
| 									this.getAttribute(`tab-width`) | ||||
| 										? this.getAttribute(`tab-width`) | ||||
| 										: null, | ||||
| 								); | ||||
| 							}; | ||||
| 							button.addEventListener("click", event); | ||||
| 						}); | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				// Responsiveness to different screen sizes.
 | ||||
| 				function resize() { | ||||
| 					function sidebar() { | ||||
| 						 | ||||
| 						if (document.querySelector(`.sidenav`)) { | ||||
| 							(document.querySelectorAll(`.sidenav`)).forEach(function (sidebar_element) { | ||||
| 								if (sidebar_element.getAttribute(`name`)) { | ||||
| 									document.querySelector(`[works-sidebar="${sidebar_element.getAttribute(`name`)}"]`) | ||||
| 									.addEventListener(`click`, function () { | ||||
| 										M.Sidenav.getInstance(sidebar_element).open(); | ||||
| 									}); | ||||
| 								} else if (document.querySelector(`[data-action="ui,open,navbar"]`)) { | ||||
| 									document.querySelector(`[data-action="ui,open,navbar"]`).forEach(function (button_element) { | ||||
| 										button_element.addEventListener(`click`, function() { | ||||
| 											M.Sidenav.getInstance(sidebar).open(); | ||||
| 										}); | ||||
| 									}); | ||||
| 								} | ||||
| 							}); | ||||
| 						} | ||||
| 					} | ||||
| 
 | ||||
| 					sidebar(); | ||||
| 				} | ||||
| 
 | ||||
| 				resize(); | ||||
| 				links(); | ||||
| 			} | ||||
| 			 | ||||
| 			actions(); | ||||
| 		} | ||||
| 
 | ||||
| 		headers(); | ||||
| 		appearance(); | ||||
| 		events(); | ||||
| 	} | ||||
| 
 | ||||
| 	/* Run this function if you would like to synchronize with data. */ | ||||
| 	sync() { | ||||
| 		async function fill() { | ||||
| 			// Import the module.
 | ||||
| 			const secretariat = await import( | ||||
| 				chrome.runtime.getURL("scripts/secretariat.js") | ||||
|  | @ -254,16 +338,8 @@ export default class windowman { | |||
| 			}); | ||||
| 		} | ||||
| 		 | ||||
| 			elements(); | ||||
| 			text(); | ||||
| 			icons(); | ||||
| 			storage(); | ||||
| 		} | ||||
| 
 | ||||
| 		// Adds events to the window.
 | ||||
| 		function events() { | ||||
| 		/* Add events related to storage. */ | ||||
| 			async function storage() { | ||||
| 		async function update() { | ||||
| 			// Import the module.
 | ||||
| 			const secretariat = await import( | ||||
| 				chrome.runtime.getURL("scripts/secretariat.js") | ||||
|  | @ -306,44 +382,46 @@ export default class windowman { | |||
| 			}); | ||||
| 		} | ||||
| 		 | ||||
| 			/* Map buttons to their corresponding action buttons. */ | ||||
| 			function actions() { | ||||
| 				function links() { | ||||
| 					let buttons = document.querySelectorAll("button[href]"); | ||||
| 
 | ||||
| 					if (buttons) { | ||||
| 						buttons.forEach((button) => { | ||||
| 							let event = function () { | ||||
| 								// Get the data from the button.
 | ||||
| 								let target = {}; | ||||
| 								target[`source`] = this.getAttribute(`href`); | ||||
| 
 | ||||
| 								// Get the correct path.
 | ||||
| 								target[`path`] = ( | ||||
| 									!target[`source`].includes(`://`) | ||||
| 										? window.location.pathname | ||||
| 												.split(`/`) | ||||
| 												.slice(0, -1) | ||||
| 												.join(`/`) | ||||
| 												.concat(`/`) | ||||
| 										: `` | ||||
| 								).concat(target[`source`]); | ||||
| 
 | ||||
| 								windowman.new( | ||||
| 									target[`path`], | ||||
| 									this.getAttribute(`tab-height`) | ||||
| 										? this.getAttribute(`tab-height`) | ||||
| 										: null, | ||||
| 									this.getAttribute(`tab-width`) | ||||
| 										? this.getAttribute(`tab-width`) | ||||
| 										: null, | ||||
| 		/* | ||||
| 			Update the interface based on the storage data changes. | ||||
| 		*/ | ||||
| 		async function updates() { | ||||
| 			// Import the module.
 | ||||
| 			const secretariat = await import( | ||||
| 				chrome.runtime.getURL("scripts/secretariat.js") | ||||
| 			); | ||||
| 							}; | ||||
| 							button.addEventListener("click", event); | ||||
| 
 | ||||
| 			// Get the storage data.
 | ||||
| 			let storage_data = await secretariat.read(); | ||||
| 
 | ||||
| 			async function enable() { | ||||
| 				let input_elements = document.querySelectorAll("[data-enable]"); | ||||
| 
 | ||||
| 				if (input_elements) { | ||||
| 					input_elements.forEach((input_element) => { | ||||
| 						if (input_element.getAttribute("data-enable")) { | ||||
| 							(async () => { | ||||
| 								input_element.disabled = !((await secretariat.read(input_element.getAttribute("data-enable"))) != null | ||||
| 									? (typeof (await secretariat.read(input_element.getAttribute("data-enable")))).includes(`obj`) | ||||
| 										? (Object.keys(await secretariat.read(input_element.getAttribute("data-enable")))).length > 0 | ||||
| 										: !!(await secretariat.read( | ||||
| 												input_element.getAttribute("data-enable"), | ||||
| 											)) | ||||
| 									: false); | ||||
| 							})(); | ||||
| 						} | ||||
| 					}); | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			// Update the input elements.
 | ||||
| 			secretariat.observe((what) => { | ||||
| 				enable(); | ||||
| 			}); | ||||
| 
 | ||||
| 			enable(); | ||||
| 		}; | ||||
| 		 | ||||
| 		/* Enable the searching interface. */ | ||||
| 		function search() { | ||||
| 			if (document.querySelectorAll(`[data-result]`)) { | ||||
|  | @ -458,84 +536,10 @@ export default class windowman { | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 				// Responsiveness to different screen sizes.
 | ||||
| 				function resize() { | ||||
| 					function sidebar() { | ||||
| 						 | ||||
| 						if (document.querySelector(`.sidenav`)) { | ||||
| 							(document.querySelectorAll(`.sidenav`)).forEach(function (sidebar_element) { | ||||
| 								if (sidebar_element.getAttribute(`name`)) { | ||||
| 									document.querySelector(`[works-sidebar="${sidebar_element.getAttribute(`name`)}"]`) | ||||
| 									.addEventListener(`click`, function () { | ||||
| 										M.Sidenav.getInstance(sidebar_element).open(); | ||||
| 									}); | ||||
| 								} else if (document.querySelector(`[data-action="ui,open,navbar"]`)) { | ||||
| 									document.querySelector(`[data-action="ui,open,navbar"]`).forEach(function (button_element) { | ||||
| 										button_element.addEventListener(`click`, function() { | ||||
| 											M.Sidenav.getInstance(sidebar).open(); | ||||
| 										}); | ||||
| 									}); | ||||
| 								} | ||||
| 							}); | ||||
| 						} | ||||
| 					} | ||||
| 
 | ||||
| 					sidebar(); | ||||
| 				} | ||||
| 
 | ||||
| 				resize(); | ||||
| 				search(); | ||||
| 				links(); | ||||
| 			} | ||||
| 
 | ||||
| 			/* | ||||
| 		Update the interface based on the storage data changes. | ||||
| 		*/ | ||||
| 			async function updates() { | ||||
| 				// Import the module.
 | ||||
| 				const secretariat = await import( | ||||
| 					chrome.runtime.getURL("scripts/secretariat.js") | ||||
| 				); | ||||
| 
 | ||||
| 				// Get the storage data.
 | ||||
| 				let storage_data = await secretariat.read(); | ||||
| 
 | ||||
| 				async function enable() { | ||||
| 					let input_elements = document.querySelectorAll("[data-enable]"); | ||||
| 
 | ||||
| 					if (input_elements) { | ||||
| 						input_elements.forEach((input_element) => { | ||||
| 							if (input_element.getAttribute("data-enable")) { | ||||
| 								(async () => { | ||||
| 									input_element.disabled = !((await secretariat.read(input_element.getAttribute("data-enable"))) != null | ||||
| 										? (typeof (await secretariat.read(input_element.getAttribute("data-enable")))).includes(`obj`) | ||||
| 											? (Object.keys(await secretariat.read(input_element.getAttribute("data-enable")))).length > 0 | ||||
| 											: !!(await secretariat.read( | ||||
| 													input_element.getAttribute("data-enable"), | ||||
| 												)) | ||||
| 										: false); | ||||
| 								})(); | ||||
| 							} | ||||
| 						}); | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				// Update the input elements.
 | ||||
| 				secretariat.observe((what) => { | ||||
| 					enable(); | ||||
| 				}); | ||||
| 
 | ||||
| 				enable(); | ||||
| 			} | ||||
| 
 | ||||
| 			storage(); | ||||
| 			actions(); | ||||
| 		fill(); | ||||
| 		update(); | ||||
| 		updates(); | ||||
| 		} | ||||
| 
 | ||||
| 		headers(); | ||||
| 		appearance(); | ||||
| 		events(); | ||||
| 		search(); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue