@@ -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