X-Git-Url: http://these/git/?a=blobdiff_plain;f=ui%2Fsrc%2Futils.ts;h=071b86acea6045bfe2928f738b056f8c411d4bfa;hb=dc94e58cbf7e7de10d97331a3056380a3416e0b0;hp=bdb9afbd2da3f243fc74ef8c0ce0a833f0526d68;hpb=790b944031f9433be765936763d848ffa6e1b496;p=lemmy.git diff --git a/ui/src/utils.ts b/ui/src/utils.ts index bdb9afbd..071b86ac 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -592,7 +592,10 @@ export function setupTribute(): Tribute { { trigger: '@', selectTemplate: (item: any) => { - return `[/u/${item.original.key}](/u/${item.original.key})`; + let link = item.original.local + ? `[${item.original.key}](/u/${item.original.name})` + : `[${item.original.key}](/user/${item.original.id})`; + return link; }, values: (text: string, cb: any) => { userSearch(text, (users: any) => cb(users)); @@ -605,9 +608,12 @@ export function setupTribute(): Tribute { // Communities { - trigger: '#', + trigger: '!', selectTemplate: (item: any) => { - return `[/c/${item.original.key}](/c/${item.original.key})`; + let link = item.original.local + ? `[${item.original.key}](/c/${item.original.name})` + : `[${item.original.key}](/community/${item.original.id})`; + return link; }, values: (text: string, cb: any) => { communitySearch(text, (communities: any) => cb(communities)); @@ -650,7 +656,12 @@ function userSearch(text: string, cb: any) { if (res.op == UserOperation.Search) { let data = res.data as SearchResponse; let users = data.users.map(u => { - return { key: u.name }; + return { + key: `@${u.name}@${hostname(u.actor_id)}`, + name: u.name, + local: u.local, + id: u.id, + }; }); cb(users); this.userSub.unsubscribe(); @@ -681,8 +692,13 @@ function communitySearch(text: string, cb: any) { let res = wsJsonToRes(msg); if (res.op == UserOperation.Search) { let data = res.data as SearchResponse; - let communities = data.communities.map(u => { - return { key: u.name }; + let communities = data.communities.map(c => { + return { + key: `!${c.name}@${hostname(c.actor_id)}`, + name: c.name, + local: c.local, + id: c.id, + }; }); cb(communities); this.communitySub.unsubscribe(); @@ -933,6 +949,13 @@ export function previewLines(text: string, lines: number = 3): string { .join('\n'); } +export function hostname(url: string): string { + let cUrl = new URL(url); + return window.location.port + ? `${cUrl.hostname}:${cUrl.port}` + : `${cUrl.hostname}`; +} + function canUseWebP() { // TODO pictshare might have a webp conversion bug, try disabling this return false;