mirror of
https://github.com/aljazceru/hypergolic.git
synced 2025-12-18 22:14:21 +01:00
Problem: most important rockets not shown on top /rockets
This commit is contained in:
@@ -13,28 +13,51 @@
|
||||
_rockets?.unsubscribe();
|
||||
});
|
||||
|
||||
let rockets = derived(_rockets, ($rockets)=>{
|
||||
let _r = new Map<string, Rocket>()
|
||||
let rockets = derived(_rockets, ($rockets) => {
|
||||
let _r = new Map<string, Rocket>();
|
||||
|
||||
for (let e of $rockets) {
|
||||
let existing = _r.get(`${e.pubkey}${e.dTag}`)
|
||||
let existing = _r.get(`${e.pubkey}${e.dTag}`);
|
||||
if (!existing) {
|
||||
existing = new Rocket(e)
|
||||
existing = new Rocket(e);
|
||||
}
|
||||
if (existing.Event.created_at <= e.created_at) {
|
||||
_r.set(`${e.pubkey}${e.dTag}`, existing)
|
||||
const existingCreatedAt = existing.Event?.created_at ?? 0;
|
||||
const newCreatedAt = e.created_at ?? 0;
|
||||
|
||||
if (existingCreatedAt <= newCreatedAt) {
|
||||
_r.set(`${e.pubkey}${e.dTag}`, existing);
|
||||
}
|
||||
}
|
||||
return Array.from(_r, ([_, r])=>{return r})
|
||||
})
|
||||
|
||||
|
||||
let rocketArray = Array.from(_r.values());
|
||||
|
||||
rocketArray.sort((a, b) => {
|
||||
// First condition: "Nostrocket" at the top
|
||||
if (a.Name() === 'Nostrocket') return -1;
|
||||
if (b.Name() === 'Nostrocket') return 1;
|
||||
|
||||
// Second condition: "test" rockets grouped underneath
|
||||
const aIsTest = a.Name().toLowerCase().includes('test');
|
||||
const bIsTest = b.Name().toLowerCase().includes('test');
|
||||
if (aIsTest && !bIsTest) return 1;
|
||||
if (!aIsTest && bIsTest) return -1;
|
||||
|
||||
// Default sorting by created_at, handling undefined
|
||||
const aCreatedAt = a.Event?.created_at ?? 0;
|
||||
const bCreatedAt = b.Event?.created_at ?? 0;
|
||||
return aCreatedAt - bCreatedAt;
|
||||
});
|
||||
|
||||
return rocketArray;
|
||||
});
|
||||
|
||||
//todo: until we have namerocket working, just manually dedupe rockets based on my pubkey
|
||||
//todo: write a recognizer/validator for rocket events
|
||||
</script>
|
||||
|
||||
<Heading title="Rockets" />
|
||||
{#if rockets && $rockets}
|
||||
<AssociateBitcoinAddress {rockets} />
|
||||
<AssociateBitcoinAddress {rockets} />
|
||||
<Todo text={['render these in a nicer way, maybe a grid or something']} />
|
||||
|
||||
{#each $rockets as rocket (`${rocket.Event.pubkey}${rocket.Name()}`)}
|
||||
|
||||
Reference in New Issue
Block a user