summaryrefslogtreecommitdiffstats
path: root/ui/src/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/utils.ts')
-rw-r--r--ui/src/utils.ts35
1 files changed, 29 insertions, 6 deletions
diff --git a/ui/src/utils.ts b/ui/src/utils.ts
index 3bad5040..5ce84b39 100644
--- a/ui/src/utils.ts
+++ b/ui/src/utils.ts
@@ -541,7 +541,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));
@@ -554,9 +557,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));
@@ -599,7 +605,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();
@@ -630,8 +641,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();
@@ -882,6 +898,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;