My short answer is:
I would say the first one.
My long answer is:
Basically, MVP has two options: Passive Viewing and Controlling Presenter
Your pseudo-classes create an implementation of a passive view.
To see the difference: Please check the first answer here . He describes them and distinguishes them perfectly, so I think there is no need to copy the content here.
Reason for my answer:
The basic idea of ββa passive performance is to look as deep as possible. He simply notifies his presenter that some user action has been performed and provides access to accessories and mutators for receiving and setting values ββfrom / in the graphical interface. All this is done to achieve maximum testability at the presentation level.
Based on this, the view should not know that it should provide a value from your text input field when the button is clicked. He just needs to notify the presenter that the button is pressed and set getters for the presenter to collect any user input that he wants.
source share