Skip to content

Commit c606079

Browse files
Merge pull request #1989 from yadvirkaur/intelliSpacebar
Add setting to turn off intelligent spacebar in Multi-Pane
2 parents 5131a7c + 5a00505 commit c606079

File tree

5 files changed

+64
-31
lines changed

5 files changed

+64
-31
lines changed

www/configs/user-settings.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
"app-layout": {
6969
"title": "APP_SETTINGS",
7070
"type": "switch",
71-
"settings": ["quick-tools", "shortcut-tray", "live-feed"]
71+
"settings": ["quick-tools", "shortcut-tray", "live-feed", "intelligent-spacebar"]
7272
},
7373
"other-options": {
7474
"title": "OTHER_OPTIONS",
@@ -268,6 +268,10 @@
268268
"title": "AUTO_PLAY",
269269
"initialValue": false
270270
},
271+
"intelligent-spacebar":{
272+
"title": "INTELLIGENT_SPACEBAR",
273+
"initialValue": true
274+
},
271275
"autoplay-delay": {
272276
"title": "DELAY",
273277
"type": "range",

www/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@
324324
"LEFT_ALIGN": "Left-Align",
325325
"NEXT_LINE": "Next Line",
326326
"AUTOPLAY_OPTIONS": "Autoplay Options",
327+
"INTELLIGENT_SPACEBAR": "Intelligent Spacebar",
327328
"AUTO_PLAY": "Auto Play",
328329
"DELAY": "Delay (Seconds)",
329330
"BANI_SETTINGS": "Bani Settings",

www/main/navigator/shabad/ShabadContent.jsx

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const ShabadContent = () => {
5050
} = useStoreActions((state) => state.navigator);
5151

5252
// mangalPosition was removed from below settings
53-
const { autoplayToggle, autoplayDelay, baniLength, liveFeed } = useStoreState(
53+
const { autoplayToggle, autoplayDelay, baniLength, liveFeed, intelligentSpacebar } = useStoreState(
5454
(state) => state.userSettings,
5555
);
5656

@@ -102,21 +102,21 @@ const ShabadContent = () => {
102102
const regex = checkPauri.length > 1 ? /]\d*]/ : /]/;
103103
return versesNew
104104
? versesNew.map((verse, index) => {
105-
if (verse) {
106-
const verseObj = {
107-
ID: index,
108-
verseId: verse.ID,
109-
verse: verse.Gurmukhi,
110-
english: verse.English ? verse.English : '',
111-
lineNo: currentLine,
112-
crossPlatformId: verse.crossPlatformID ? verse.crossPlatformID : '',
113-
};
114-
// eslint-disable-next-line no-unused-expressions
115-
regex.test(verse.Gurmukhi) && currentLine++;
116-
return verseObj;
117-
}
118-
return {};
119-
})
105+
if (verse) {
106+
const verseObj = {
107+
ID: index,
108+
verseId: verse.ID,
109+
verse: verse.Gurmukhi,
110+
english: verse.English ? verse.English : '',
111+
lineNo: currentLine,
112+
crossPlatformId: verse.crossPlatformID ? verse.crossPlatformID : '',
113+
};
114+
// eslint-disable-next-line no-unused-expressions
115+
regex.test(verse.Gurmukhi) && currentLine++;
116+
return verseObj;
117+
}
118+
return {};
119+
})
120120
: [];
121121
}
122122
};
@@ -259,15 +259,7 @@ const ShabadContent = () => {
259259
};
260260

261261
const toggleHomeVerse = () => {
262-
if (isSundarGutkaBani || isCeremonyBani) {
263-
openNextVerse();
264-
} else if (homeVerse) {
265-
const mappedShabadArray = filterRequiredVerseItems(activeShabad);
266-
const currentVerseIndex = mappedShabadArray.findIndex(
267-
({ verseId }) => verseId === activeVerseId,
268-
);
269-
let nextVerseIndex;
270-
262+
const handleIntelligentSpacebar = (nextVerseIndex, mappedShabadArray, currentVerseIndex) => {
271263
if (atHome) {
272264
if (previousVerseIndex !== null) {
273265
nextVerseIndex = previousVerseIndex + 1;
@@ -299,6 +291,23 @@ const ShabadContent = () => {
299291
setPreviousIndex(nextVerseIndex);
300292
}
301293
}
294+
return nextVerseIndex;
295+
}
296+
297+
if (isSundarGutkaBani || isCeremonyBani) {
298+
openNextVerse();
299+
} else if (homeVerse) {
300+
const mappedShabadArray = filterRequiredVerseItems(activeShabad);
301+
const currentVerseIndex = mappedShabadArray.findIndex(
302+
({ verseId }) => verseId === activeVerseId,
303+
);
304+
305+
let nextVerseIndex = homeVerse;
306+
307+
if (intelligentSpacebar) {
308+
nextVerseIndex = handleIntelligentSpacebar(nextVerseIndex, mappedShabadArray, currentVerseIndex);
309+
}
310+
302311
const nextVerseId = mappedShabadArray[nextVerseIndex].verseId;
303312
scrollToVerse(nextVerseId);
304313
updateTraversedVerse(nextVerseId, nextVerseIndex);

www/main/navigator/shabad/ShabadText.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export const ShabadText = ({
5757
lineNumber,
5858
} = useStoreState((state) => state.navigator);
5959

60-
const { baniLength, liveFeed, autoplayDelay, autoplayToggle } = useStoreState(
60+
const { baniLength, liveFeed, autoplayDelay, autoplayToggle, intelligentSpacebar } = useStoreState(
6161
(state) => state.userSettings,
6262
);
6363

@@ -273,6 +273,7 @@ export const ShabadText = ({
273273
atHome,
274274
setHome,
275275
homeVerse: paneAttributes.homeVerse,
276+
intelligentSpacebar,
276277
});
277278
if (verse) {
278279
updateTraversedVerse(verse.verseId, verse.verseIndex);

www/main/navigator/shabad/utils/change-verse.js

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,18 @@ const skipMangla = (shabadVerses, index) => {
165165

166166
export const intelligentNextVerse = (
167167
filteredItems,
168-
{ activeVerseId, previousVerseIndex, setPreviousIndex, atHome, setHome, homeVerse },
168+
{
169+
activeVerseId,
170+
previousVerseIndex,
171+
setPreviousIndex,
172+
atHome,
173+
setHome,
174+
homeVerse,
175+
intelligentSpacebar,
176+
},
169177
) => {
170-
if (homeVerse) {
171-
const currentVerseIndex = filteredItems.findIndex(({ verseId }) => verseId === activeVerseId);
172-
let nextVerseIndex;
178+
const handleIntelligentSpacebar = (nextIndex, currentVerseIndex) => {
179+
let nextVerseIndex = nextIndex;
173180

174181
if (atHome) {
175182
if (previousVerseIndex !== null) {
@@ -202,6 +209,17 @@ export const intelligentNextVerse = (
202209
setPreviousIndex(nextVerseIndex);
203210
}
204211
}
212+
return nextVerseIndex;
213+
}
214+
215+
if (homeVerse) {
216+
const currentVerseIndex = filteredItems.findIndex(({ verseId }) => verseId === activeVerseId);
217+
let nextVerseIndex = homeVerse;
218+
219+
if (intelligentSpacebar) {
220+
nextVerseIndex = handleIntelligentSpacebar(nextVerseIndex, currentVerseIndex);
221+
}
222+
205223
const nextVerseId = filteredItems[nextVerseIndex].verseId;
206224
return { verseId: nextVerseId, verseIndex: nextVerseIndex };
207225
}

0 commit comments

Comments
 (0)