Merge pull request #16 from smolgrrr/notifications

better namefag filtering
This commit is contained in:
smolgrrr 2023-12-22 19:18:24 +11:00 committed by GitHub
commit c1986b48c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 7 deletions

View File

@ -32,7 +32,12 @@ const NewNoteCard = ({
const [file, setFile] = useState("");
const [unsigned, setUnsigned] = useState<UnsignedEvent>({
kind: 1,
tags: [],
tags: [
[
"client",
"getwired.app"
]
],
content: "",
created_at: Math.floor(Date.now() / 1000),
pubkey: "",

View File

@ -19,6 +19,7 @@ const RepostNote = ({
const [unsigned] = useState<UnsignedEvent>({
kind: 6,
tags: [
['client', 'getwired.app'],
['e', refEvent.id, 'wss://relay.damus.io'],
['p', refEvent.pubkey]
],

View File

@ -32,23 +32,38 @@ const Home = () => {
const filterDifficulty = localStorage.getItem("filterDifficulty") || DEFAULT_DIFFICULTY;
const [sortByTime, setSortByTime] = useState<boolean>(localStorage.getItem('sortBy') !== 'false');
const [setAnon, setSetAnon] = useState<boolean>(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;