( entityText: EntityText, params?: ?EntityTextToRawStringParams, )
| 365 | +prefixThisThreadNounWith?: ?('this' | 'your'), |
| 366 | }; |
| 367 | function entityTextToRawString( |
| 368 | entityText: EntityText, |
| 369 | params?: ?EntityTextToRawStringParams, |
| 370 | ): string { |
| 371 | // ESLint doesn't recognize that invariant always throws |
| 372 | // eslint-disable-next-line consistent-return |
| 373 | const textParts = entityText.map(entity => { |
| 374 | if (typeof entity === 'string') { |
| 375 | return entity; |
| 376 | } else if (entity.type === 'thread') { |
| 377 | return getNameForThreadEntity(entity, params); |
| 378 | } else if (entity.type === 'color') { |
| 379 | return entity.hex; |
| 380 | } else if (entity.type === 'user') { |
| 381 | return getNameForUserEntity(entity, params?.ignoreViewer); |
| 382 | } else if (entity.type === 'farcaster_user') { |
| 383 | return getNameForFarcasterUserEntity(entity); |
| 384 | } else { |
| 385 | invariant( |
| 386 | false, |
| 387 | `entityTextToRawString can't handle entity type ${entity.type}`, |
| 388 | ); |
| 389 | } |
| 390 | }); |
| 391 | return textParts.join(''); |
| 392 | } |
| 393 | |
| 394 | type RenderFunctions = { |
| 395 | +renderText: ({ +text: string }) => React.Node, |
no test coverage detected