diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/api/index.ts | 12 | ||||
-rw-r--r-- | src/lib/icons.tsx | 38 | ||||
-rw-r--r-- | src/lib/moderation.ts | 12 |
3 files changed, 56 insertions, 6 deletions
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts index 381d78435..bb4ff8fcb 100644 --- a/src/lib/api/index.ts +++ b/src/lib/api/index.ts @@ -4,6 +4,7 @@ import { AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyRichtextFacet, + ComAtprotoLabelDefs, ComAtprotoRepoUploadBlob, RichText, } from '@atproto/api' @@ -77,6 +78,7 @@ interface PostOpts { } extLink?: ExternalEmbedDraft images?: ImageModel[] + labels?: string[] knownHandles?: Set<string> onStateChange?: (state: string) => void langs?: string[] @@ -234,6 +236,15 @@ export async function post(store: RootStoreModel, opts: PostOpts) { } } + // set labels + let labels: ComAtprotoLabelDefs.SelfLabels | undefined + if (opts.labels?.length) { + labels = { + $type: 'com.atproto.label.defs#selfLabels', + values: opts.labels.map(val => ({val})), + } + } + // add top 3 languages from user preferences if langs is provided let langs = opts.langs if (opts.langs) { @@ -248,6 +259,7 @@ export async function post(store: RootStoreModel, opts: PostOpts) { reply, embed, langs, + labels, }) } catch (e: any) { console.error(`Failed to create post: ${e.toString()}`) diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index 4ea3b4d65..233f8a473 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -957,3 +957,41 @@ export function SatelliteDishIcon({ </Svg> ) } + +// Copyright (c) 2020 Refactoring UI Inc. +// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE +export function ShieldExclamation({ + style, + size, + strokeWidth = 1.5, +}: { + style?: StyleProp<TextStyle> + size?: string | number + strokeWidth?: number +}) { + let color = 'currentColor' + if ( + style && + typeof style === 'object' && + 'color' in style && + typeof style.color === 'string' + ) { + color = style.color + } + return ( + <Svg + width={size} + height={size} + fill="none" + viewBox="0 0 24 24" + strokeWidth={strokeWidth || 1.5} + stroke={color} + style={style}> + <Path + strokeLinecap="round" + strokeLinejoin="round" + d="M12 9v3.75m0-10.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286zm0 13.036h.008v.008H12v-.008z" + /> + </Svg> + ) +} diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index 1ed830fd8..70c4444fe 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -29,12 +29,7 @@ export function describeModerationCause( } } if (cause.type === 'muted') { - if (cause.source.type === 'user') { - return { - name: context === 'account' ? 'Muted User' : 'Post by muted user', - description: 'You have muted this user', - } - } else { + if (cause.source.type === 'list') { return { name: context === 'account' @@ -42,6 +37,11 @@ export function describeModerationCause( : `Post by muted user ("${cause.source.list.name}")`, description: 'You have muted this user', } + } else { + return { + name: context === 'account' ? 'Muted User' : 'Post by muted user', + description: 'You have muted this user', + } } } return cause.labelDef.strings[context].en |