Вадим, не, так-то лаг чувствуется, если вглядываться, всё же в первую очередь это дело привычки. Тут как с герцовкой монитора, 60Гц тебе будут казаться высокоскоростной частотой обновления, пока не попробуешь 120+Гц.
Василий Васильков, ах, ты его в реф передаёшь, не заметил. Так вот, в реф надо передавать, внезапно, реф, а не андефайнд. А у тебя реф массива, а не массив рефов.
Может есть возможность чуть подтолкнуть к реализации
Да, конечно: при загрузке станицы сохранить текущее время (сделал через localStorage), далее после обновления страницы через 30 минут, взять старое значение (прочитать из LocalStorage) и сравнить с новым значением времени и если время изменилось на 30 минут, обновить данные.