import { segmentize } from "@atcute/bluesky-richtext-segmenter"; import { AppBskyRichtextFacet } from "@atcute/client/lexicons"; import { Link } from "@tanstack/react-router"; import React from "preact/compat"; interface SegmentedInput { text: string; facets: AppBskyRichtextFacet.Main[]; } export function SplitText({ text }: { text: string }) { console.log(text); return ( <> {text.split("\n").map((line, i) => ( {line} {i !== text.split("\n").length - 1 &&
}
))} ); } export function SegmentedText({ text, facets }: SegmentedInput) { const segments = segmentize(text, facets); return ( {segments.map((segment, index) => { if (!segment.features || segment.features.length === 0) { return ( ); } switch (segment.features[0].$type) { case "app.bsky.richtext.facet#link": { return ( ); } case "app.bsky.richtext.facet#mention": { return ( ); } case "app.bsky.richtext.facet#tag": { return ( ); } default: { return ( ); } } })} ); }