// TODO: This file was created by bulk-decaffeinate.
// Sanity-check the conversion and remove this comment.
/*
 * decaffeinate suggestions:
 * DS101: Remove unnecessary use of Array.from
 * DS102: Remove unnecessary code created because of implicit returns
 * DS205: Consider reworking code to avoid use of IIFEs
 * DS206: Consider reworking classes to avoid initClass
 * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
 */
//= require views/misc/notif

app.views.News = class News extends app.views.Notif {
  static initClass() {
    this.className += " _notif-news";

    this.defautOptions = { autoHide: 30000 };
  }

  init() {
    this.unreadNews = this.getUnreadNews();
    if (this.unreadNews.length) {
      this.show();
    }
    this.markAllAsRead();
  }

  render() {
    this.html(app.templates.notifNews(this.unreadNews));
  }

  getUnreadNews() {
    let time;
    if (!(time = this.getLastReadTime())) {
      return [];
    }

    return (() => {
      const result = [];
      for (var news of Array.from(app.news)) {
        if (new Date(news[0]).getTime() <= time) {
          break;
        }
        result.push(news);
      }
      return result;
    })();
  }

  getLastNewsTime() {
    return new Date(app.news[0][0]).getTime();
  }

  getLastReadTime() {
    return app.settings.get("news");
  }

  markAllAsRead() {
    app.settings.set("news", this.getLastNewsTime());
  }
};
app.views.News.initClass();