Both, Citoid and Cite implement an UI to scroll through a list of reference that could be re-used and then add it to the surface when one is selected.
We should be able to create a widget - ideally of type OO.ui.TabPanelLayout - that would help reduce code duplication and could be used in both code bases.
Note:
Cite behaves a bit differently than Citoid when it comes to adding references via re-use. So the handlers executed after selecting an reference from the list are quite different at the moment. In a first iteration we might just want to extract common logic. A follow up then could sync the behavior.