mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 21:19:13 +00:00
feat: text content extraction
This commit is contained in:
@@ -12,6 +12,7 @@ import { Input } from "@/components/ui/input"
|
||||
import { Label } from "@/components/ui/label"
|
||||
import { Plus } from "lucide-react"
|
||||
import { Newsletter, updateNewsletter, deleteNewsletter } from "@/lib/api"
|
||||
import { Checkbox } from "@/components/ui/checkbox"
|
||||
|
||||
interface EditNewsletterDialogProps {
|
||||
newsletter: Newsletter | null
|
||||
@@ -21,9 +22,10 @@ interface EditNewsletterDialogProps {
|
||||
}
|
||||
|
||||
export function EditNewsletterDialog({ newsletter, isOpen, onOpenChange, onSuccess }: EditNewsletterDialogProps) {
|
||||
const [editedDetails, setEditedDetails] = useState<{ name: string; emails: string[] }>({
|
||||
const [editedDetails, setEditedDetails] = useState<{ name: string; emails: string[], extract_content: boolean }>({
|
||||
name: "",
|
||||
emails: [],
|
||||
extract_content: false,
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
@@ -31,6 +33,7 @@ export function EditNewsletterDialog({ newsletter, isOpen, onOpenChange, onSucce
|
||||
setEditedDetails({
|
||||
name: newsletter.name,
|
||||
emails: newsletter.senders.map((s) => s.email),
|
||||
extract_content: newsletter.extract_content,
|
||||
})
|
||||
}
|
||||
}, [newsletter])
|
||||
@@ -63,6 +66,7 @@ export function EditNewsletterDialog({ newsletter, isOpen, onOpenChange, onSucce
|
||||
await updateNewsletter(newsletter.id, {
|
||||
name: editedDetails.name,
|
||||
sender_emails: editedDetails.emails.filter((email) => email.trim()),
|
||||
extract_content: editedDetails.extract_content,
|
||||
})
|
||||
onOpenChange(false)
|
||||
onSuccess()
|
||||
@@ -121,6 +125,16 @@ export function EditNewsletterDialog({ newsletter, isOpen, onOpenChange, onSucce
|
||||
Add Another Email
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<Checkbox
|
||||
id="edit-extract-content"
|
||||
checked={editedDetails.extract_content}
|
||||
onCheckedChange={(checked) =>
|
||||
setEditedDetails((prev) => ({ ...prev, extract_content: !!checked }))
|
||||
}
|
||||
/>
|
||||
<Label htmlFor="edit-extract-content">Extract main content from emails</Label>
|
||||
</div>
|
||||
</div>
|
||||
<DialogFooter className="sm:justify-between">
|
||||
<Button variant="destructive" onClick={handleDelete}>
|
||||
|
||||
Reference in New Issue
Block a user