Skip to content

Commit a8b9e47

Browse files
committed
simplify style finder in sidebar to checkbox
1 parent 0685b85 commit a8b9e47

File tree

6 files changed

+25
-58
lines changed

6 files changed

+25
-58
lines changed

src/js/consts.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ export const kDark = 'dark';
1818
export const kDisableAll = 'disableAll';
1919
export const kEditorSettings = 'editorSettings';
2020
export const kExclusions = 'exclusions';
21-
export const kFind = 'find';
2221
export const kHocused = 'focusedViaClick';
2322
export const kHocusedAttr = 'data-focused-via-click';
2423
export const kInclusions = 'inclusions';

src/js/prefs.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@ const defaults = {
170170
'popup.sidePanel': false,
171171
'popup.sidePanel.config': 20,
172172
'popup.sidePanel.editor': false,
173-
'popup.sidePanel.finder': 4,
173+
'popup.sidePanel.finder': false,
174174
'popup.sidePanel.manager': false,
175-
'popup.sidePanel.options': false,
175+
'popup.sidePanel.options': true,
176176
'popupWidth': 246, // popup width in pixels
177177
'popupWidthMax': 280, // popup width in pixels
178178

src/options.html

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,8 @@ <h2 i18n="optionSidePanelActions">
257257
<input type="checkbox" id="popup.sidePanel.options" class="slider">
258258
</label>
259259
<label show-if="!popup.sidePanel">
260-
<p i18n="search">
261-
<a class=icon data-cmd="note" i18n="title:optionSidePanelNumberHint" tabindex="0">
262-
<i class=i-info></i>
263-
</a>
264-
</p>
265-
<input type="number" id="popup.sidePanel.finder" min="-1" max="99">
260+
<p i18n="search"></p>
261+
<input type="checkbox" id="popup.sidePanel.finder" class="slider">
266262
</label>
267263
<label show-if="!popup.sidePanel">
268264
<p i18n="optionConfigSidePanel">

src/popup/events.js

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import {kFind, kSidebar, kStyleIdPrefix, UCD} from '@/js/consts';
1+
import {kSidebar, kStyleIdPrefix, UCD} from '@/js/consts';
22
import {isSidebar} from '@/js/dom';
33
import {configDialog} from '@/js/dom-util';
44
import {template} from '@/js/localization';
55
import {API} from '@/js/msg-api';
66
import {__values, subscribe} from '@/js/prefs';
7-
import {CHROME, FIREFOX, MAC} from '@/js/ua';
7+
import {CHROME, MAC} from '@/js/ua';
88
import {t} from '@/js/util';
99
import {getActiveTab, browserSidebar} from '@/js/util-webext';
1010
import {tabId, tabUrl} from '.';
@@ -58,7 +58,7 @@ const GlobalClick = {
5858
export const styleFinder = {};
5959
export const tSideHint = '\n' + t('popupSidePanelOpenHint');
6060
export const pSideConfig = 'popup.sidePanel.config';
61-
const pSideFinder = 'popup.sidePanel.finder';
61+
export const pSideFinder = 'popup.sidePanel.finder';
6262
const pSideEditor = 'popup.sidePanel.editor';
6363
const pSideManager = 'popup.sidePanel.manager';
6464
const pSideOptions = 'popup.sidePanel.options';
@@ -199,15 +199,10 @@ export async function openOptions(event, entry, button) {
199199
}
200200

201201
export async function openStyleFinder(event, entry, button) {
202-
event = event === kSidebar ? event :
203-
!isSidebar && browserSidebar
204-
? button === 2 ? 0 : __values[pSideFinder]
205-
: undefined;
206-
if (__.BUILD !== 'chrome' && FIREFOX && event >= 0)
207-
return sidebarOpen(`popup.html?${kFind}=${tabId}`);
202+
if (browserSidebar && (button === 2 || __values[pSideFinder]))
203+
return sidebarOpen(`popup.html?${pSideFinder}`);
208204
this.disabled = true;
209205
if (!styleFinder.on) await import('./search');
210-
styleFinder[kSidebar] = event;
211206
styleFinder.inline();
212207
}
213208

@@ -221,7 +216,7 @@ export async function openURLandHide(event) {
221216
close();
222217
}
223218

224-
export async function sidebarOpen(path, keepOpen) {
219+
export async function sidebarOpen(path) {
225220
path += (path.includes('?') ? '&' : '?') + kSidebar;
226221
if (isSidebar) {
227222
location.assign(path);
@@ -234,8 +229,7 @@ export async function sidebarOpen(path, keepOpen) {
234229
browserSidebar.setPanel({tabId, panel: path});
235230
await browserSidebar.open();
236231
}
237-
if (!keepOpen && !isSidebar)
238-
close();
232+
close();
239233
}
240234

241235
function updateTitle(el, alwaysSidebar) {

src/popup/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import '@/js/dom-init';
2-
import {kAboutBlank, kFind, kPopup, kSidebar, kStyleIdPrefix} from '@/js/consts';
2+
import {kAboutBlank, kPopup, kStyleIdPrefix} from '@/js/consts';
33
import {isSidebar, urlParams} from '@/js/dom';
44
import {setupLivePrefs} from '@/js/dom-util';
55
import {sanitizeHtml, template} from '@/js/localization';
@@ -10,7 +10,7 @@ import {isDark, onDarkChanged} from '@/js/themer';
1010
import {CHROME, FIREFOX, MAC, MOBILE, OPERA} from '@/js/ua';
1111
import {clamp, sleep0, t} from '@/js/util';
1212
import {getActiveTab, ignoreChromeError} from '@/js/util-webext';
13-
import {handleUpdate, openStyleFinder, styleFinder} from './events';
13+
import {handleUpdate, openStyleFinder, pSideFinder, styleFinder} from './events';
1414
import {initHotkeys} from './hotkeys';
1515
import {createWriterElement, reSort, showStyles, updateStateIcon, writerIcon} from './render';
1616
import '@/css/onoffswitch.css';
@@ -36,7 +36,7 @@ let prevHeight;
3636
return;
3737
prevHeight = Math.max(innerHeight, 150);
3838
if (!MOBILE) window.on('resize', onWindowResize);
39-
if (urlParams.has(kFind)) openStyleFinder(kSidebar);
39+
if (urlParams.has(pSideFinder)) openStyleFinder();
4040
(function connectPort() {
4141
ignoreChromeError();
4242
port = chrome.runtime.connect({name: kPopup + ':' + tabId});

src/popup/search.js

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import {kFind, kSidebar, kStyleIdPrefix, UCD} from '@/js/consts';
2-
import {$create, $toggleDataset, urlParams} from '@/js/dom';
1+
import {kStyleIdPrefix, UCD} from '@/js/consts';
2+
import {$create, $toggleDataset, isSidebar} from '@/js/dom';
33
import {setupLivePrefs, showSpinner} from '@/js/dom-util';
44
import {breakWord, formatDate, htmlToTemplateCache, templateCache} from '@/js/localization';
55
import {onConnect} from '@/js/msg';
66
import {API} from '@/js/msg-api';
77
import * as prefs from '@/js/prefs';
88
import * as URLS from '@/js/urls';
99
import {
10-
clipString, debounce, deepCopy, sleep, stringAsRegExp, stringAsRegExpStr, t, tryRegExp, tryURL,
10+
clipString, debounce, sleep, stringAsRegExp, stringAsRegExpStr, t, tryRegExp, tryURL,
1111
} from '@/js/util';
12-
import {tabId, tabUrl, tabUrlSupported} from '.';
13-
import {configure, openURLandHide, sidebarOpen, styleFinder} from './events';
12+
import {tabUrl, tabUrlSupported} from '.';
13+
import {configure, openURLandHide, styleFinder} from './events';
1414
import './search.css';
1515
import html from './search.html';
1616

@@ -27,6 +27,7 @@ const USW_ICON = $create('img', {
2727
title: URLS.usw,
2828
});
2929
const STYLUS_CATEGORY = 'chrome-extension';
30+
const PAGE_LENGTH = isSidebar ? 250 : 100;
3031
// update USO style install counter if the style isn't uninstalled immediately
3132
const PINGBACK_DELAY = 5e3;
3233
const USO_AUTO_PIC_SUFFIX = '-after.png';
@@ -75,7 +76,6 @@ let searchGlobals = !tabUrlSupported || $searchGlobals.checked;
7576
let query = [];
7677
let order = prefs.__values['popup.findSort'];
7778
let scrollToFirstResult = true;
78-
let PAGE_LENGTH = 100;
7979
let displayedPage = 1;
8080
let totalPages = 1;
8181
let ready;
@@ -226,29 +226,11 @@ function errorIfNoneFound() {
226226

227227
async function start({keepYears} = {}) {
228228
try {
229-
const sidebar = styleFinder[kSidebar];
230-
if (sidebar === kSidebar) {
231-
const id = kFind + urlParams.get(kFind);
232-
for (const v of chrome.extension.getViews({type: 'popup'})) {
233-
if (Array.isArray(v[id])) {
234-
[results, index, imgType] = deepCopy(v[id]);
235-
$('#pct').remove();
236-
v.close();
237-
if (results)
238-
PAGE_LENGTH = 250;
239-
break;
240-
}
241-
}
242-
}
243-
results ??= [];
229+
results = [];
244230
for (let retry = 0; !results.length && retry <= 2; retry++) {
245231
results = await search({retry});
246232
}
247233
if (results.length) {
248-
if (sidebar >= 0 && results.length >= sidebar) {
249-
window[kFind + tabId] = [results, index, imgType];
250-
return sidebarOpen(`popup.html?${kFind}=${tabId}`, true);
251-
}
252234
const info = await API.styles.getRemoteInfo();
253235
for (const r of results) {
254236
[r._styleId, r._styleVars] = info[r.i] || [];
@@ -587,14 +569,10 @@ async function fetchIndex() {
587569
elNote.style.opacity = 0;
588570
start();
589571
});
590-
if (styleFinder[kSidebar] >= 0) {
591-
await indexing;
592-
} else {
593-
// Polyfilling a leaky Promise.race, https://crbug.com/42203149
594-
await new Promise((resolve, reject) => {
595-
for (const job of jobs) job.then(resolve, reject);
596-
});
597-
}
572+
// Polyfilling a leaky Promise.race, https://crbug.com/42203149
573+
await new Promise((resolve, reject) => {
574+
for (const job of jobs) job.then(resolve, reject);
575+
});
598576
return index;
599577
}
600578

0 commit comments

Comments
 (0)