12 implement twilio sms (#37)

* add twilio sdk

* add twilio config

use app version in config

* remove default config

* phone regex

* bun update

* create client

* fix env var

* create Textarea component

* move TextInput

* allow snippets on labels

* update with label and error

* move button

* make button children snippet

* add form props

* allow region code

* add twilio FROM number

* rename to twilioClient

* implement simple messaging

* add twilio phone number as empty var

* format

* move twilio client to local on requests

* fix story

* on second thought, dont use locals since we are only using twilio in one place

Don't want to init a twilio client on every request when its only used
in on a single page

* use i18n for page text

* validate env with a script

* remove Zod validation when loading env vars
This commit is contained in:
Baobeld 2025-01-02 20:11:27 -05:00 committed by GitHub
parent a4d998665b
commit 1c5b37b24b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 418 additions and 119 deletions

View file

@ -3,7 +3,7 @@
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "bun database:up && bun prisma:push && vite dev",
"dev": "bun validate-env && bun database:up && bun prisma:push && vite dev",
"build": "vite build",
"build-storybook": "storybook build",
"database:up": "docker compose -p hestia -f devops/docker-compose.dev.yml up -d && docker compose -p hestia -f devops/docker-compose.dev.yml -f devops/docker-compose.wait.yml run --rm wait -c hestia-database:5432",
@ -24,7 +24,8 @@
"prisma:reset": "prisma migrate reset --force",
"prisma:studio": "prisma studio",
"prisma:validate": "prisma validate",
"prepare": "husky"
"prepare": "husky",
"validate-env": "bun ./scripts/validate-env.ts"
},
"devDependencies": {
"@chromatic-com/storybook": "^3.2.2",
@ -80,6 +81,7 @@
"pino": "^9.5.0",
"pino-pretty": "^13.0.0",
"tailwind-merge": "^2.5.5",
"twilio": "^5.4.0",
"zod": "^3.24.0"
}
}