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 (
);
}
}
})}
);
}