Skip to content

Commit 3104ad0

Browse files
committed
Update PDCModal.tsx
1 parent 511f4fa commit 3104ad0

1 file changed

Lines changed: 19 additions & 20 deletions

File tree

src/components/tools/PDCModal.tsx

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,21 @@ const PDCModal: React.FC<PDCModalProps> = ({ isOpen, onClose, flight, onIssuePDC
4040
).join('');
4141
};
4242

43+
// Helper function that takes squawk as parameter (like Java)
44+
const generateIdentifier = (squawk: string, callsign?: string): string => {
45+
const firstThreeNumbers = squawk.substring(0, 3);
46+
47+
let firstLetter = 'A';
48+
if (callsign) {
49+
const letters = callsign.match(/[A-Z]/i);
50+
if (letters && letters.length > 0) {
51+
firstLetter = letters[0].toUpperCase();
52+
}
53+
}
54+
55+
return firstThreeNumbers + firstLetter;
56+
};
57+
4358
const [autoSquawk] = useState(() => generateRandomSquawk());
4459

4560
useEffect(() => {
@@ -135,25 +150,9 @@ const PDCModal: React.FC<PDCModalProps> = ({ isOpen, onClose, flight, onIssuePDC
135150
return flight?.squawk || autoSquawk;
136151
};
137152

138-
const [autoIdentifier] = useState(() => {
139-
// Generate identifier from squawk and callsign
140-
const squawk = getSquawk();
141-
const firstThreeNumbers = squawk.substring(0, 3);
142-
143-
let firstLetter = 'A';
144-
if (flight?.callsign) {
145-
const letters = flight.callsign.match(/[A-Z]/i);
146-
if (letters && letters.length > 0) {
147-
firstLetter = letters[0].toUpperCase();
148-
}
149-
}
150-
151-
return firstThreeNumbers + firstLetter;
152-
});
153-
154-
const getIdentifier = (): string => {
153+
const getIdentifier = (squawk: string): string => {
155154
if (useCustomIdentifier && customIdentifier) return customIdentifier;
156-
return autoIdentifier;
155+
return generateIdentifier(squawk, flight?.callsign);
157156
};
158157

159158
const getEquipment = (): string => {
@@ -183,7 +182,7 @@ const PDCModal: React.FC<PDCModalProps> = ({ isOpen, onClose, flight, onIssuePDC
183182
if (!flight) return '';
184183

185184
const squawk = getSquawk();
186-
const identifier = getIdentifier();
185+
const identifier = getIdentifier(squawk);
187186
const equipment = getEquipment();
188187
const sidText = flight.sid || 'DCT';
189188
const freqs = getFrequencies();
@@ -552,7 +551,7 @@ IDENTIFIER: ${identifier}`;
552551
value={
553552
useCustomIdentifier
554553
? customIdentifier
555-
: autoIdentifier
554+
: getIdentifier(getSquawk())
556555
}
557556
onChange={handleIdentifierChange}
558557
placeholder="e.g. AB12"

0 commit comments

Comments
 (0)