ultisuite-client/components/gmail/contacts-page/bulk-create-dialog.tsx
R3D347HR4Y 77f99d8d8a hehe
2026-05-19 00:48:20 +02:00

72 lines
2.4 KiB
TypeScript

"use client"
import { useState } from "react"
import {
Dialog,
DialogContent,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog"
import { Button } from "@/components/ui/button"
import { useContactsStore } from "@/lib/contacts/contacts-store"
import { parseBulkContactText } from "@/lib/contacts/import-parsers"
interface BulkCreateDialogProps {
open: boolean
onOpenChange: (open: boolean) => void
onOpenImport?: () => void
}
export function BulkCreateDialog({ open, onOpenChange, onOpenImport }: BulkCreateDialogProps) {
const [input, setInput] = useState("")
const addContacts = useContactsStore((s) => s.addContacts)
function handleCreate() {
const parsed = parseBulkContactText(input)
if (parsed.length === 0) return
addContacts(parsed)
setInput("")
onOpenChange(false)
}
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="sm:max-w-md">
<DialogHeader>
<DialogTitle>Créer plusieurs contacts</DialogTitle>
</DialogHeader>
<div className="space-y-4 py-2">
<p className="text-sm text-[#5f6368]">
Ajoutez des noms, des adresses e-mail ou les deux
</p>
<textarea
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="Exemples : Andrea Fisher, weaver.blake98@gmail.com, Elisa Beckett <elisa.beckett@gmail.com>"
className="h-24 w-full rounded-lg border border-gray-300 px-3 py-2 text-sm outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500"
/>
<p className="text-xs text-[#5f6368]">
Vous avez un fichier CSV ou vCard ?{" "}
<button
type="button"
className="cursor-pointer text-[#1a73e8] hover:underline"
onClick={() => { onOpenChange(false); onOpenImport?.() }}
>
Importez les contacts.
</button>
</p>
</div>
<div className="flex justify-end gap-3">
<Button variant="ghost" onClick={() => onOpenChange(false)} className="text-sm font-medium text-[#1a73e8]">
Non, ne rien faire
</Button>
<Button onClick={handleCreate} disabled={!input.trim()} className="text-sm font-medium">
Créer
</Button>
</div>
</DialogContent>
</Dialog>
)
}