mirror of
https://github.com/smolgrrr/TAO.git
synced 2024-09-20 09:21:25 +00:00
Merge pull request #16 from smolgrrr/notifications
better namefag filtering
This commit is contained in:
commit
c1986b48c8
@ -32,7 +32,12 @@ const NewNoteCard = ({
|
|||||||
const [file, setFile] = useState("");
|
const [file, setFile] = useState("");
|
||||||
const [unsigned, setUnsigned] = useState<UnsignedEvent>({
|
const [unsigned, setUnsigned] = useState<UnsignedEvent>({
|
||||||
kind: 1,
|
kind: 1,
|
||||||
tags: [],
|
tags: [
|
||||||
|
[
|
||||||
|
"client",
|
||||||
|
"getwired.app"
|
||||||
|
]
|
||||||
|
],
|
||||||
content: "",
|
content: "",
|
||||||
created_at: Math.floor(Date.now() / 1000),
|
created_at: Math.floor(Date.now() / 1000),
|
||||||
pubkey: "",
|
pubkey: "",
|
||||||
|
@ -19,6 +19,7 @@ const RepostNote = ({
|
|||||||
const [unsigned] = useState<UnsignedEvent>({
|
const [unsigned] = useState<UnsignedEvent>({
|
||||||
kind: 6,
|
kind: 6,
|
||||||
tags: [
|
tags: [
|
||||||
|
['client', 'getwired.app'],
|
||||||
['e', refEvent.id, 'wss://relay.damus.io'],
|
['e', refEvent.id, 'wss://relay.damus.io'],
|
||||||
['p', refEvent.pubkey]
|
['p', refEvent.pubkey]
|
||||||
],
|
],
|
||||||
|
@ -32,22 +32,37 @@ const Home = () => {
|
|||||||
const filterDifficulty = localStorage.getItem("filterDifficulty") || DEFAULT_DIFFICULTY;
|
const filterDifficulty = localStorage.getItem("filterDifficulty") || DEFAULT_DIFFICULTY;
|
||||||
const [sortByTime, setSortByTime] = useState<boolean>(localStorage.getItem('sortBy') !== 'false');
|
const [sortByTime, setSortByTime] = useState<boolean>(localStorage.getItem('sortBy') !== 'false');
|
||||||
const [setAnon, setSetAnon] = useState<boolean>(localStorage.getItem('anonMode') !== '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) =>
|
.filter((event) =>
|
||||||
verifyPow(event) >= Number(filterDifficulty) &&
|
verifyPow(event) >= Number(filterDifficulty) &&
|
||||||
event.kind !== 0 &&
|
event.kind !== 0 &&
|
||||||
(event.kind !== 1 || !event.tags.some((tag) => tag[0] === "e"))
|
(event.kind !== 1 || !event.tags.some((tag) => tag[0] === "e"))
|
||||||
)
|
)
|
||||||
|
|
||||||
const sortedEvents = [...postEvents]
|
// Delayed filtering
|
||||||
|
useEffect(() => {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
setDelayedSort(true);
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
|
return () => clearTimeout(timer);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
let sortedEvents = [...postEvents]
|
||||||
.sort((a, b) =>
|
.sort((a, b) =>
|
||||||
sortByTime ? b.created_at - a.created_at : verifyPow(b) - verifyPow(a)
|
sortByTime ? b.created_at - a.created_at : verifyPow(b) - verifyPow(a)
|
||||||
)
|
)
|
||||||
.filter(
|
|
||||||
|
if (delayedSort) {
|
||||||
|
sortedEvents = sortedEvents.filter(
|
||||||
!setAnon ? (e) => !metadataEvents.some((metadataEvent) => metadataEvent.pubkey === e.pubkey) : () => true
|
!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(() => {
|
const toggleSort = useCallback(() => {
|
||||||
setSortByTime(prev => {
|
setSortByTime(prev => {
|
||||||
|
Loading…
Reference in New Issue
Block a user