link-stack/packages/bridge-ui/config/whatsapp.ts

105 lines
2 KiB
TypeScript
Raw Normal View History

2024-04-30 11:39:16 +02:00
import { ServiceConfig } from "../lib/service";
2024-05-16 18:22:10 +02:00
// import { generateSelectOneAction } from "../lib/actions";
2024-04-26 15:49:58 +02:00
2024-05-16 18:22:10 +02:00
const getQRCode = async (token: string) => {
const url = `/api/whatsapp/bots/${token}`;
const result = await fetch(url, { cache: "no-store" });
const { qr } = await result.json();
return qr ?? "";
};
2024-04-29 17:27:25 +02:00
export const whatsappConfig: ServiceConfig = {
entity: "whatsapp",
table: "WhatsappBot",
displayName: "WhatsApp Connection",
2024-04-26 15:49:58 +02:00
createFields: [
{
name: "name",
label: "Name",
required: true,
size: 12,
},
{
name: "description",
label: "Description",
size: 12,
lines: 3,
},
2024-04-29 17:27:25 +02:00
{
name: "phoneNumber",
label: "Phone Number",
required: true,
},
{
name: "token",
label: "Token",
hidden: true,
required: true,
autogenerated: "token",
},
2024-04-26 15:49:58 +02:00
],
updateFields: [
{ name: "name", label: "Name", required: true, size: 12 },
{
name: "description",
label: "Description",
size: 12,
},
2024-04-29 17:27:25 +02:00
{
name: "phoneNumber",
label: "Phone Number",
required: true,
},
2024-04-26 15:49:58 +02:00
],
displayFields: [
{ name: "name", label: "Name", required: true, size: 12 },
{
name: "description",
label: "Description",
size: 12,
},
2024-04-29 17:27:25 +02:00
{
name: "phoneNumber",
label: "Phone Number",
},
{
name: "token",
label: "Token",
copyable: true,
},
{
name: "qrcode",
label: "QR Code",
kind: "qrcode",
size: 4,
getValue: getQRCode,
helperText: "Go ahead, scan it",
2024-05-16 18:22:10 +02:00
refreshInterval: 15,
},
2024-04-26 15:49:58 +02:00
],
listColumns: [
{
field: "name",
headerName: "Name",
flex: 1,
},
2024-04-29 17:27:25 +02:00
{
field: "phoneNumber",
headerName: "Phone Number",
flex: 1,
},
2024-04-26 15:49:58 +02:00
{
field: "description",
headerName: "Description",
flex: 2,
},
{
field: "updatedAt",
headerName: "Updated At",
valueGetter: (value: any) => new Date(value).toLocaleString(),
flex: 1,
},
],
};