v4.0.5
Component architecture - Reorganise src/lib/components into pages/, sections/, ui/ subdirectories and update all imports across routes and tests. Owner admin dashboard (+2k lines) - Scheduled welcome-pack emails: durable queue with cancel/reschedule and a background sender loop (SCHEDULED_CHECK_INTERVAL_SECONDS, default 60s). - Custom welcome-pack subject line, preview recipients, and client BCC. - Add-client, edit client profile, and reset-onboarding flows. - "View as client" onboarding preview (owner impersonation, dry-run submit). - Tabbed owner welcome route (/owner/welcome/[[tab]]). MYOB integration - New mail_api/myob.py: create new clients as MYOB AccountRight customer contacts. Disabled until all MYOB_* env vars are set (no-op otherwise). Onboarding - New "Does your dog resource guard?" Yes/No question in the Behaviour step. - Persist vetAddress, flea/tick, and pet-insurance fields server-side. Misc - vite config, new hooks.ts, responsive CSS tweaks, deploy/docker config, mail-api README and start-dev.ps1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,7 @@ export default defineConfig(() => {
|
||||
|
||||
const createMailProxy = (apiPath: keyof typeof proxyRoutes): ProxyOptions => ({
|
||||
target: submitProxyTarget,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(apiPath, proxyRoutes[apiPath]),
|
||||
configure(proxy) {
|
||||
proxy.on('error', (error: NodeJS.ErrnoException, req, res) => {
|
||||
@@ -213,14 +214,17 @@ export default defineConfig(() => {
|
||||
'/api/contract-submit': createMailProxy('/api/contract-submit'),
|
||||
'/api/auth': {
|
||||
target: submitProxyTarget,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace('/api/auth', '/auth'),
|
||||
},
|
||||
'/api/owner': {
|
||||
target: submitProxyTarget,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace('/api/owner', '/owner'),
|
||||
},
|
||||
'/api/save-draft': {
|
||||
target: submitProxyTarget,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace('/api/save-draft', '/auth/save-draft'),
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user