>({});
const debouncedHandleRemarkChange = useCallback(
@@ -97,6 +106,60 @@ export default function DepartureTable({
[onFlightChange]
);
+ const debouncedHandleCallsignChange = useCallback(
+ (flightId: string | number, callsign: string) => {
+ setCallsignValues((prev) => ({ ...prev, [flightId]: callsign }));
+
+ if (debounceTimeouts.current[flightId]) {
+ clearTimeout(debounceTimeouts.current[flightId]);
+ }
+
+ debounceTimeouts.current[flightId] = setTimeout(() => {
+ if (onFlightChange) {
+ onFlightChange(flightId, { callsign });
+ }
+ delete debounceTimeouts.current[flightId];
+ }, 500);
+ },
+ [onFlightChange]
+ );
+
+ const debouncedHandleStandChange = useCallback(
+ (flightId: string | number, stand: string) => {
+ setStandValues((prev) => ({ ...prev, [flightId]: stand }));
+
+ if (debounceTimeouts.current[flightId]) {
+ clearTimeout(debounceTimeouts.current[flightId]);
+ }
+
+ debounceTimeouts.current[flightId] = setTimeout(() => {
+ if (onFlightChange) {
+ onFlightChange(flightId, { stand });
+ }
+ delete debounceTimeouts.current[flightId];
+ }, 500);
+ },
+ [onFlightChange]
+ );
+
+ const debouncedHandleSquawkChange = useCallback(
+ (flightId: string | number, squawk: string) => {
+ setSquawkValues((prev) => ({ ...prev, [flightId]: squawk }));
+
+ if (debounceTimeouts.current[flightId]) {
+ clearTimeout(debounceTimeouts.current[flightId]);
+ }
+
+ debounceTimeouts.current[flightId] = setTimeout(() => {
+ if (onFlightChange) {
+ onFlightChange(flightId, { squawk });
+ }
+ delete debounceTimeouts.current[flightId];
+ }, 500);
+ },
+ [onFlightChange]
+ );
+
const handleHideFlight = async (flightId: string | number) => {
if (onFlightChange) {
onFlightChange(flightId, { hidden: true });
@@ -124,27 +187,6 @@ export default function DepartureTable({
debouncedHandleRemarkChange(flightId, remark);
};
- const handleCallsignChange = (
- flightId: string | number,
- callsign: string
- ) => {
- if (onFlightChange) {
- onFlightChange(flightId, { callsign });
- }
- };
-
- const handleStandChange = (flightId: string | number, stand: string) => {
- if (onFlightChange) {
- onFlightChange(flightId, { stand });
- }
- };
-
- const handleSquawkChange = (flightId: string | number, squawk: string) => {
- if (onFlightChange) {
- onFlightChange(flightId, { squawk });
- }
- };
-
const handleArrivalChange = (flightId: string | number, arrival: string) => {
if (onFlightChange) {
onFlightChange(flightId, { arrival });
@@ -242,12 +284,12 @@ export default function DepartureTable({
const handleRegenerateSquawk = (flightId: string | number) => {
const newSquawk = generateRandomSquawk();
+ setSquawkValues((prev) => ({ ...prev, [flightId]: newSquawk }));
if (onFlightChange) {
onFlightChange(flightId, { squawk: newSquawk });
}
};
- // when rendering mobile variant
if (isMobile) {
return (
<>
@@ -402,9 +444,11 @@ export default function DepartureTable({
{departureColumns.callsign !== false && (
- handleCallsignChange(flight.id, value)
+ debouncedHandleCallsignChange(flight.id, value)
}
className="bg-transparent border-none focus:bg-gray-800 px-1 rounded text-white"
placeholder="-"
@@ -426,9 +470,9 @@ export default function DepartureTable({
{departureColumns.stand !== false && (
- handleStandChange(flight.id, value)
+ debouncedHandleStandChange(flight.id, value)
}
className="bg-transparent border-none focus:bg-gray-800 px-1 rounded text-white"
placeholder="-"
@@ -531,9 +575,11 @@ export default function DepartureTable({
- handleSquawkChange(flight.id, value)
+ debouncedHandleSquawkChange(flight.id, value)
}
className="bg-transparent border-none focus:bg-gray-800 px-1 rounded text-white w-full min-w-0"
placeholder="-"
@@ -571,7 +617,7 @@ export default function DepartureTable({
flight.id,
!isClearanceChecked(flight.clearance)
)
- } // or: onToggleClearance(flight.id)
+ }
label=""
checkedClass="bg-green-600 border-green-600"
flashing={isFlashing}
diff --git a/src/components/tools/ChatSidebar.tsx b/src/components/tools/ChatSidebar.tsx
index ef06cce..3f12b4f 100644
--- a/src/components/tools/ChatSidebar.tsx
+++ b/src/components/tools/ChatSidebar.tsx
@@ -190,12 +190,6 @@ export default function ChatSidebar({
Session Chat
-
-
-
- {activeChatUsers.length} online
-
-
| | |