Skip to content

Commit

Permalink
Merge pull request #1993 from KhalisFoundation/dev
Browse files Browse the repository at this point in the history
Beta release v9.2.2
  • Loading branch information
Gauravjeetsingh committed Jul 4, 2024
2 parents 6385123 + d780d29 commit 3c62036
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 59 deletions.
5 changes: 5 additions & 0 deletions www/main/addons/bani-controller/components/BaniController.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import QrCode from './QrCode';
import ConnectionSwitch from './ConnectionSwitch';
import ZoomController from './ZoomController';
import useSocketListeners from '../hooks/use-socket-listeners';
import updateMultipane from '../../../navigator/search/utils/update-multipane';

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

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

const changeActiveShabad = useNewShabad();
const updatePane = updateMultipane();

// Local State
const [codeLabel, setCodeLabel] = useState('');
Expand Down Expand Up @@ -58,6 +60,7 @@ const BaniController = ({ onScreenClose, className }) => {
miscSlideText,
isMiscSlideGurmukhi,
savedCrossPlatformId,
lineNumber,
} = useStoreState((state) => state.navigator);

const {
Expand Down Expand Up @@ -206,7 +209,9 @@ const BaniController = ({ onScreenClose, className }) => {
setMiscSlideText,
setIsMiscSlideGurmukhi,
setSavedCrossPlatformId,
lineNumber,
setLineNumber,
updatePane,
);
}, [socketData]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,16 @@ const useSocketListeners = (
setMiscSlideText,
setIsMiscSlideGurmukhi,
setSavedCrossPlatformId,
lineNumber,
setLineNumber,
updatePane,
) => {
if (socketData) {
const isPinCorrect = parseInt(socketData.pin, 10) === adminPin;
const listenerActions = {
shabad: (payload) => {
changeActiveShabad(payload.shabadId, payload.verseId);
setLineNumber(payload.lineCount);
if (lineNumber !== payload.lineCount) setLineNumber(payload.lineCount);
analytics.trackEvent({
category: 'controller',
action: 'shabad',
Expand Down Expand Up @@ -82,6 +84,7 @@ const useSocketListeners = (
setSavedCrossPlatformId(payload.verseId);
}
}
updatePane('bani', payload.baniId);
analytics.trackEvent({
category: 'controller',
action: 'bani',
Expand All @@ -101,6 +104,7 @@ const useSocketListeners = (
if (ceremonyId !== payload.ceremonyId) {
setCeremonyId(payload.ceremonyId);
}
updatePane('ceremony', payload.ceremonyId);
analytics.trackEvent({
category: 'controller',
action: 'ceremony',
Expand Down
60 changes: 5 additions & 55 deletions www/main/navigator/search/hooks/use-new-shabad.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useStoreActions, useStoreState } from 'easy-peasy';
import updateMultipane from '../utils/update-multipane';

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

Expand All @@ -15,12 +16,9 @@ export const useNewShabad = () => {
isMiscSlide,
singleDisplayActiveTab,
searchVerse,
pane1,
pane2,
pane3,
} = useStoreState((state) => state.navigator);

const { currentWorkspace, defaultPaneId } = useStoreState((state) => state.userSettings);
const { currentWorkspace } = useStoreState((state) => state.userSettings);

const {
setActiveShabadId,
Expand All @@ -32,60 +30,12 @@ export const useNewShabad = () => {
setIsCeremonyBani,
setSingleDisplayActiveTab,
setSearchVerse,
setPane1,
setPane2,
setPane3,
} = useStoreActions((actions) => actions.navigator);

const updatePane = updateMultipane();

return (newSelectedShabad, newSelectedVerse, newSearchVerse, multiPaneId = false) => {
let shabadPane;
if (currentWorkspace === i18n.t('WORKSPACES.MULTI_PANE')) {
if (!multiPaneId) {
const existingPane =
[pane1, pane2, pane3].findIndex((pane) => pane.activeShabad === newSelectedShabad) + 1;
if (existingPane > 0) {
shabadPane = existingPane;
} else {
shabadPane = defaultPaneId;
}
} else {
shabadPane = multiPaneId;
}
switch (shabadPane) {
case 1:
setPane1({
...pane1,
content: i18n.t('MULTI_PANE.SHABAD'),
activeShabad: newSelectedShabad,
baniType: 'shabad',
versesRead: [newSelectedVerse],
activeVerse: newSelectedVerse,
});
break;
case 2:
setPane2({
...pane2,
content: i18n.t('MULTI_PANE.SHABAD'),
activeShabad: newSelectedShabad,
baniType: 'shabad',
versesRead: [newSelectedVerse],
activeVerse: newSelectedVerse,
});
break;
case 3:
setPane3({
...pane3,
content: i18n.t('MULTI_PANE.SHABAD'),
activeShabad: newSelectedShabad,
baniType: 'shabad',
versesRead: [newSelectedVerse],
activeVerse: newSelectedVerse,
});
break;
default:
break;
}
}
updatePane('shabad', newSelectedShabad, newSelectedVerse, multiPaneId);

if (singleDisplayActiveTab !== 'shabad') {
setSingleDisplayActiveTab('shabad');
Expand Down
59 changes: 59 additions & 0 deletions www/main/navigator/search/utils/update-multipane.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { useStoreActions, useStoreState } from 'easy-peasy';

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

const { i18n } = remote.require('./app');

const updateMultipane = () => {
const { pane1, pane2, pane3 } = useStoreState((state) => state.navigator);
const { setPane1, setPane2, setPane3 } = useStoreActions((actions) => actions.navigator);
const { defaultPaneId, currentWorkspace } = useStoreState((state) => state.userSettings);

const paneMap = {
1: { setPane: setPane1, pane: pane1 },
2: { setPane: setPane2, pane: pane2 },
3: { setPane: setPane3, pane: pane3 },
};

return (baniType, shabadId, verseId, multiPaneId = null) => {
if (currentWorkspace === i18n.t('WORKSPACES.MULTI_PANE')) {
let shabadPane;
if (!multiPaneId) {
const existingPane =
[pane1, pane2, pane3].findIndex((pane) => pane.activeShabad === shabadId) + 1;
if (existingPane > 0) {
shabadPane = existingPane;
} else {
shabadPane = defaultPaneId;
}
} else {
shabadPane = multiPaneId;
}
const { pane, setPane } = paneMap[shabadPane];
let newAttributes;

if (verseId) {
newAttributes = {
...pane,
content: i18n.t('MULTI_PANE.SHABAD'),
activeShabad: shabadId,
baniType,
versesRead: [verseId],
activeVerse: verseId,
};
} else {
newAttributes = {
...pane,
content: i18n.t('MULTI_PANE.SHABAD'),
activeShabad: shabadId,
baniType,
};
}
if (pane !== newAttributes) {
setPane(newAttributes);
}
}
};
};

export default updateMultipane;
2 changes: 1 addition & 1 deletion www/main/navigator/shabad/ShabadContent.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ const ShabadContent = () => {
live: liveFeed,
}),
);
if (lineNumber !== null && filteredItems[lineNumber - 1].verseId === activeVerseId) {
if (lineNumber !== null && filteredItems[lineNumber - 1]?.verseId === activeVerseId) {
setActiveVerse({ [lineNumber - 1]: activeVerseId });
scrollToVerse(activeVerseId, filteredItems, virtuosoRef);
}
Expand Down
2 changes: 1 addition & 1 deletion www/main/navigator/shabad/ShabadText.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ export const ShabadText = ({
(isSundarGutkaBani && sundarGutkaBaniId === paneAttributes.activeShabad) ||
(!isSundarGutkaBani && !isCeremonyBani && activeShabadId === paneAttributes.activeShabad)
) {
if (lineNumber !== null && filteredItems[lineNumber - 1].verseId === activeVerseId) {
if (lineNumber !== null && filteredItems[lineNumber - 1]?.verseId === activeVerseId) {
setActiveVerse({ [lineNumber - 1]: activeVerseId });
scrollToVerse(activeVerseId, filteredItems, virtuosoRef);
}
Expand Down
6 changes: 5 additions & 1 deletion www/src/scss/navigator/common/_pane.scss
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,15 @@
margin: 0;
padding: 0 10px;

.shabad-pane-header {
height: 40px;
}

.shabad-pn {
display: inline-block;
font-size: 1.1rem;
width: 36px;
height: 36px;
height: 40px;
text-align: center;
line-height: 36px;
margin-left:0px;
Expand Down

0 comments on commit 3c62036

Please sign in to comment.