fix: note creator tagging
This commit is contained in:
parent
f425830678
commit
e9fd593468
@ -9,7 +9,7 @@ import TextareaAutosize from "react-textarea-autosize";
|
|||||||
import Avatar from "@/Components/User/Avatar";
|
import Avatar from "@/Components/User/Avatar";
|
||||||
import Nip05 from "@/Components/User/Nip05";
|
import Nip05 from "@/Components/User/Nip05";
|
||||||
import { FuzzySearchResult } from "@/Db/FuzzySearch";
|
import { FuzzySearchResult } from "@/Db/FuzzySearch";
|
||||||
import { userSearch } from "@/Hooks/useProfileSearch";
|
import useProfileSearch from "@/Hooks/useProfileSearch";
|
||||||
import searchEmoji from "@/Utils/emoji-search";
|
import searchEmoji from "@/Utils/emoji-search";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
@ -58,6 +58,7 @@ interface TextareaProps {
|
|||||||
|
|
||||||
const Textarea = (props: TextareaProps) => {
|
const Textarea = (props: TextareaProps) => {
|
||||||
const { formatMessage } = useIntl();
|
const { formatMessage } = useIntl();
|
||||||
|
const userSearch = useProfileSearch();
|
||||||
|
|
||||||
const userDataProvider = (token: string) => {
|
const userDataProvider = (token: string) => {
|
||||||
return userSearch(token).slice(0, 10);
|
return userSearch(token).slice(0, 10);
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import fuzzySearch from "@/Db/FuzzySearch";
|
import fuzzySearch from "@/Db/FuzzySearch";
|
||||||
|
|
||||||
import useWoT from "./useWoT";
|
import useWoT, { WoT } from "./useWoT";
|
||||||
|
|
||||||
export default function useProfileSearch(search: string | undefined) {
|
export default function useProfileSearch() {
|
||||||
return userSearch(search);
|
const wot = useWoT();
|
||||||
|
return (search: string | undefined) => userSearch(wot, search);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function userSearch(search: string | undefined) {
|
function userSearch(wot: WoT, search: string | undefined) {
|
||||||
const wot = useWoT();
|
|
||||||
const searchString = search?.trim() ?? "";
|
const searchString = search?.trim() ?? "";
|
||||||
const fuseResults = (searchString?.length ?? 0) > 0 ? fuzzySearch.search(searchString) : [];
|
const fuseResults = (searchString?.length ?? 0) > 0 ? fuzzySearch.search(searchString) : [];
|
||||||
|
|
||||||
|
@ -1,28 +1,29 @@
|
|||||||
import { TaggedNostrEvent } from "@snort/system";
|
import { SystemInterface, TaggedNostrEvent } from "@snort/system";
|
||||||
import { SnortContext } from "@snort/system-react";
|
import { SnortContext } from "@snort/system-react";
|
||||||
import { useContext, useMemo } from "react";
|
import { useContext, useMemo } from "react";
|
||||||
|
|
||||||
|
export interface WoT {
|
||||||
|
sortEvents: (events: Array<TaggedNostrEvent>) => Array<TaggedNostrEvent>;
|
||||||
|
sortPubkeys: (events: Array<string>) => Array<string>;
|
||||||
|
followDistance: (pk: string) => number;
|
||||||
|
followedByCount: (pk: string) => number;
|
||||||
|
followedBy: (pk: string) => Set<string>;
|
||||||
|
}
|
||||||
|
|
||||||
|
function wotOnSystem(system: SystemInterface) {
|
||||||
|
const sgi = system.config.socialGraphInstance;
|
||||||
|
return {
|
||||||
|
sortEvents: (events: Array<TaggedNostrEvent>) =>
|
||||||
|
events.sort((a, b) => sgi.getFollowDistance(a.pubkey) - sgi.getFollowDistance(b.pubkey)),
|
||||||
|
sortPubkeys: (events: Array<string>) => events.sort((a, b) => sgi.getFollowDistance(a) - sgi.getFollowDistance(b)),
|
||||||
|
followDistance: (pk: string) => sgi.getFollowDistance(pk),
|
||||||
|
followedByCount: (pk: string) => sgi.followedByFriendsCount(pk),
|
||||||
|
followedBy: (pk: string) => sgi.followedByFriends(pk),
|
||||||
|
instance: sgi,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export default function useWoT() {
|
export default function useWoT() {
|
||||||
const system = useContext(SnortContext);
|
const system = useContext(SnortContext);
|
||||||
return useMemo(
|
return useMemo<WoT>(() => wotOnSystem(system), [system]);
|
||||||
() => ({
|
|
||||||
sortEvents: (events: Array<TaggedNostrEvent>) =>
|
|
||||||
events.sort(
|
|
||||||
(a, b) =>
|
|
||||||
system.config.socialGraphInstance.getFollowDistance(a.pubkey) -
|
|
||||||
system.config.socialGraphInstance.getFollowDistance(b.pubkey),
|
|
||||||
),
|
|
||||||
sortPubkeys: (events: Array<string>) =>
|
|
||||||
events.sort(
|
|
||||||
(a, b) =>
|
|
||||||
system.config.socialGraphInstance.getFollowDistance(a) -
|
|
||||||
system.config.socialGraphInstance.getFollowDistance(b),
|
|
||||||
),
|
|
||||||
followDistance: (pk: string) => system.config.socialGraphInstance.getFollowDistance(pk),
|
|
||||||
followedByCount: (pk: string) => system.config.socialGraphInstance.followedByFriendsCount(pk),
|
|
||||||
followedBy: (pk: string) => system.config.socialGraphInstance.followedByFriends(pk),
|
|
||||||
instance: system.config.socialGraphInstance,
|
|
||||||
}),
|
|
||||||
[system.config.socialGraphInstance],
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user