mirror of
https://github.com/dergigi/boris.git
synced 2026-01-28 03:04:21 +01:00
- Add project structure with TypeScript, React, and Vite - Implement nostr authentication using browser extension (NIP-07) - Add NIP-51 compliant bookmark fetching and display - Create minimal UI with login and bookmark components - Integrate applesauce-core and applesauce-react libraries - Add responsive styling with dark/light mode support - Include comprehensive README with setup instructions This is a minimal MVP for a nostr bookmark client that allows users to view their bookmarks according to NIP-51 specification.
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
import { getAddressPointerForEvent, isAddressPointer } from "applesauce-core/helpers";
|
|
import { ensureAddressPointerTag } from "../helpers/common-tags.js";
|
|
import { eventPipe, skip } from "../helpers/pipeline.js";
|
|
import { includeEmojis, includeQuoteTags, repairNostrLinks, setContent, setContentWarning, tagPubkeyMentions, } from "./content.js";
|
|
import { modifyPublicTags } from "./tags.js";
|
|
/** Sets the message content for a stream chat event */
|
|
export function setMessage(content, options) {
|
|
return eventPipe(
|
|
// set text content
|
|
setContent(content),
|
|
// fix @ mentions
|
|
repairNostrLinks(),
|
|
// include "p" tags for pubkeys mentioned
|
|
tagPubkeyMentions(),
|
|
// include event "q" tags
|
|
includeQuoteTags(),
|
|
// include "emoji" tags
|
|
options?.emojis ? includeEmojis(options.emojis) : skip(),
|
|
// set "content-warning" tag
|
|
options?.contentWarning !== undefined ? setContentWarning(options.contentWarning) : skip());
|
|
}
|
|
/** Sets the stream for a stream chat event */
|
|
export function setStream(stream) {
|
|
if (!isAddressPointer(stream))
|
|
stream = getAddressPointerForEvent(stream);
|
|
return modifyPublicTags((tags) => ensureAddressPointerTag(tags, stream));
|
|
}
|