Mirror of https://github.com/improsocial/impro An extensible Bluesky client for web impro.social
5

Configure Feed

Select the types of activity you want to include in your feed.

Turn off welcome modal in preview mode

Grace Kind (Jul 15, 2026, 11:28 PM -0500) 025c920d dd930205

+9 -15
+1 -1
package.json
··· 1 1 { 2 2 "name": "impro", 3 - "version": "0.17.175", 3 + "version": "0.17.176", 4 4 "type": "module", 5 5 "scripts": { 6 6 "start": "rm -rf \"${BUILD_DIR:-build}\" && NODE_ENV=development eleventy --serve",
+4 -13
src/js/mainLayout.js
··· 4 4 import { sidebarTemplate } from "/js/templates/sidebar.template.js"; 5 5 import { footerTemplate } from "/js/templates/footer.template.js"; 6 6 import { eyeIconTemplate } from "/js/templates/icons/eyeIcon.template.js"; 7 - import { 8 - getPluginPreviewIdsFromQueryParam, 9 - PLUGIN_PREVIEW_QUERY_PARAM, 10 - } from "/js/plugins/pluginService.js"; 7 + import { PLUGIN_PREVIEW_QUERY_PARAM } from "/js/plugins/pluginService.js"; 11 8 12 9 function exitPluginPreview() { 13 10 const url = new URL(window.location.href); ··· 152 149 } 153 150 }; 154 151 155 - const previewIds = getPluginPreviewIdsFromQueryParam(); 156 152 this.#disposeEffect = effect(() => { 157 153 const currentRoute = router.$currentRoute.get(); 158 154 const layoutOptions = currentRoute?.options?.layoutOptions ?? {}; ··· 161 157 typeof layoutOptions.activeNavItem === "function" 162 158 ? layoutOptions.activeNavItem(currentRoute.params) 163 159 : (layoutOptions.activeNavItem ?? null); 164 - const previewingPlugins = 165 - previewIds.length > 0 166 - ? pluginService.$pluginsInfo 167 - .get() 168 - .filter( 169 - (plugin) => previewIds.includes(plugin.id) && plugin.loaded, 170 - ) 171 - : []; 160 + const previewingPlugins = pluginService.isPreviewMode 161 + ? pluginService.$pluginsInfo.get().filter((plugin) => plugin.loaded) 162 + : []; 172 163 render( 173 164 mainLayoutTemplate({ 174 165 isAuthenticated,
+3 -1
src/js/plugins/pluginService.js
··· 171 171 this.prefManager.$installedPlugins.get(), 172 172 ); 173 173 this.session = session; 174 + this.isPreviewMode = false; 174 175 this._renderContext = null; 175 176 this._dataLayer = null; 176 177 this._setupRegistries(); ··· 392 393 } 393 394 const previewPluginIds = getPluginPreviewIdsFromQueryParam(); 394 395 if (previewPluginIds.length > 0 && !this.session) { 396 + this.isPreviewMode = true; 395 397 // Serial to avoid racing on preferences 396 398 for (const previewPluginId of previewPluginIds) { 397 399 await this._installPreviewPlugin(previewPluginId); ··· 453 455 const permissions = getPermissionsFromManifest(manifest); 454 456 if (!isEmptyPermissions(permissions)) { 455 457 showToast( 456 - `"${manifest.name}" can't be previewed because it requires additional permissions.`, 458 + `"${manifest.name}" can't be previewed because it requires user permissions.`, 457 459 { style: "error", timeout: 5000 }, 458 460 ); 459 461 return;
+1
src/js/views/home.view.js
··· 50 50 51 51 if ( 52 52 !isAuthenticated && 53 + !pluginService.isPreviewMode && 53 54 !sessionStorage.getItem(WELCOME_MODAL_SEEN_STORAGE_KEY) 54 55 ) { 55 56 sessionStorage.setItem(WELCOME_MODAL_SEEN_STORAGE_KEY, "true");