make current thread bold in watchlist

jschan
Thomas Lynch 2 years ago
parent 9352cda093
commit 3afff61bea
No known key found for this signature in database
GPG Key ID: 36A72F7C62CF8480
  1. 6
      gulp/res/js/watchedthread.js
  2. 7
      gulp/res/js/watchlist.js
  3. 2
      views/mixins/watchedthread.pug

@ -1,5 +1,9 @@
function pug_attr(t,e,n,r){if(!1===e||null==e||!e&&("class"===t||"style"===t))return"";if(!0===e)return" "+(r?t:t+'="'+t+'"');var f=typeof e;return"object"!==f&&"function"!==f||"function"!=typeof e.toJSON||(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=pug_escape(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"}
function pug_classes(s,r){return Array.isArray(s)?pug_classes_array(s,r):s&&"object"==typeof s?pug_classes_object(s):s||""}
function pug_classes_array(r,a){for(var s,e="",u="",c=Array.isArray(a),g=0;g<r.length;g++)(s=pug_classes(r[g]))&&(c&&a[g]&&(s=pug_escape(s)),e=e+u+s,u=" ");return e}
function pug_classes_object(r){var a="",n="";for(var o in r)o&&r[o]&&pug_has_own_property.call(r,o)&&(a=a+n+o,n=" ");return a}
function pug_escape(e){var a=""+e,t=pug_match_html.exec(a);if(!t)return e;var r,c,n,s="";for(r=t.index,c=0;r<a.length;r++){switch(a.charCodeAt(r)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}c!==r&&(s+=a.substring(c,r)),c=r+1,s+=n}return c!==r?s+a.substring(c,r):s}
var pug_has_own_property=Object.prototype.hasOwnProperty;
var pug_match_html=/["&<>]/;function watchedthread(locals) {var pug_html = "", pug_mixins = {}, pug_interp;;
var locals_for_with = (locals || {});
@ -8,7 +12,7 @@ var pug_match_html=/["&<>]/;function watchedthread(locals) {var pug_html = "", p
var block = (this && this.block), attributes = (this && this.attributes) || {};
pug_html = pug_html + "\u003Cdiv" + (" class=\"row watched-thread\""+pug_attr("data-id", `${thread.board}-${thread.postId}`, true, false)+pug_attr("data-unread", (thread.unread||null), true, false)) + "\u003E\u003Ca class=\"close\"\u003E×\u003C\u002Fa\u003E";
const watchedThreadLink = `/${thread.board}/thread/${thread.postId}.html`;
pug_html = pug_html + "\u003Ca" + (pug_attr("href", watchedThreadLink, true, false)) + "\u003E\u002F" + (pug_escape(null == (pug_interp = thread.board) ? "" : pug_interp)) + "\u002F - " + (pug_escape(null == (pug_interp = thread.subject || 'No subject') ? "" : pug_interp)) + "\u003C\u002Fa\u003E\u003Ca" + (pug_attr("href", `${watchedThreadLink}#bottom`, true, false)) + "\u003E[▼]\u003C\u002Fa\u003E\u003C\u002Fdiv\u003E";
pug_html = pug_html + "\u003Ca" + (pug_attr("class", pug_classes([(thread.isCurrentThread ? 'bold' : '')], [true]), false, false)+pug_attr("href", watchedThreadLink, true, false)) + "\u003E\u002F" + (pug_escape(null == (pug_interp = thread.board) ? "" : pug_interp)) + "\u002F - " + (pug_escape(null == (pug_interp = thread.subject || 'No subject') ? "" : pug_interp)) + "\u003C\u002Fa\u003E\u003Ca" + (pug_attr("href", `${watchedThreadLink}#bottom`, true, false)) + "\u003E[▼]\u003C\u002Fa\u003E\u003C\u002Fdiv\u003E";
};
pug_mixins["watchedthread"](watchedthread);
}.call(this, "watchedthread" in locals_for_with ?

@ -10,6 +10,7 @@ class ThreadWatcher {
//read the watchlist map and minimised state from localstorage
this.watchListMap = new Map(JSON.parse(localStorage.getItem('watchlist')));
this.minimised = localStorage.getItem('threadwatcher-minimise') === 'true';
this.threadMatch = window.location.pathname.match(/^\/(\w+)(?:\/manage)?\/thread\/(\d+)\.html$/);
//call the updatehandler when storage changes in another context
window.addEventListener('storage', e => this.storageEventHandler(e));
@ -28,7 +29,6 @@ class ThreadWatcher {
//check if we are in a thread, and setup events for when the tab is focused/unfocused
this.isFocused = document.hasFocus();
this.threadMatch = window.location.pathname.match(/^\/(\w+)(?:\/manage)?\/thread\/(\d+)\.html$/);
if (this.threadMatch !== null) {
window.addEventListener('focus', () => this.focusHandler(this.threadMatch[1], this.threadMatch[2]));
window.addEventListener('blur', () => this.blurHandler());
@ -237,7 +237,10 @@ class ThreadWatcher {
//add the actual row html to the watcher
addRow(board, postId, data) {
const watchListItemHtml = watchedthread({ watchedthread: { board, postId, ...data } });
const isCurrentThread = this.threadMatch != null
&& this.threadMatch[1] === board && this.threadMatch[2] === postId;
console.log(this.threadMatch, isCurrentThread)
const watchListItemHtml = watchedthread({ watchedthread: { board, postId, ...data, isCurrentThread } });
this.threadWatcher.insertAdjacentHTML('beforeend', watchListItemHtml);
const watchedThreadElem = this.threadWatcher.lastChild;
const closeButton = watchedThreadElem.querySelector('.close');

@ -2,5 +2,5 @@ mixin watchedthread(thread)
.row.watched-thread(data-id=`${thread.board}-${thread.postId}` data-unread=(thread.unread||null))
a.close ×
- const watchedThreadLink = `/${thread.board}/thread/${thread.postId}.html`;
a(href=watchedThreadLink) /#{thread.board}/ - #{thread.subject || 'No subject'}
a(class=(thread.isCurrentThread ? 'bold' : '') href=watchedThreadLink) /#{thread.board}/ - #{thread.subject || 'No subject'}
a(href=`${watchedThreadLink}#bottom`) [▼]

Loading…
Cancel
Save