diff --git a/client/src/components/Forms/PostFormCard.tsx b/client/src/components/Forms/PostFormCard.tsx index 73a847a..b92c20d 100644 --- a/client/src/components/Forms/PostFormCard.tsx +++ b/client/src/components/Forms/PostFormCard.tsx @@ -32,7 +32,12 @@ const NewNoteCard = ({ const [file, setFile] = useState(""); const [unsigned, setUnsigned] = useState({ kind: 1, - tags: [], + tags: [ + [ + "client", + "getwired.app" + ] + ], content: "", created_at: Math.floor(Date.now() / 1000), pubkey: "", diff --git a/client/src/components/Forms/RepostNote.tsx b/client/src/components/Forms/RepostNote.tsx index 6fdc26a..d9236a0 100644 --- a/client/src/components/Forms/RepostNote.tsx +++ b/client/src/components/Forms/RepostNote.tsx @@ -19,6 +19,7 @@ const RepostNote = ({ const [unsigned] = useState({ kind: 6, tags: [ + ['client', 'getwired.app'], ['e', refEvent.id, 'wss://relay.damus.io'], ['p', refEvent.pubkey] ], diff --git a/client/src/components/Home.tsx b/client/src/components/Home.tsx index 2e19df0..bb8a41a 100644 --- a/client/src/components/Home.tsx +++ b/client/src/components/Home.tsx @@ -32,23 +32,38 @@ const Home = () => { const filterDifficulty = localStorage.getItem("filterDifficulty") || DEFAULT_DIFFICULTY; const [sortByTime, setSortByTime] = useState(localStorage.getItem('sortBy') !== 'false'); const [setAnon, setSetAnon] = useState(localStorage.getItem('anonMode') !== 'false'); - const { noteEvents, metadataEvents } = useUniqEvents(); + const {noteEvents, metadataEvents } = useUniqEvents(); + const [delayedSort, setDelayedSort] = useState(false) - const postEvents = noteEvents + const postEvents: Event[] = noteEvents .filter((event) => verifyPow(event) >= Number(filterDifficulty) && event.kind !== 0 && (event.kind !== 1 || !event.tags.some((tag) => tag[0] === "e")) ) + + // Delayed filtering + useEffect(() => { + const timer = setTimeout(() => { + setDelayedSort(true); + }, 3000); - const sortedEvents = [...postEvents] + return () => clearTimeout(timer); + }, []); + + let sortedEvents = [...postEvents] .sort((a, b) => sortByTime ? b.created_at - a.created_at : verifyPow(b) - verifyPow(a) ) - .filter( - !setAnon ? (e) => !metadataEvents.some((metadataEvent) => metadataEvent.pubkey === e.pubkey) : () => true - ); + if (delayedSort) { + sortedEvents = sortedEvents.filter( + !setAnon ? (e) => !metadataEvents.some((metadataEvent) => metadataEvent.pubkey === e.pubkey) : () => true + ); + } else { + sortedEvents = sortedEvents.filter((e) => setAnon || e.tags.some((tag) => tag[0] === "client" && tag[1] === 'getwired.app')); + } + const toggleSort = useCallback(() => { setSortByTime(prev => { const newValue = !prev;