Временная метка таймлайна не обновляется

Не могу не заметить:

После обновления оно обновляется. Но было бы логичнее, если бы оно соответствовало временной метке поста, которая обновляется без перезагрузки.

2 лайка

Интересный момент, может быть связано с нашим движением glimmer @isaac

3 лайка

Изучая старую реализацию, я задаюсь вопросом, была ли это проблема и раньше…

      const bottomAge = relativeAge(
        new Date(topic.last_posted_at || topic.created_at),
        {
          addAgo: true,
          defaultFormat: timelineDate,
        }
      );
      const scroller = [
        h(
          "div.timeline-date-wrapper",
          this.attach("link", {
            className: "now-date",
            rawLabel: bottomAge,
            action: "jumpBottom",
          })
        ),
      ];

Это вызывалось в функции html() виджета, и похоже, что у нас нет никаких механизмов для обновления этого значения по мере прохождения времени.

Очевидно, что желаемая функциональность — обновлять bottomAge с новой датой при создании поста, а затем продолжать обновлять его автоматически по мере прохождения времени. То, что мы можем сделать прямо сейчас, — это добавить функцию в

и обновлять bottomAge при прокрутке, но на практике это кажется немного странным. Еще одна проблема с этой идеей заключается в том, что трудно синхронизировать время обновления даты на последнем посте с обновлением даты bottomAge на временной шкале темы. Относительное поле created_at в посте отстает примерно на 10 секунд… создавая несоответствие между

когда вы прокручиваете.

В идеале мы должны отслеживать относительную дату создания поста created_at и просто вставлять её в временную шкалу, но я не знаю, возможно ли это в данный момент.

@david, есть ли у тебя какие-либо идеи?

2 лайка

Да, это было бы идеально :+1:

Если использовать правильную HTML-структуру, автоматическое обновление со временем может быть обрабатано автоматически нашим хелпером относительных дат.

Для обработки изменений значения topic.last_posted_at мы должны иметь возможность полагаться на реактивность Glimmer, а не выполнять действия при прокрутке. Например:

get bottomAge(){
  return this.args.topic.get("last_posted_at") || this.args.topic.get("created_at");
}

А затем в HBS мы можем использовать наш хелпер относительного возраста, чтобы отобразить его в правильной структуре для автоматического обновления:

{{age-with-tooltip this.bottomAge}}

Возможно, потребуется внести некоторые улучшения в хелпер, чтобы он поддерживал параметры ‘addAgo’ и ‘defaultFormat’?

1 лайк

Это будет исправлено через

5 лайков