Skip to content

Commit

Permalink
feat: use textarea for longer additional promtp
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaucau committed May 3, 2024
1 parent 9047d44 commit 83b8d5b
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 15 deletions.
2 changes: 1 addition & 1 deletion includes/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public function register_routes(): void {
'user_prompt' => [
'required' => false,
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
'sanitize_callback' => 'sanitize_textarea_field',
],
'save' => [
'required' => false,
Expand Down
35 changes: 35 additions & 0 deletions src/components/AdditionalPromptControl.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import type { ComponentProps } from "react";
import { TextareaControl } from "@wordpress/components";
import { __, _x } from "@wordpress/i18n";

interface AdditionalPromptControlProps
extends ComponentProps<typeof TextareaControl> {}

export default function AdditionalPromptControl({
rows = 1,
...props
}: AdditionalPromptControlProps) {
return (
<TextareaControl
rows={rows}
label={__(
"Additional prompt (optional)",
"alt-text-generator-gpt-vision",
)}
help={__(
"Provide additional instructions for AI to tailor the alt text generation, such as including specific keywords for SEO.",
"alt-text-generator-gpt-vision",
)}
placeholder={_x(
'e.g. Include terms like "AI", "robotics"',
"Additional prompt placeholder",
"alt-text-generator-gpt-vision",
)}
style={{
fieldSizing: "content",
maxHeight: "8em",
}}
{...props}
/>
);
}
18 changes: 4 additions & 14 deletions src/components/BulkGenerateModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
Flex,
FlexItem,
Modal,
TextareaControl,
TextControl,
ToggleControl,
} from "@wordpress/components";
Expand All @@ -15,6 +16,7 @@ import BulkGenerationTable from "./BulkGenerationTable";
import generateAltText from "../utils/generateAltText";
import sleep from "../utils/sleep";
import useAttachments from "../hooks/useAttachments";
import AdditionalPromptControl from "./AdditionalPromptControl";

export default function BulkGenerateModal({
attachmentIds,
Expand Down Expand Up @@ -174,20 +176,8 @@ export default function BulkGenerateModal({
onChange={setOverwriteExisting}
disabled={isGenerating}
/>
<TextControl
label={__(
"Additional prompt (optional)",
"alt-text-generator-gpt-vision",
)}
help={__(
"Provide additional instructions for AI to tailor the alt text generation, such as including specific keywords for SEO.",
"alt-text-generator-gpt-vision",
)}
placeholder={_x(
'e.g. Include terms like "AI", "robotics"',
"Additional prompt placeholder",
"alt-text-generator-gpt-vision",
)}

<AdditionalPromptControl
value={customPrompt}
onChange={setCustomPrompt}
disabled={isGenerating}
Expand Down

0 comments on commit 83b8d5b

Please sign in to comment.