71 lines
2.9 KiB
Text
71 lines
2.9 KiB
Text
<% title "Notifications" %>
|
|
|
|
<%= content_for :page_meta do %>
|
|
<link rel="canonical" href="<%= app_url("/notifications") %>" />
|
|
<meta name="description" content="Notifications inbox for <%= community_name %>">
|
|
<%= meta_keywords_default %>
|
|
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:url" content="<%= app_url("/notifications") %>" />
|
|
<meta property="og:title" content="Notifications - <%= community_name %>" />
|
|
<meta property="og:description" content="Notifications inbox for <%= community_name %>" />
|
|
<meta property="og:site_name" content="<%= community_name %>" />
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
|
|
<meta name="twitter:title" content="Notifications - <%= community_name %>">
|
|
<meta name="twitter:description" content="Notifications inbox for <%= community_name %>">
|
|
<% end %>
|
|
|
|
<script>
|
|
/**
|
|
* A script that tracks clicks for welcome notifications.
|
|
* The notification must have `trackNotification` as its onclick event
|
|
* in order for this to be triggered.
|
|
*
|
|
* @param {Event} The click event on the notification.
|
|
*/
|
|
function trackNotification(event) {
|
|
const target = event.target;
|
|
const { parentElement: { id: title }, text } = target;
|
|
|
|
// TODO: [@forem/delightful]: This event doesn't appear to be firing on Honeybadger.
|
|
// We probably want to remove it eventually if we continually don't see it being triggered.
|
|
if (!title) {
|
|
Honeybadger.notify(`Could not find parentElement.id when clicking on event target text: ${text}`);
|
|
}
|
|
|
|
ahoy.track("Clicked Welcome Notification", { title, text, target: target.toString() });
|
|
}
|
|
</script>
|
|
|
|
<% if user_signed_in? %>
|
|
<main id="main-content">
|
|
<header class="crayons-layout crayons-layout--limited-l crayons-layout--1-col p-4 flex items-center justify-between">
|
|
<h1 class="crayons-title">Notifications</h1>
|
|
<a href="<%= user_settings_path(tab: :notifications) %>" class="crayons-btn crayons-btn--ghost">Settings</a>
|
|
</header>
|
|
|
|
<div class="crayons-layout crayons-layout--limited-l crayons-layout--2-cols pt-0" id="notifications-container">
|
|
<div class="crayons-layout__sidebar-left">
|
|
<%= render "notifications/nav_menu" %>
|
|
</div>
|
|
<main class="crayons-layout__content">
|
|
<div id="articles-list">
|
|
<%= render "notifications_list", params: params %>
|
|
</div>
|
|
|
|
<%# new or less active users that don't have a page worth of notifications
|
|
won't be shown the "load more" button %>
|
|
<% if @notifications.size >= @initial_page_size %>
|
|
<button id="load-more-button" type="button" class="crayons-btn crayons-btn--secondary crayons-btn--l my-6 w-100">
|
|
Load More
|
|
</button>
|
|
<% end %>
|
|
</main>
|
|
</div>
|
|
<%= render "articles/fitvids" %>
|
|
</main>
|
|
<% else %>
|
|
<%= render "devise/registrations/registration_form" %>
|
|
<% end %>
|