Browse Source

remove landing page search bar

Nostr-Signature: 71087b100ce14a1f2eb975be23450c62143ee11a8fd0429ec7440bfea1751741 573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc 695c704503ed1397f6871770ad55822a17a503bcfb71a0db7b3f2477cacb0e767b9f122075b0216f884e41e175c0ac9f9e3d743086a2aa34db4aa1207c900703
main
Silberengel 3 weeks ago
parent
commit
b90d585abb
  1. 1
      nostr/commit-signatures.jsonl
  2. 112
      src/routes/repos/+page.svelte

1
nostr/commit-signatures.jsonl

@ -39,3 +39,4 @@ @@ -39,3 +39,4 @@
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771664339,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","added lightning address copy button"]],"content":"Signed commit: added lightning address copy button","id":"f0973d13a903f64895d265643390fe54bd86fe492a53c3ffea303dad8cf8a2f6","sig":"8c98969c5755bf8742733e05ca4be53f4f3ba276a2445ee7b903e443947fc53808b046c188dd91f26b6dcaecbe93585e1f2539855c8eba57e17a915e81bfa2d4"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771668002,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","finish profile page"]],"content":"Signed commit: finish profile page","id":"8a5aed2f8ac370f781dca9db96ade991c18b7cc3b0d27149d9e2741e8276f16f","sig":"16e9a9242f7c22dab8e37fd9d618419b4d51d7c0156f52c1289e275d2528312f4006696473c6836b5a661425fe0412fe54127291fb9b0d14777f93c8228cffb0"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771669826,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","user badge is a universal hyperlink to the profile page"]],"content":"Signed commit: user badge is a universal hyperlink to the profile page","id":"973a406714e586037d81cca323024ff5e2cc1fbaeda8846f6f2994c3829c4fe0","sig":"e7a58526a3786fc1b9ab1f957c87c13a42d3c2cc95effcf4ce4f4710e01ecc45fcff3ca542c5fa223961d7b99fe336a2851c133aebe3bfc1a591ffe1c34b221a"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771680916,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","fix profile feeds"]],"content":"Signed commit: fix profile feeds","id":"33f33d76f6c79e68fdab72c8fdfc7e1f0ecc53a879a7f5aef02481f17384a06f","sig":"8f9056eab081d66edb693eb35a2e400368aa897746b97ca40a216604dc14ee877eb7f4f16dd2eeac257025b3adfe82e23734c7c106b6cec5e8a1ca661c872cc5"}

112
src/routes/repos/+page.svelte

@ -23,8 +23,6 @@ @@ -23,8 +23,6 @@
let loadingLocal = $state(false);
let error = $state<string | null>(null);
let forkCounts = $state<Map<string, number>>(new Map());
let searchQuery = $state('');
let showOnlyMyContacts = $state(false);
let userPubkey = $state<string | null>(null);
let userPubkeyHex = $state<string | null>(null);
let contactPubkeys = $state<Set<string>>(new Set());
@ -629,94 +627,6 @@ @@ -629,94 +627,6 @@
return urls;
}
function performSearch() {
if (!searchQuery.trim()) {
registeredRepos = [...allRegisteredRepos];
localRepos = [...allLocalRepos];
return;
}
const query = searchQuery.trim().toLowerCase();
// Search registered repos
let registeredToSearch = allRegisteredRepos;
if (showOnlyMyContacts && contactPubkeys.size > 0) {
registeredToSearch = allRegisteredRepos.filter(item => {
const event = item.event;
// Check if owner is in contacts
if (contactPubkeys.has(event.pubkey)) return true;
// Check if any maintainer is in contacts
const maintainerTags = event.tags.filter((t: string[]) => t[0] === 'maintainers');
for (const tag of maintainerTags) {
for (let i = 1; i < tag.length; i++) {
let maintainerPubkey = tag[i];
try {
const decoded = nip19.decode(maintainerPubkey);
if (decoded.type === 'npub') {
maintainerPubkey = decoded.data as string;
}
} catch {
// Assume it's already a hex pubkey
}
if (contactPubkeys.has(maintainerPubkey)) return true;
}
}
return false;
});
}
const registeredResults: Array<{ item: typeof allRegisteredRepos[0]; score: number }> = [];
for (const item of registeredToSearch) {
const repo = item.event;
let score = 0;
const name = getRepoName(repo).toLowerCase();
const dTag = repo.tags.find((t: string[]) => t[0] === 'd')?.[1]?.toLowerCase() || '';
const description = getRepoDescription(repo).toLowerCase();
if (name.includes(query)) score += 100;
if (dTag.includes(query)) score += 100;
if (description.includes(query)) score += 30;
if (score > 0) {
registeredResults.push({ item, score });
}
}
registeredResults.sort((a, b) => b.score - a.score || b.item.event.created_at - a.item.event.created_at);
registeredRepos = registeredResults.map(r => r.item);
// Search local repos
const localResults: Array<{ item: typeof allLocalRepos[0]; score: number }> = [];
for (const item of allLocalRepos) {
let score = 0;
const repoName = item.repoName.toLowerCase();
const announcement = item.announcement;
if (repoName.includes(query)) score += 100;
if (announcement) {
const name = getRepoName(announcement).toLowerCase();
const description = getRepoDescription(announcement).toLowerCase();
if (name.includes(query)) score += 100;
if (description.includes(query)) score += 30;
}
if (score > 0) {
localResults.push({ item, score });
}
}
localResults.sort((a, b) => b.score - a.score || b.item.lastModified - a.item.lastModified);
localRepos = localResults.map(r => r.item);
}
// Reactive search when query or filter changes
$effect(() => {
if (!loading) {
performSearch();
}
});
</script>
<svelte:head>
@ -814,28 +724,6 @@ @@ -814,28 +724,6 @@
</button>
</div>
<div class="search-section">
<div class="search-bar-container">
<input
type="text"
bind:value={searchQuery}
placeholder="Search by name, d-tag, description..."
class="search-input"
disabled={loading}
oninput={performSearch}
/>
</div>
{#if isNIP07Available() && userPubkey}
<label class="filter-checkbox">
<input
type="checkbox"
bind:checked={showOnlyMyContacts}
onchange={performSearch}
/>
<span>Show only my repos and those of my contacts</span>
</label>
{/if}
</div>
{#if error}
<div class="error">

Loading…
Cancel
Save