Submit TMP_InputField with a single submit keypress?

How do I make it so when I hit submit on a unity TMP_InputField that it submits the field, as in calls whatever submit method?

Currently I am using the ISubmitHandler interface but it does not submit when you hit submit the first time, because the first ‘submit’ press instead calls OnEndEdit, and then the SECOND press of submit calls OnSubmit.

OnEndEdit which I cannot use because OnEndEdit is ALSO called when you deselect the TMP_Inputfield, which I do not want to always submit the field every time it gets deselected

The problem I need to find a work around for is: TMP_InputField, you hit ‘Submit’ (in this context, Enter key on a keyboard) The first press calls OnEndEdit of the field, but doesn’t call the EventSystem ISubmitHandler OnSubmit method Unity - Scripting API: ISubmitHandler

Only on a second subsequent press does OnSubmit get called. I want to call my own code and advance the game state on submit, simultaneously with ending edit of the input field. The problem is that I cannot just use OnEndEdit directly because OnEndEdit is also called when you Deselect the TMP_InputField, and there is no possible way I can find to differentiate if the OnEndEdit was called by deselection of the field or from pressing submit callback from the EventSystem

I have not been able to find any solution for this that allows me to make the TMP_InputField work like any other normal system text input field, eg; hitting enter once sends it, deselecting does not send it. and its not really reasonable to ask the end user to just hit enter twice in my mind, just because I have not been able to figure out how to make it work on a single OnSubmit.