From 4a9bf575bd24b2e24348c65d9fbbf9c81a73cb35 Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Tue, 30 Jan 2024 16:36:29 -0500 Subject: Create expense from receipt (#69) * Create expense from receipt * Add modal * Update README --- src/lib/env.ts | 9 +++++++++ src/lib/utils.ts | 7 +++++++ 2 files changed, 16 insertions(+) (limited to 'src/lib') diff --git a/src/lib/env.ts b/src/lib/env.ts index 9912945..33b835d 100644 --- a/src/lib/env.ts +++ b/src/lib/env.ts @@ -17,6 +17,8 @@ const envSchema = z S3_UPLOAD_SECRET: z.string().optional(), S3_UPLOAD_BUCKET: z.string().optional(), S3_UPLOAD_REGION: z.string().optional(), + NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT: z.coerce.boolean().default(false), + OPENAI_API_KEY: z.string().optional(), }) .superRefine((env, ctx) => { if ( @@ -32,6 +34,13 @@ const envSchema = z 'If NEXT_PUBLIC_ENABLE_EXPENSE_DOCUMENTS is specified, then S3_* must be specified too', }) } + if (env.NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT && !env.OPENAI_API_KEY) { + ctx.addIssue({ + code: ZodIssueCode.custom, + message: + 'If NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT is specified, then OPENAI_API_KEY must be specified too', + }) + } }) export const env = envSchema.parse(process.env) diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 502daf3..d0b32e2 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -8,3 +8,10 @@ export function cn(...inputs: ClassValue[]) { export function delay(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)) } + +export function formatExpenseDate(date: Date) { + return date.toLocaleDateString('en-US', { + dateStyle: 'medium', + timeZone: 'UTC', + }) +} -- cgit v1.3