mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-05-31 01:14:11 +00:00
feat: shareable URLs for channels — update URL on selection, accept route param
- selectChannel updates URL to #/channels/<hash> - init accepts routeParam and auto-selects channel - Search results use new URL format instead of ?ch= query param
This commit is contained in:
+1
-1
@@ -464,7 +464,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
||||
const chList = Array.isArray(channels) ? channels : [];
|
||||
for (const c of chList) {
|
||||
if (c.name && c.name.toLowerCase().includes(q.toLowerCase())) {
|
||||
html += `<div class="search-result-item" onclick="location.hash='#/channels?ch=${c.channel_hash}';document.getElementById('searchOverlay').classList.add('hidden')">
|
||||
html += `<div class="search-result-item" onclick="location.hash='#/channels/${c.channel_hash}';document.getElementById('searchOverlay').classList.add('hidden')">
|
||||
<span class="search-result-type">Channel</span>${c.name}</div>`;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-2
@@ -211,7 +211,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
function init(app) {
|
||||
function init(app, routeParam) {
|
||||
app.innerHTML = `<div class="ch-layout">
|
||||
<div class="ch-sidebar" aria-label="Channel list">
|
||||
<div class="ch-sidebar-header">
|
||||
@@ -235,7 +235,9 @@
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
loadChannels();
|
||||
loadChannels().then(() => {
|
||||
if (routeParam) selectChannel(routeParam);
|
||||
});
|
||||
|
||||
// #89: Sidebar resize handle
|
||||
(function () {
|
||||
@@ -438,6 +440,7 @@
|
||||
|
||||
async function selectChannel(hash) {
|
||||
selectedHash = hash;
|
||||
history.replaceState(null, '', `#/channels/${hash}`);
|
||||
renderChannelList();
|
||||
const ch = channels.find(c => c.hash === hash);
|
||||
const name = ch?.name || `Channel ${hash}`;
|
||||
|
||||
Reference in New Issue
Block a user