Skip to content

Commit aa7ac72

Browse files
committed
Fixed button state updating in popup
1 parent 85ef909 commit aa7ac72

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

src/popup/popup.ts

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,27 @@ module Popup {
2424

2525
addListeners(id, tabStates);
2626
restoreState(id, tabStates);
27+
28+
setNextButtonState();
29+
setPrevButtonState(id, tabStates);
2730
});
2831

32+
function setNextButtonState() {
33+
if (queryInput.value == "") {
34+
nextButton.disabled = true;
35+
} else {
36+
nextButton.disabled = false;
37+
}
38+
}
39+
40+
function setPrevButtonState(tabId: number, tabStates: TabStateManager) {
41+
if (tabStates.isSearching(tabId)) {
42+
prevButton.disabled = false;
43+
} else {
44+
prevButton.disabled = true;
45+
}
46+
}
47+
2948
function addListeners(id: number, tabStates: TabStateManager) {
3049
var prevButtonClick = function() {
3150
Utils.sendCommand("prev");
@@ -50,18 +69,14 @@ module Popup {
5069
tabStates.set(id, "query", queryInput.value);
5170

5271
if (tabStates.isSearching(id)) {
53-
tabStates.set(id, "searching", false);
72+
setSearching(id, false, tabStates);
5473
Utils.sendCommand("clear");
5574
}
5675

5776
// Remove the invalid class if it's there
5877
queryInput.className = '';
5978

60-
if (queryInput.value == "") {
61-
setEnabled("next", false);
62-
} else {
63-
setEnabled("next", true);
64-
}
79+
setNextButtonState();
6580
}
6681

6782
var checkboxClick = function() {
@@ -78,12 +93,6 @@ module Popup {
7893

7994
function restoreState(tabId: number, tabStates: TabStateManager) {
8095
queryInput.value = tabStates.get(tabId, "query");
81-
if (queryInput.value == "") {
82-
setEnabled("next", false);
83-
} else {
84-
setEnabled("next", true);
85-
}
86-
8796
caseInsensitiveCheckbox.checked = tabStates.get(tabId, "caseInsensitive");
8897
}
8998

@@ -98,13 +107,18 @@ module Popup {
98107
caseInsensitive: insensitive,
99108
regexp: queryInput.value
100109
});
101-
tabStates.set(tabId, "searching", true);
110+
setSearching(tabId, true, tabStates);
102111
} else {
103112
Utils.log("Invalid regex");
104113
queryInput.className = 'invalid';
105114
}
106115
}
107116

117+
function setSearching(tabId: number, val: boolean, tabStates: TabStateManager) {
118+
tabStates.set(tabId, "searching", val);
119+
setPrevButtonState(tabId, tabStates);
120+
}
121+
108122
function validate(regexp: string): boolean {
109123
if (regexp != "") {
110124
try {
@@ -115,8 +129,4 @@ module Popup {
115129
}
116130
return false;
117131
}
118-
119-
function setEnabled(id: string, val: boolean) {
120-
document.getElementById(id).disabled = !val;
121-
}
122132
}

0 commit comments

Comments
 (0)