try improve perf by adding condition that new phase only calculated and applied when the item is in view