about summary refs log tree commit diff
path: root/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'src/view')
-rw-r--r--src/view/com/modals/ComposePost.tsx3
-rw-r--r--src/view/lib/strings.ts20
2 files changed, 22 insertions, 1 deletions
diff --git a/src/view/com/modals/ComposePost.tsx b/src/view/com/modals/ComposePost.tsx
index e1e7cac5f..1d6f9c4e4 100644
--- a/src/view/com/modals/ComposePost.tsx
+++ b/src/view/com/modals/ComposePost.tsx
@@ -1,8 +1,9 @@
-import React, {useMemo, useState} from 'react'
+import React, {useEffect, useMemo, useState} from 'react'
 import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
 import {BottomSheetTextInput} from '@gorhom/bottom-sheet'
 import LinearGradient from 'react-native-linear-gradient'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
+import * as GetUserFollows from '../../../third-party/api/src/types/todo/social/getUserFollows'
 import {Autocomplete} from './composer/Autocomplete'
 import Toast from '../util/Toast'
 import ProgressCircle from '../util/ProgressCircle'
diff --git a/src/view/lib/strings.ts b/src/view/lib/strings.ts
index d468a18ac..eecec890c 100644
--- a/src/view/lib/strings.ts
+++ b/src/view/lib/strings.ts
@@ -1,4 +1,7 @@
 import {AdxUri} from '../../third-party/uri'
+import {Entity as Entities} from '../../third-party/api/src/types/todo/social/post'
+
+type Entity = Entities[0]
 
 export function pluralize(n: number, base: string, plural?: string): string {
   if (n === 1) {
@@ -53,3 +56,20 @@ export function ago(date: number | string | Date): string {
     return new Date(ts).toLocaleDateString()
   }
 }
+
+export function extractEntities(text: string): Entity[] | undefined {
+  let match
+  let ents: Entity[] = []
+  const re = /(^|\s)(@)([a-zA-Z0-9\.-]+)(\b)/dg
+  while ((match = re.exec(text))) {
+    ents.push({
+      type: 'mention',
+      value: match[3],
+      index: [
+        match.indices[2][0], // skip the (^|\s) but include the '@'
+        match.indices[3][1],
+      ],
+    })
+  }
+  return ents.length > 0 ? ents : undefined
+}