diff options
Diffstat (limited to 'src/state/queries/threadgate.ts')
-rw-r--r-- | src/state/queries/threadgate.ts | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/src/state/queries/threadgate.ts b/src/state/queries/threadgate.ts deleted file mode 100644 index 8b6aeba6c..000000000 --- a/src/state/queries/threadgate.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {AppBskyFeedDefs, AppBskyFeedThreadgate} from '@atproto/api' - -export type ThreadgateSetting = - | {type: 'nobody'} - | {type: 'mention'} - | {type: 'following'} - | {type: 'list'; list: unknown} - -export function threadgateViewToSettings( - threadgate: AppBskyFeedDefs.ThreadgateView | undefined, -): ThreadgateSetting[] { - const record = - threadgate && - AppBskyFeedThreadgate.isRecord(threadgate.record) && - AppBskyFeedThreadgate.validateRecord(threadgate.record).success - ? threadgate.record - : null - if (!record) { - return [] - } - if (!record.allow?.length) { - return [{type: 'nobody'}] - } - const settings: ThreadgateSetting[] = record.allow - .map(allow => { - let setting: ThreadgateSetting | undefined - if (allow.$type === 'app.bsky.feed.threadgate#mentionRule') { - setting = {type: 'mention'} - } else if (allow.$type === 'app.bsky.feed.threadgate#followingRule') { - setting = {type: 'following'} - } else if (allow.$type === 'app.bsky.feed.threadgate#listRule') { - setting = {type: 'list', list: allow.list} - } - return setting - }) - .filter(n => !!n) - return settings -} |