diff options
author | Dessalines <tyhou13@gmx.com> | 2020-04-30 11:45:12 -0400 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-04-30 11:45:12 -0400 |
commit | 38cdfdf7e0ee1db1e315c150a1b375f9245a95db (patch) | |
tree | 83abb732e3ed162dae634009ce43e064b97299a8 /ui/src/utils.ts | |
parent | ee4f923f60fc732f9d57cebbeeb6879479886291 (diff) |
Changing federated community and user links and searching.
- Search: !community@instance, @user@instance
- Representation: community@instance, user@instance
Diffstat (limited to 'ui/src/utils.ts')
-rw-r--r-- | ui/src/utils.ts | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 480b41c7..277da987 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -501,7 +501,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.key})` + : `[@${item.original.key}](/user/${item.original.id})`; + return link; }, values: (text: string, cb: any) => { userSearch(text, (users: any) => cb(users)); @@ -514,9 +517,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.key})` + : `[!${item.original.key}](/community/${item.original.id})`; + return link; }, values: (text: string, cb: any) => { communitySearch(text, (communities: any) => cb(communities)); @@ -559,7 +565,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 }; + let name_ = u.local ? u.name : `${u.name}@${hostname(u.actor_id)}`; + return { + key: name_, + local: u.local, + id: u.id, + }; }); cb(users); this.userSub.unsubscribe(); @@ -590,8 +601,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 => { + let name_ = c.local ? c.name : `${c.name}@${hostname(c.actor_id)}`; + return { + key: name_, + local: c.local, + id: c.id, + }; }); cb(communities); this.communitySub.unsubscribe(); |