import { q } from "@thorium/context/AppContext";
import { toast } from "@thorium/context/ToastContext";
import { InterpolateInfo } from "@thorium/routes/config/reports/InterpolateInfo";
import { useConfirm } from "@thorium/ui/AlertDialog";
import Button from "@thorium/ui/Button";
import { Icon } from "@thorium/ui/Icon";
import Input from "@thorium/ui/Input";
import throttle from "lodash.throttle";
import { startTransition, Suspense, useCallback, useState } from "react";
import { useNavigate, Navigate, href } from "react-router";
import type { Route } from "./+types/textPattern";
export default function TextPatternDetail({
params: { textPatternId, pluginId },
}: Route.ComponentProps) {
const navigate = useNavigate();
const confirm = useConfirm();
const [item] = q.plugin.textPattern.get.useNetRequest({
pluginId,
textPatternId,
});
const [error, setError] = useState(false);
const setTextPattern = useCallback(
throttle((textPattern: string) => {
q.plugin.textPattern.update.netSend({
pluginId,
textPatternId,
textPattern,
});
}, 100),
[],
);
if (!textPatternId || !item)
return ;
return (
);
}
function TextPatternOutputField({
textPatternId,
pluginId,
}: {
textPatternId: string;
pluginId: string;
}) {
const [randomSeed, setRandomSeed] = useState("thorium");
const [stringOutput] = q.textPattern.evaluate.useNetRequest({
textPatternId,
pluginId,
randomSeed,
});
return (
);
}