Skip to content

Commit f0e9301

Browse files
fix: resolve the bani controller white screen error
- fix sundar gutka banis when using multipane window - fix the shabad pane style
1 parent 409ea2c commit f0e9301

File tree

7 files changed

+81
-59
lines changed

7 files changed

+81
-59
lines changed

www/main/addons/bani-controller/components/BaniController.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import QrCode from './QrCode';
1616
import ConnectionSwitch from './ConnectionSwitch';
1717
import ZoomController from './ZoomController';
1818
import useSocketListeners from '../hooks/use-socket-listeners';
19+
import updateMultipane from '../../../navigator/search/utils/update-multipane';
1920

2021
const remote = require('@electron/remote');
2122

@@ -29,6 +30,7 @@ const BaniController = ({ onScreenClose, className }) => {
2930
const canvasRef = useRef(null);
3031

3132
const changeActiveShabad = useNewShabad();
33+
const updatePane = updateMultipane();
3234

3335
// Local State
3436
const [codeLabel, setCodeLabel] = useState('');
@@ -58,6 +60,7 @@ const BaniController = ({ onScreenClose, className }) => {
5860
miscSlideText,
5961
isMiscSlideGurmukhi,
6062
savedCrossPlatformId,
63+
lineNumber,
6164
} = useStoreState((state) => state.navigator);
6265

6366
const {
@@ -206,7 +209,9 @@ const BaniController = ({ onScreenClose, className }) => {
206209
setMiscSlideText,
207210
setIsMiscSlideGurmukhi,
208211
setSavedCrossPlatformId,
212+
lineNumber,
209213
setLineNumber,
214+
updatePane,
210215
);
211216
}, [socketData]);
212217

