'use client' import { useEffect, useState } from 'react' import { getSettings, updateSettings } from '@/app/actions' import { toast } from 'sonner' import { Loader2, Save, MessageSquare, MessageCircle, AlertCircle } from 'lucide-react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Textarea } from '@/components/ui/textarea' import { Checkbox } from '@/components/ui/checkbox' export default function IntegrationsPage() { const [loading, setLoading] = useState(true) const [saving, setSaving] = useState(false) const [settings, setSettings] = useState({ MATTERMOST_NOTIF_ENABLED: 'false', MATTERMOST_BOT_TOKEN: '', MATTERMOST_API_URL: '', MATTERMOST_WEBHOOK_URL: '', MATTERMOST_TEMPLATE: '', WHATSAPP_TEMPLATE: '', }) useEffect(() => { const fetchSettings = async () => { const data = await getSettings() if (data) { setSettings({ MATTERMOST_NOTIF_ENABLED: data.MATTERMOST_NOTIF_ENABLED || 'false', MATTERMOST_BOT_TOKEN: data.MATTERMOST_BOT_TOKEN || '', MATTERMOST_API_URL: data.MATTERMOST_API_URL || '', MATTERMOST_WEBHOOK_URL: data.MATTERMOST_WEBHOOK_URL || '', MATTERMOST_TEMPLATE: data.MATTERMOST_TEMPLATE || 'Halo tim! Lagi ada orderan open nih untuk {title}. Mumpung belum di-checkout, yang mau ikutan nitip bisa langsung cek ke sini ya: {url}', WHATSAPP_TEMPLATE: data.WHATSAPP_TEMPLATE || 'Halo tim! Lagi ada orderan open nih untuk {title}. Mumpung belum di-checkout, yang mau ikutan nitip bisa langsung cek ke sini ya: {url}', }) } setLoading(false) } fetchSettings() }, []) const handleChange = (key: string, value: string) => { setSettings((prev) => ({ ...prev, [key]: value })) } const handleSave = async () => { setSaving(true) const res = await updateSettings(settings) if (res.success) { toast.success('Berhasil Disimpan', { description: 'Pengaturan integrasi berhasil disimpan!', duration: 3000, }) } else { toast.error('Gagal', { description: 'Gagal menyimpan pengaturan', duration: 3000, }) } setSaving(false) } if (loading) { return (
Konfigurasi endpoint API dan template pesan otomatis.
Atur integrasi Mattermost. Bagian atas untuk Notifikasi Personal (DM) ke Kreator, sedangkan bagian bawah untuk fitur Share (Broadcast) PO menggunakan Webhook.
Kirim notifikasi otomatis ke channel/DM kreator PO tiap ada update pesanan. (Membutuhkan Bot Token).
{settings.MATTERMOST_NOTIF_ENABLED === 'true' && (Atur template teks default saat user menekan tombol share ke WhatsApp.