From dd14dfe72efe5b871157c2837c62feddcf4afbfb Mon Sep 17 00:00:00 2001 From: Darren Clarke Date: Mon, 29 Apr 2024 17:27:25 +0200 Subject: [PATCH] Refactoring --- .../@create/_components/Create.tsx | 53 +++- .../@detail/_components/Detail.tsx | 2 +- .../app/(main)/[...segment]/@detail/page.tsx | 2 +- .../[...segment]/@edit/_components/Edit.tsx | 2 +- .../app/(main)/[...segment]/@edit/page.tsx | 2 +- .../(main)/[...segment]/_components/List.tsx | 2 +- .../app/(main)/[...segment]/page.tsx | 7 +- apps/bridge-frontend/app/_actions/service.ts | 15 +- .../app/_components/Create.tsx | 2 +- .../app/{_lib => _config}/config.ts | 2 +- apps/bridge-frontend/app/_config/facebook.ts | 123 +++++++++ apps/bridge-frontend/app/_config/signal.ts | 86 ++++++ .../app/{_lib => _config}/users.ts | 2 +- .../{_lib/webhooks.ts => _config/voice.ts} | 30 +- apps/bridge-frontend/app/_config/webhooks.ts | 125 +++++++++ apps/bridge-frontend/app/_config/whatsapp.ts | 86 ++++++ apps/bridge-frontend/app/_lib/actions.ts | 9 + apps/bridge-frontend/app/_lib/database.ts | 5 + apps/bridge-frontend/app/_lib/facebook.ts | 261 +++++------------- apps/bridge-frontend/app/_lib/routing.ts | 45 +-- apps/bridge-frontend/app/_lib/service.ts | 36 ++- apps/bridge-frontend/app/_lib/signal.ts | 150 +--------- apps/bridge-frontend/app/_lib/utils.ts | 13 + apps/bridge-frontend/app/_lib/voice.ts | 141 +--------- apps/bridge-frontend/app/_lib/whatsapp.ts | 150 +--------- .../[service]/bots/[token]/register/route.ts | 1 - .../bots/[token]/request-code/route.ts | 1 - .../bots/[token]/reset-session/route.ts | 1 - .../app/api/[service]/bots/route.ts | 1 - .../app/api/[service]/webhooks/route.ts | 8 +- apps/bridge-frontend/package.json | 1 + .../tasks/signal/receive-signal-message.ts | 0 .../tasks/signal/send-signal-message.ts | 0 .../tasks/voice/receive-voice-message.ts | 0 .../tasks/voice/send-voice-message.ts | 0 .../tasks/whatsapp/send-whatsapp-message.ts | 0 package-lock.json | 48 ++++ packages/ui/components/MultiValueField.tsx | 127 +++++++++ packages/ui/components/Select.tsx | 66 +++-- packages/ui/index.ts | 1 + packages/ui/tsconfig.tsbuildinfo | 2 +- 41 files changed, 866 insertions(+), 742 deletions(-) rename apps/bridge-frontend/app/{_lib => _config}/config.ts (88%) create mode 100644 apps/bridge-frontend/app/_config/facebook.ts create mode 100644 apps/bridge-frontend/app/_config/signal.ts rename apps/bridge-frontend/app/{_lib => _config}/users.ts (94%) rename apps/bridge-frontend/app/{_lib/webhooks.ts => _config/voice.ts} (64%) create mode 100644 apps/bridge-frontend/app/_config/webhooks.ts create mode 100644 apps/bridge-frontend/app/_config/whatsapp.ts create mode 100644 apps/bridge-frontend/app/_lib/utils.ts delete mode 100644 apps/bridge-frontend/app/api/[service]/bots/[token]/register/route.ts delete mode 100644 apps/bridge-frontend/app/api/[service]/bots/[token]/request-code/route.ts delete mode 100644 apps/bridge-frontend/app/api/[service]/bots/[token]/reset-session/route.ts delete mode 100644 apps/bridge-frontend/app/api/[service]/bots/route.ts create mode 100644 apps/bridge-worker/tasks/signal/receive-signal-message.ts create mode 100644 apps/bridge-worker/tasks/signal/send-signal-message.ts create mode 100644 apps/bridge-worker/tasks/voice/receive-voice-message.ts create mode 100644 apps/bridge-worker/tasks/voice/send-voice-message.ts create mode 100644 apps/bridge-worker/tasks/whatsapp/send-whatsapp-message.ts create mode 100644 packages/ui/components/MultiValueField.tsx diff --git a/apps/bridge-frontend/app/(main)/[...segment]/@create/_components/Create.tsx b/apps/bridge-frontend/app/(main)/[...segment]/@create/_components/Create.tsx index 3c2fd28..425c983 100644 --- a/apps/bridge-frontend/app/(main)/[...segment]/@create/_components/Create.tsx +++ b/apps/bridge-frontend/app/(main)/[...segment]/@create/_components/Create.tsx @@ -3,10 +3,10 @@ import { FC } from "react"; import { useFormState } from "react-dom"; import { Grid } from "@mui/material"; -import { TextField } from "ui"; +import { TextField, Select, MultiValueField } from "ui"; import { Create as InternalCreate } from "@/app/_components/Create"; import { generateCreateAction } from "@/app/_lib/actions"; -import { serviceConfig } from "@/app/_lib/config"; +import { serviceConfig } from "@/app/_config/config"; import { FieldDescription } from "@/app/_lib/service"; type CreateProps = { @@ -15,8 +15,18 @@ type CreateProps = { export const Create: FC = ({ service }) => { const { - [service]: { entity, table, displayName, createFields: fields }, + [service]: { entity, table, displayName, createFields }, } = serviceConfig; + const fields = createFields.map((field: any) => { + const copy = { ...field }; + Object.keys(copy).forEach((key: any) => { + if (typeof copy[key] === "function") { + delete copy[key]; + } + }); + return copy; + }); + const createAction = generateCreateAction({ entity, table, fields }); const initialState = { message: null, @@ -39,18 +49,37 @@ export const Create: FC = ({ service }) => { formState={formState} > - {fields.map( + {createFields.map( (field) => !field.hidden && ( - + {field.kind === "select" && ( +