From 2af066038351ab0634c359a688fe712a539992b4 Mon Sep 17 00:00:00 2001 From: Jan T Date: Wed, 14 Feb 2024 17:18:30 +0200 Subject: Optimize docker image size (#91) * Move prisma to runtime dependencies * Optimize Dockerfile and build script * Fix: remove mention of generated next-env.d.ts in Dockerfile * Add missing reset.d.ts file to Dockerfile * Remove compression steps from Dockerfile and entrypoint script * Add an env file with mocked env vars added for Docker production builds * Use server actions to get runtime env vars * Refactor types and names * Rollback serverActions, use parsed Zod object for runtime env * Reintroduce featureFlags object to avoid passing secret envs to the frontend * Improve string to boolean coercion Co-authored-by: Sebastien Castiel * Run prettier autoformat * Fix type issue, rename function to match behaviour better --------- Co-authored-by: Lauri Vuorela Co-authored-by: Sebastien Castiel --- src/components/expense-form.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/components/expense-form.tsx') diff --git a/src/components/expense-form.tsx b/src/components/expense-form.tsx index fd3f6e2..a7e549c 100644 --- a/src/components/expense-form.tsx +++ b/src/components/expense-form.tsx @@ -35,6 +35,7 @@ import { SelectValue, } from '@/components/ui/select' import { getCategories, getExpense, getGroup, randomId } from '@/lib/api' +import { RuntimeFeatureFlags } from '@/lib/featureFlags' import { ExpenseFormValues, expenseFormSchema } from '@/lib/schemas' import { cn } from '@/lib/utils' import { zodResolver } from '@hookform/resolvers/zod' @@ -52,6 +53,7 @@ export type Props = { categories: NonNullable>> onSubmit: (values: ExpenseFormValues) => Promise onDelete?: () => Promise + runtimeFeatureFlags: RuntimeFeatureFlags } export function ExpenseForm({ @@ -60,6 +62,7 @@ export function ExpenseForm({ categories, onSubmit, onDelete, + runtimeFeatureFlags, }: Props) { const isCreate = expense === undefined const searchParams = useSearchParams() @@ -161,7 +164,7 @@ export function ExpenseForm({ {...field} onBlur={async () => { field.onBlur() // avoid skipping other blur event listeners since we overwrite `field` - if (process.env.NEXT_PUBLIC_ENABLE_CATEGORY_EXTRACT) { + if (runtimeFeatureFlags.enableCategoryExtract) { setCategoryLoading(true) const { categoryId } = await extractCategoryFromTitle( field.value, @@ -541,7 +544,7 @@ export function ExpenseForm({ - {process.env.NEXT_PUBLIC_ENABLE_EXPENSE_DOCUMENTS && ( + {runtimeFeatureFlags.enableExpenseDocuments && ( -- cgit v1.3