interactive intro to open social at-me.zzstoatzz.io

fix: hide "load more" when no more records exist

ATProto API returns a cursor even when fewer records than the limit are
returned. Now we only show "load more" when records.length equals the
page size (10), indicating there may be more records to fetch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+4 -2
+4 -2
src/view/visualization.js
··· 389 `; 390 }).join(''); 391 392 - if (data.cursor) { 393 recordsHtml += `<button class="load-more" data-cursor="${data.cursor}" data-lexicon="${lexicon}">load more</button>`; 394 } 395 ··· 431 e.target.remove(); 432 recordsView.insertAdjacentHTML('beforeend', moreHtml); 433 434 - if (moreData.cursor) { 435 recordsView.insertAdjacentHTML('beforeend', 436 `<button class="load-more" data-cursor="${moreData.cursor}" data-lexicon="${lex}">load more</button>` 437 );
··· 389 `; 390 }).join(''); 391 392 + // Only show "load more" if we got a full page of results (meaning there might be more) 393 + if (data.cursor && data.records.length === 10) { 394 recordsHtml += `<button class="load-more" data-cursor="${data.cursor}" data-lexicon="${lexicon}">load more</button>`; 395 } 396 ··· 432 e.target.remove(); 433 recordsView.insertAdjacentHTML('beforeend', moreHtml); 434 435 + // Only show "load more" if we got a full page of results 436 + if (moreData.cursor && moreData.records.length === 10) { 437 recordsView.insertAdjacentHTML('beforeend', 438 `<button class="load-more" data-cursor="${moreData.cursor}" data-lexicon="${lex}">load more</button>` 439 );