www/main/addons/bani-controller/hooks/use-socket-listeners.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,16 @@ const useSocketListeners = (
3232
setMiscSlideText,
3333
setIsMiscSlideGurmukhi,
3434
setSavedCrossPlatformId,
35+
lineNumber,
3536
setLineNumber,
37+
updatePane,
3638
) => {
3739
if (socketData) {
3840
const isPinCorrect = parseInt(socketData.pin, 10) === adminPin;
3941
const listenerActions = {
4042
shabad: (payload) => {
4143
changeActiveShabad(payload.shabadId, payload.verseId);
42-
setLineNumber(payload.lineCount);
44+
if (lineNumber !== payload.lineCount) setLineNumber(payload.lineCount);
4345
analytics.trackEvent({
4446
category: 'controller',
4547
action: 'shabad',
@@ -82,6 +84,7 @@ const useSocketListeners = (
8284
setSavedCrossPlatformId(payload.verseId);
8385
}
8486
}
87+
updatePane('bani', payload.baniId);
8588
analytics.trackEvent({
8689
category: 'controller',
8790
action: 'bani',
@@ -101,6 +104,7 @@ const useSocketListeners = (
101104
if (ceremonyId !== payload.ceremonyId) {
102105
setCeremonyId(payload.ceremonyId);
103106
}
107+
updatePane('ceremony', payload.ceremonyId);
104108
analytics.trackEvent({
105109
category: 'controller',
106110
action: 'ceremony',

www/main/navigator/search/hooks/use-new-shabad.jsx

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useStoreActions, useStoreState } from 'easy-peasy';
2+
import updateMultipane from '../utils/update-multipane';
23

34
const remote = require('@electron/remote');
45

@@ -15,12 +16,9 @@ export const useNewShabad = () => {
1516
isMiscSlide,
1617
singleDisplayActiveTab,
1718
searchVerse,
18-
pane1,
19-
pane2,
20-
pane3,
2119
} = useStoreState((state) => state.navigator);
2220

23-
const { currentWorkspace, defaultPaneId } = useStoreState((state) => state.userSettings);
21+
const { currentWorkspace } = useStoreState((state) => state.userSettings);
2422

2523
const {
2624
setActiveShabadId,
@@ -32,60 +30,12 @@ export const useNewShabad = () => {
3230
setIsCeremonyBani,
3331
setSingleDisplayActiveTab,
3432
setSearchVerse,
35-
setPane1,
36-
setPane2,
37-
setPane3,
3833
} = useStoreActions((actions) => actions.navigator);
3934

35+
const updatePane = updateMultipane();
36+
4037
return (newSelectedShabad, newSelectedVerse, newSearchVerse, multiPaneId = false) => {
41-
let shabadPane;
42-
if (currentWorkspace === i18n.t('WORKSPACES.MULTI_PANE')) {
43-
if (!multiPaneId) {
44-
const existingPane =
45-
[pane1, pane2, pane3].findIndex((pane) => pane.activeShabad === newSelectedShabad) + 1;
46-
if (existingPane > 0) {
47-
shabadPane = existingPane;
48-
} else {
49-
shabadPane = defaultPaneId;
50-
}
51-
} else {
52-
shabadPane = multiPaneId;
53-
}
54-
switch (shabadPane) {
55-
case 1:
56-
setPane1({
57-
...pane1,
58-
content: i18n.t('MULTI_PANE.SHABAD'),
59-
activeShabad: newSelectedShabad,
60-
baniType: 'shabad',
61-
versesRead: [newSelectedVerse],
62-
activeVerse: newSelectedVerse,
63-
});
64-
break;
65-
case 2:
66-
setPane2({
67-
...pane2,
68-
content: i18n.t('MULTI_PANE.SHABAD'),
69-
activeShabad: newSelectedShabad,
70-
baniType: 'shabad',
71-
versesRead: [newSelectedVerse],
72-
activeVerse: newSelectedVerse,
73-
});
74-
break;
75-
case 3:
76-
setPane3({
77-
...pane3,
78-
content: i18n.t('MULTI_PANE.SHABAD'),
79-
activeShabad: newSelectedShabad,
80-
baniType: 'shabad',
81-
versesRead: [newSelectedVerse],
82-
activeVerse: newSelectedVerse,
83-
});
84-
break;
85-
default:
86-
break;
87-
}
88-
}
38+
updatePane('shabad', newSelectedShabad, newSelectedVerse, multiPaneId);
8939

9040
if (singleDisplayActiveTab !== 'shabad') {
9141
setSingleDisplayActiveTab('shabad');
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { useStoreActions, useStoreState } from 'easy-peasy';
2+
3+
const remote = require('@electron/remote');
4+
5+
const { i18n } = remote.require('./app');
6+
7+
const updateMultipane = () => {
8+
const { pane1, pane2, pane3 } = useStoreState((state) => state.navigator);
9+
const { setPane1, setPane2, setPane3 } = useStoreActions((actions) => actions.navigator);
10+
const { defaultPaneId, currentWorkspace } = useStoreState((state) => state.userSettings);
11+
12+
const paneMap = {
13+
1: { setPane: setPane1, pane: pane1 },
14+
2: { setPane: setPane2, pane: pane2 },
15+
3: { setPane: setPane3, pane: pane3 },
16+
};
17+
18+
return (baniType, shabadId, verseId, multiPaneId = null) => {
19+
if (currentWorkspace === i18n.t('WORKSPACES.MULTI_PANE')) {
20+
let shabadPane;
21+
if (!multiPaneId) {
22+
const existingPane =
23+
[pane1, pane2, pane3].findIndex((pane) => pane.activeShabad === shabadId) + 1;
24+
if (existingPane > 0) {
25+
shabadPane = existingPane;
26+
} else {
27+
shabadPane = defaultPaneId;
28+
}
29+
} else {
30+
shabadPane = multiPaneId;
31+
}
32+
const { pane, setPane } = paneMap[shabadPane];
33+
let newAttributes;
34+
35+
if (verseId) {
36+
newAttributes = {
37+
...pane,
38+
content: i18n.t('MULTI_PANE.SHABAD'),
39+
activeShabad: shabadId,
40+
baniType,
41+
versesRead: [verseId],
42+
activeVerse: verseId,
43+
};
44+
} else {
45+
newAttributes = {
46+
...pane,
47+
content: i18n.t('MULTI_PANE.SHABAD'),
48+
activeShabad: shabadId,
49+
baniType,
50+
};
51+
}
52+
if (pane !== newAttributes) {
53+
setPane(newAttributes);
54+
}
55+
}
56+
};
57+
};
58+
59+
export default updateMultipane;

www/main/navigator/shabad/ShabadContent.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ const ShabadContent = () => {
501501
live: liveFeed,
502502
}),
503503
);
504-
if (lineNumber !== null && filteredItems[lineNumber - 1].verseId === activeVerseId) {
504+
if (lineNumber !== null && filteredItems[lineNumber - 1]?.verseId === activeVerseId) {
505505
setActiveVerse({ [lineNumber - 1]: activeVerseId });
506506
scrollToVerse(activeVerseId, filteredItems, virtuosoRef);
507507
}

www/main/navigator/shabad/ShabadText.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ export const ShabadText = ({
211211
(isSundarGutkaBani && sundarGutkaBaniId === paneAttributes.activeShabad) ||
212212
(!isSundarGutkaBani && !isCeremonyBani && activeShabadId === paneAttributes.activeShabad)
213213
) {
214-
if (lineNumber !== null && filteredItems[lineNumber - 1].verseId === activeVerseId) {
214+
if (lineNumber !== null && filteredItems[lineNumber - 1]?.verseId === activeVerseId) {
215215
setActiveVerse({ [lineNumber - 1]: activeVerseId });
216216
scrollToVerse(activeVerseId, filteredItems, virtuosoRef);
217217
}

www/src/scss/navigator/common/_pane.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,15 @@
2929
margin: 0;
3030
padding: 0 10px;
3131

32+
.shabad-pane-header {
33+
height: 40px;
34+
}
35+
3236
.shabad-pn {
3337
display: inline-block;
3438
font-size: 1.1rem;
3539
width: 36px;
36-
height: 36px;
40+
height: 40px;
3741
text-align: center;
3842
line-height: 36px;
3943
margin-left:0px;

0 commit comments

Comments
 (0)