about summary refs log tree commit diff
path: root/src/lib/moderation/create-sanitized-display-name.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/moderation/create-sanitized-display-name.ts')
-rw-r--r--src/lib/moderation/create-sanitized-display-name.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/moderation/create-sanitized-display-name.ts b/src/lib/moderation/create-sanitized-display-name.ts
new file mode 100644
index 000000000..16135b274
--- /dev/null
+++ b/src/lib/moderation/create-sanitized-display-name.ts
@@ -0,0 +1,21 @@
+import {AppBskyActorDefs} from '@atproto/api'
+
+import {sanitizeDisplayName} from 'lib/strings/display-names'
+import {sanitizeHandle} from 'lib/strings/handles'
+
+export function createSanitizedDisplayName(
+  profile:
+    | AppBskyActorDefs.ProfileViewBasic
+    | AppBskyActorDefs.ProfileViewDetailed,
+  noAt = false,
+) {
+  if (profile.displayName != null && profile.displayName !== '') {
+    return sanitizeDisplayName(profile.displayName)
+  } else {
+    let sanitizedHandle = sanitizeHandle(profile.handle)
+    if (!noAt) {
+      sanitizedHandle = `@${sanitizedHandle}`
+    }
+    return sanitizedHandle
+  }
+}