mirror of
https://github.com/severian-dev/sucker.severian.dev.git
synced 2025-10-28 04:35:45 +00:00
chore: 1.6
This commit is contained in:
@@ -4,6 +4,7 @@ Check package.json for commands, I can't be bothered.
|
|||||||
|
|
||||||
### Changelog
|
### Changelog
|
||||||
|
|
||||||
|
- 1.6: First message formatting, copy button for first message and other fields
|
||||||
- 1.5: {{user}} substitution for user persona name
|
- 1.5: {{user}} substitution for user persona name
|
||||||
- 1.4: Mooth just keeps finding bugs, damn.
|
- 1.4: Mooth just keeps finding bugs, damn.
|
||||||
- 1.3: Mooth found a bug, fixed it.
|
- 1.3: Mooth found a bug, fixed it.
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import {
|
|||||||
} from "@/components/ui/dialog";
|
} from "@/components/ui/dialog";
|
||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
import { Png } from "@/lib/png";
|
import { Png } from "@/lib/png";
|
||||||
import { ChevronUp, ChevronDown } from "lucide-react";
|
import { ChevronUp, ChevronDown, Copy } from "lucide-react";
|
||||||
import {
|
import {
|
||||||
CollapsibleContent,
|
CollapsibleContent,
|
||||||
Collapsible,
|
Collapsible,
|
||||||
@@ -182,14 +182,19 @@ export default function Home() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const copyToClipboard = (text: string) => {
|
||||||
|
navigator.clipboard.writeText(text);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="min-h-screen bg-background text-foreground">
|
<main className="min-h-screen bg-background text-foreground">
|
||||||
<div className="container mx-auto px-4 py-8">
|
<div className="container mx-auto px-4 py-8">
|
||||||
<div className="flex justify-between items-center mb-4">
|
<div className="flex justify-between items-center mb-4">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-3xl font-bold">Sucker v1.5</h1>
|
<h1 className="text-3xl font-bold">Sucker v1.6</h1>
|
||||||
<p className="text-sm text-muted-foreground">
|
<p className="text-sm text-muted-foreground">
|
||||||
User persona name substitution fixed, let me know how it goes.
|
Wherein Myscell's Not-Unreasonable, Yet Still Annoying,
|
||||||
|
Request is Delivered with a Heavy Sigh
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Button
|
<Button
|
||||||
@@ -238,8 +243,8 @@ export default function Home() {
|
|||||||
into cards, on the example message section.
|
into cards, on the example message section.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
No need for this anymore. At least the new prompt system has
|
No need for this anymore. At least the new prompt
|
||||||
it separate now.
|
system has it separate now.
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li className="mb-2">
|
<li className="mb-2">
|
||||||
@@ -290,7 +295,19 @@ export default function Home() {
|
|||||||
<AccordionItem value="description">
|
<AccordionItem value="description">
|
||||||
<AccordionTrigger>Description</AccordionTrigger>
|
<AccordionTrigger>Description</AccordionTrigger>
|
||||||
<AccordionContent>
|
<AccordionContent>
|
||||||
{card.description}
|
<div className="flex justify-between">
|
||||||
|
<pre className="whitespace-pre-wrap font-sans text-sm">{card.description}</pre>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
copyToClipboard(card.description);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</AccordionContent>
|
</AccordionContent>
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
</Accordion>
|
</Accordion>
|
||||||
@@ -302,7 +319,19 @@ export default function Home() {
|
|||||||
First Message
|
First Message
|
||||||
</AccordionTrigger>
|
</AccordionTrigger>
|
||||||
<AccordionContent>
|
<AccordionContent>
|
||||||
{card.first_mes}
|
<div className="flex justify-between">
|
||||||
|
<pre className="whitespace-pre-wrap font-sans text-sm">{card.first_mes}</pre>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
copyToClipboard(card.first_mes);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</AccordionContent>
|
</AccordionContent>
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
</Accordion>
|
</Accordion>
|
||||||
@@ -312,7 +341,19 @@ export default function Home() {
|
|||||||
<AccordionItem value="scenario">
|
<AccordionItem value="scenario">
|
||||||
<AccordionTrigger>Scenario</AccordionTrigger>
|
<AccordionTrigger>Scenario</AccordionTrigger>
|
||||||
<AccordionContent>
|
<AccordionContent>
|
||||||
{card.scenario}
|
<div className="flex justify-between">
|
||||||
|
<pre className="whitespace-pre-wrap font-sans text-sm">{card.scenario}</pre>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
copyToClipboard(card.scenario);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</AccordionContent>
|
</AccordionContent>
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
</Accordion>
|
</Accordion>
|
||||||
@@ -324,7 +365,41 @@ export default function Home() {
|
|||||||
Example Messages
|
Example Messages
|
||||||
</AccordionTrigger>
|
</AccordionTrigger>
|
||||||
<AccordionContent>
|
<AccordionContent>
|
||||||
{card.mes_example}
|
<div className="flex justify-between">
|
||||||
|
<pre className="whitespace-pre-wrap font-sans text-sm">{card.mes_example}</pre>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
copyToClipboard(card.mes_example);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</AccordionContent>
|
||||||
|
</AccordionItem>
|
||||||
|
</Accordion>
|
||||||
|
)}
|
||||||
|
{card.personality && (
|
||||||
|
<Accordion type="single" collapsible>
|
||||||
|
<AccordionItem value="personality">
|
||||||
|
<AccordionTrigger>Personality</AccordionTrigger>
|
||||||
|
<AccordionContent>
|
||||||
|
<div className="flex justify-between">
|
||||||
|
<pre className="whitespace-pre-wrap font-sans text-sm">{card.personality}</pre>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
copyToClipboard(card.personality);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</AccordionContent>
|
</AccordionContent>
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
</Accordion>
|
</Accordion>
|
||||||
|
|||||||
Reference in New Issue
Block a user