Seafarer Support | Help Center
(function () {
'use strict';
// Only run on the KB root page
if (!/\/kb\/seafarer-support\/?$/.test(window.location.pathname)) return;
var CATEGORY_ID = '233149000000358041';
var MAX_WAIT_MS = 10000;
var POLL_INTERVAL_MS = 200;
var elapsed = 0;
function getStore() {
if (window.reduxStore) return window.reduxStore;
if (window._store) return window._store;
var all = document.querySelectorAll('*');
for (var i = 0; i < all.length; i++) {
var keys = Object.keys(all[i]);
for (var j = 0; j < keys.length; j++) {
if (keys[j].indexOf('__reactContainer') === 0) {
try { return all[i][keys[j]].child.memoizedProps.store; } catch (e) {}
}
}
}
return null;
}
function getPortalId() {
var resources = window.performance.getEntriesByType('resource');
for (var i = 0; i < resources.length; i++) {
var m = resources[i].name.match(/portalId=([^&]+)/);
if (m) return m[1];
}
return null;
}
var timer = setInterval(function () {
elapsed += POLL_INTERVAL_MS;
if (elapsed > MAX_WAIT_MS) { clearInterval(timer); return; }
var store = getStore();
if (!store) return;
var kb = store.getState().KBUIState;
if (!kb || !kb.subCategoryWithArticles || kb.subCategoryWithArticles.length === 0) return;
if (!kb.isNext) { clearInterval(timer); return; }
clearInterval(timer);
var portalId = getPortalId();
if (!portalId) return;
var base = window.location.origin + '/portal/api/kbCategory/' +
CATEGORY_ID + '/articles?portalId=' + portalId;
Promise.all([
fetch(base + '&from=1&limit=9').then(function (r) { return r.json(); }),
fetch(base + '&from=10&limit=9').then(function (r) { return r.json(); })
]).then(function (results) {
var sections = Object.values(results[0].data).concat(Object.values(results[1].data));
if (!sections.length) return;
store.dispatch({
type: 'KB_SUB_CATEGORIES_WITH_ARTICLES_BY_CATEGORY_SUCCESS',
data: { list: sections, categoryId: CATEGORY_ID, isNext: false, page: 1 }
});
}).catch(function () {});
}, POLL_INTERVAL_MS);
})();