mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-04-10 23:47:12 +02:00
Add relay hints when opening file events for download
Pass relay hints from the release event's seen relays when opening file metadata events (kind 1063) for download. This ensures the event loader knows where to fetch the file event from. Also adds relay hints to the ReleaseItem component for both opening the release detail and the download file.
This commit is contained in:
@@ -44,12 +44,19 @@ function ReleaseItem({ release }: { release: NostrEvent }) {
|
||||
const version = getReleaseVersion(release);
|
||||
const fileEventId = getReleaseFileEventId(release);
|
||||
|
||||
// Get relay hints from the release event
|
||||
const releaseSeenRelays = getSeenRelays(release);
|
||||
const relayHints = releaseSeenRelays
|
||||
? Array.from(releaseSeenRelays).slice(0, 3)
|
||||
: [];
|
||||
|
||||
const handleClick = () => {
|
||||
addWindow("open", {
|
||||
pointer: {
|
||||
kind: release.kind,
|
||||
pubkey: release.pubkey,
|
||||
identifier: release.tags.find((t) => t[0] === "d")?.[1] || "",
|
||||
relays: relayHints,
|
||||
},
|
||||
});
|
||||
};
|
||||
@@ -57,7 +64,9 @@ function ReleaseItem({ release }: { release: NostrEvent }) {
|
||||
const handleDownload = (e: React.MouseEvent) => {
|
||||
e.stopPropagation();
|
||||
if (fileEventId) {
|
||||
addWindow("open", { pointer: { id: fileEventId } });
|
||||
addWindow("open", {
|
||||
pointer: { id: fileEventId, relays: relayHints },
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -231,8 +240,16 @@ export function ZapstoreAppDetailRenderer({
|
||||
const latestVersion = latestRelease ? getReleaseVersion(latestRelease) : null;
|
||||
|
||||
const handleDownloadLatest = () => {
|
||||
if (latestFileEventId) {
|
||||
addWindow("open", { pointer: { id: latestFileEventId } });
|
||||
if (latestFileEventId && latestRelease) {
|
||||
// Get relay hints from the release event (where we found it)
|
||||
const releaseSeenRelays = getSeenRelays(latestRelease);
|
||||
const relayHints = releaseSeenRelays
|
||||
? Array.from(releaseSeenRelays).slice(0, 3)
|
||||
: relays.slice(0, 3);
|
||||
|
||||
addWindow("open", {
|
||||
pointer: { id: latestFileEventId, relays: relayHints },
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -101,8 +101,16 @@ export function ZapstoreAppRenderer({ event }: BaseEventProps) {
|
||||
|
||||
const handleDownload = (e: React.MouseEvent) => {
|
||||
e.stopPropagation();
|
||||
if (latestFileEventId) {
|
||||
addWindow("open", { pointer: { id: latestFileEventId } });
|
||||
if (latestFileEventId && latestRelease) {
|
||||
// Get relay hints from the release event (where we found it)
|
||||
const releaseSeenRelays = getSeenRelays(latestRelease);
|
||||
const relayHints = releaseSeenRelays
|
||||
? Array.from(releaseSeenRelays).slice(0, 3)
|
||||
: relays.slice(0, 3);
|
||||
|
||||
addWindow("open", {
|
||||
pointer: { id: latestFileEventId, relays: relayHints },
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user