From eb8bfd11d14a87983b210bea4a619d2dd7c51cdf Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 29 Apr 2024 23:34:26 -0700 Subject: [Clipclops] Add screen to view and send clip clops (#3754) * add new routes with placeholder screens * add clops list * add a clop input * add some better padding to the clops * some more adjustments * add rnkc * implement rnkc * implement rnkc * be a little less weird about it * rename clop stuff * rename more clop * one more * [Clipclops] Temp codegenerated lexicon (#3749) * add codegenerated lexicon * replace hailey's types * use codegen'd types in components * fix error + throw if fetch failed * remove bad imports * update messageslist and messageitem * import useState * add clop service URL hook * add dm service url storage * use context * use context for service url (temp) * remove log * nits --------- Co-authored-by: Samuel Newman --- src/temp/dm/sendMessageBatch.ts | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/temp/dm/sendMessageBatch.ts (limited to 'src/temp/dm/sendMessageBatch.ts') diff --git a/src/temp/dm/sendMessageBatch.ts b/src/temp/dm/sendMessageBatch.ts new file mode 100644 index 000000000..c2ce1d82c --- /dev/null +++ b/src/temp/dm/sendMessageBatch.ts @@ -0,0 +1,66 @@ +import {ValidationResult} from '@atproto/lexicon' +import {Headers, XRPCError} from '@atproto/xrpc' + +import * as TempDmDefs from './defs' + +export interface QueryParams {} + +export interface InputSchema { + items: BatchItem[] + [k: string]: unknown +} + +export interface OutputSchema { + items: TempDmDefs.MessageView[] + [k: string]: unknown +} + +export interface CallOptions { + headers?: Headers + qp?: QueryParams + encoding: 'application/json' +} + +export interface Response { + success: boolean + headers: Headers + data: OutputSchema +} + +export function toKnownErr(e: any) { + if (e instanceof XRPCError) { + } + return e +} + +export interface BatchItem { + chatId: string + message: TempDmDefs.Message + [k: string]: unknown +} + +export function isBatchItem(v: unknown): v is BatchItem { + return ( + isObj(v) && + hasProp(v, '$type') && + v.$type === 'temp.dm.sendMessageBatch#batchItem' + ) +} + +export function validateBatchItem(v: unknown): ValidationResult { + return { + success: true, + value: v, + } +} + +export function isObj(v: unknown): v is Record { + return typeof v === 'object' && v !== null +} + +export function hasProp( + data: object, + prop: K, +): data is Record { + return prop in data +} -- cgit 1.4.1