about summary refs log tree commit diff
path: root/src/lib/moderation
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-02-18 09:45:46 -0600
committerGitHub <noreply@github.com>2025-02-18 09:45:46 -0600
commitda45c42b6f1ebf0646b3327c9a4a39cd46ecb8d6 (patch)
treeee27741907d96f72601f6b9446be1e85f1b3396b /src/lib/moderation
parent63ba0a436b7b2b768160ecd9e3971ed296602859 (diff)
downloadvoidsky-da45c42b6f1ebf0646b3327c9a4a39cd46ecb8d6.tar.zst
[APP-1049] show label expiration in frontend (#7738)
* Add support for label exp to LabelsOnMeDialog

* Add exp to PostAlerts, align with LabelsOnMe UI

* Bump weight

* Improve translations

* Expiry should round up

* Add a little visual alignment hack
Diffstat (limited to 'src/lib/moderation')
-rw-r--r--src/lib/moderation/useModerationCauseDescription.ts15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/moderation/useModerationCauseDescription.ts b/src/lib/moderation/useModerationCauseDescription.ts
index 9dce0b565..9e3470077 100644
--- a/src/lib/moderation/useModerationCauseDescription.ts
+++ b/src/lib/moderation/useModerationCauseDescription.ts
@@ -7,6 +7,7 @@ import {
 import {msg} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
 
+import {sanitizeHandle} from '#/lib/strings/handles'
 import {useLabelDefinitions} from '#/state/preferences'
 import {useSession} from '#/state/session'
 import {CircleBanSign_Stroke2_Corner0_Rounded as CircleBanSign} from '#/components/icons/CircleBanSign'
@@ -23,6 +24,7 @@ export interface ModerationCauseDescription {
   name: string
   description: string
   source?: string
+  sourceDisplayName?: string
   sourceType?: ModerationCauseSource['type']
   sourceAvi?: string
   sourceDid?: string
@@ -130,14 +132,16 @@ export function useModerationCauseDescription(
       const def = cause.labelDef || getDefinition(labelDefs, cause.label)
       const strings = getLabelStrings(i18n.locale, globalLabelStrings, def)
       const labeler = labelers.find(l => l.creator.did === cause.label.src)
-      let source =
-        labeler?.creator.displayName ||
-        (labeler?.creator.handle ? '@' + labeler?.creator.handle : undefined)
+      let source = labeler
+        ? sanitizeHandle(labeler.creator.handle, '@')
+        : undefined
+      let sourceDisplayName = labeler?.creator.displayName
       if (!source) {
         if (cause.label.src === BSKY_LABELER_DID) {
-          source = 'Bluesky Moderation Service'
+          source = 'moderation.bsky.app'
+          sourceDisplayName = 'Bluesky Moderation Service'
         } else {
-          source = cause.label.src
+          source = _(msg`an unknown labeler`)
         }
       }
       if (def.identifier === 'porn' || def.identifier === 'sexual') {
@@ -154,6 +158,7 @@ export function useModerationCauseDescription(
         name: strings.name,
         description: strings.description,
         source,
+        sourceDisplayName,
         sourceType: cause.source.type,
         sourceAvi: labeler?.creator.avatar,
         sourceDid: cause.label.src,