Update: add "isVisibleElement" hook