From 3170aa0215e5a7a547b8ca63e081afba83017810 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 8 May 2022 13:51:21 -0500 Subject: [PATCH] limiting client side toggle tuning although not scalable with more lines --- packages/desktop/src/pages/nirvanaApp.tsx | 11 ++++++++++- .../src/pages/terminal/details/index.tsx | 7 ++++--- packages/desktop/src/pages/terminal/index.tsx | 19 ++++++++++++++++++- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/desktop/src/pages/nirvanaApp.tsx b/packages/desktop/src/pages/nirvanaApp.tsx index e2bdc10..083db25 100644 --- a/packages/desktop/src/pages/nirvanaApp.tsx +++ b/packages/desktop/src/pages/nirvanaApp.tsx @@ -46,7 +46,16 @@ function NirvanaApp() { - + ); diff --git a/packages/desktop/src/pages/terminal/details/index.tsx b/packages/desktop/src/pages/terminal/details/index.tsx index 1542ab1..c102438 100644 --- a/packages/desktop/src/pages/terminal/details/index.tsx +++ b/packages/desktop/src/pages/terminal/details/index.tsx @@ -13,10 +13,11 @@ import { useRecoilState } from "recoil"; export default function LineDetailsTerminal({ selectedLine, + handleToggleTuneToLine, }: { selectedLine?: MasterLineData; + handleToggleTuneToLine: (lineId: string, turnToggleOn: boolean) => void; }) { - const { handleTuneToLine } = useLineDataProvider(); const { data: userDetails } = useGetUserDetails(); console.log("selected line", selectedLine); @@ -75,11 +76,11 @@ export default function LineDetailsTerminal({ }`} onClick={() => isUserToggleTuned - ? handleTuneToLine( + ? handleToggleTuneToLine( selectedLine.lineDetails._id.toString(), false ) - : handleTuneToLine( + : handleToggleTuneToLine( selectedLine.lineDetails._id.toString(), true ) diff --git a/packages/desktop/src/pages/terminal/index.tsx b/packages/desktop/src/pages/terminal/index.tsx index eaf196b..8d5e233 100644 --- a/packages/desktop/src/pages/terminal/index.tsx +++ b/packages/desktop/src/pages/terminal/index.tsx @@ -13,6 +13,7 @@ import { LineMemberState } from "@nirvana/core/models/line.model"; import LineRow from "../../components/lines/lineRow.tsx/index"; import MasterLineData from "@nirvana/core/models/masterLineData.model"; import NewLineModal from "./newLine"; +import toast from "react-hot-toast"; import { useLineDataProvider } from "../../controller/lineDataProvider"; export default function NirvanaTerminal() { @@ -116,6 +117,19 @@ export default function NirvanaTerminal() { [setSelectedLineId, selectedLine] ); + const handleToggleTuneToLine = useCallback( + (lineId: string, turnToggleOn: boolean) => { + if (toggleTunedLines?.length >= 3) { + toast.error("You cannot toggle more than 3 lines!"); + + return; + } + + handleTuneToLine(lineId, turnToggleOn); + }, + [toggleTunedLines, handleTuneToLine] + ); + const handleStartBroadcast = useCallback( (lineId: string) => () => { console.log(`starting broadcast for ${lineId}!!!`); @@ -238,7 +252,10 @@ export default function NirvanaTerminal() { - + );