diff --git a/app/lib/actions/userSettingsActions.ts b/app/lib/actions/userSettingsActions.ts index e10d85b..43a14a9 100644 --- a/app/lib/actions/userSettingsActions.ts +++ b/app/lib/actions/userSettingsActions.ts @@ -15,7 +15,7 @@ import * as IBAN from 'iban'; export type State = { errors?: { ownerName?: string[]; - street?: string[]; + ownerStreet?: string[]; town?: string[]; iban?: string[]; currency?: string[]; @@ -30,7 +30,7 @@ export type State = { */ const FormSchema = (t: IntlTemplateFn) => z.object({ ownerName: z.string().max(25).optional(), - street: z.string().optional(), + ownerStreet: z.string().max(25).optional(), town: z.string().optional(), iban: z.string() .optional() @@ -57,12 +57,12 @@ const FormSchema = (t: IntlTemplateFn) => z.object({ }) .refine((data) => { if (data.show2dCodeInMonthlyStatement) { - return !!data.street && data.street.trim().length > 0; + return !!data.ownerStreet && data.ownerStreet.trim().length > 0; } return true; }, { - message: t("street-required"), - path: ["street"], + message: t("owner-street-required"), + path: ["ownerStreet"], }) .refine((data) => { if (data.show2dCodeInMonthlyStatement) { @@ -137,7 +137,7 @@ export const updateUserSettings = withUser(async (user: AuthenticatedUser, prevS const validatedFields = FormSchema(t).safeParse({ ownerName: formData.get('ownerName') || undefined, - street: formData.get('street') || undefined, + ownerStreet: formData.get('ownerStreet') || undefined, town: formData.get('town') || undefined, iban: formData.get('iban') || undefined, currency: formData.get('currency') || undefined, @@ -153,7 +153,7 @@ export const updateUserSettings = withUser(async (user: AuthenticatedUser, prevS }; } - const { ownerName, street, town, iban, currency, show2dCodeInMonthlyStatement } = validatedFields.data; + const { ownerName, ownerStreet, town, iban, currency, show2dCodeInMonthlyStatement } = validatedFields.data; // Normalize IBAN: remove spaces and convert to uppercase const normalizedIban = iban ? iban.replace(/\s/g, '').toUpperCase() : null; @@ -165,7 +165,7 @@ export const updateUserSettings = withUser(async (user: AuthenticatedUser, prevS const userSettings: UserSettings = { userId, ownerName: ownerName || null, - street: street || null, + ownerStreet: ownerStreet || null, town: town || null, iban: normalizedIban, currency: currency || null, diff --git a/app/lib/db-types.ts b/app/lib/db-types.ts index bdb4e19..48851f5 100644 --- a/app/lib/db-types.ts +++ b/app/lib/db-types.ts @@ -20,8 +20,8 @@ export interface UserSettings { userId: string; /** owner name */ ownerName?: string | null; - /** street */ - street?: string | null; + /** owner street */ + ownerStreet?: string | null; /** town */ town?: string | null; /** IBAN */ diff --git a/app/ui/UserSettingsForm.tsx b/app/ui/UserSettingsForm.tsx index 7220b34..9fc9ab0 100644 --- a/app/ui/UserSettingsForm.tsx +++ b/app/ui/UserSettingsForm.tsx @@ -28,7 +28,7 @@ const FormFields: FC = ({ userSettings, errors, message }) => { // Track current form values for real-time validation const [formValues, setFormValues] = useState({ ownerName: userSettings?.ownerName ?? "", - street: userSettings?.street ?? "", + ownerStreet: userSettings?.ownerStreet ?? "", town: userSettings?.town ?? "", iban: formatIban(userSettings?.iban) ?? "", currency: userSettings?.currency ?? "EUR", @@ -40,7 +40,7 @@ const FormFields: FC = ({ userSettings, errors, message }) => { // Check if any required field is missing (clean IBAN of spaces for validation) const cleanedIban = formValues.iban.replace(/\s/g, ''); - const hasMissingData = !formValues.ownerName || !formValues.street || !formValues.town || !cleanedIban || !formValues.currency; + const hasMissingData = !formValues.ownerName || !formValues.ownerStreet || !formValues.town || !cleanedIban || !formValues.currency; // Track whether to generate 2D code for tenant (use persisted value from database) const [show2dCodeInMonthlyStatement, setShow2dCodeInMonthlyStatement] = useState( @@ -96,21 +96,22 @@ const FormFields: FC = ({ userSettings, errors, message }) => {
handleInputChange("street", e.target.value)} + defaultValue={userSettings?.ownerStreet ?? ""} + onChange={(e) => handleInputChange("ownerStreet", e.target.value)} disabled={pending} /> -
- {errors?.street && - errors.street.map((error: string) => ( +
+ {errors?.ownerStreet && + errors.ownerStreet.map((error: string) => (

{error}

diff --git a/app/ui/ViewLocationCard.tsx b/app/ui/ViewLocationCard.tsx index faa727f..f15883c 100644 --- a/app/ui/ViewLocationCard.tsx +++ b/app/ui/ViewLocationCard.tsx @@ -29,7 +29,7 @@ export const ViewLocationCard:FC = ({location, userSettin AdresaPlatitelja: tenantStreet ?? "", SjedistePlatitelja: tenantTown ?? "", Primatelj: userSettings?.ownerName ?? "", - AdresaPrimatelja: userSettings?.street ?? "", + AdresaPrimatelja: userSettings?.ownerStreet ?? "", SjedistePrimatelja: userSettings?.town ?? "", IBAN: userSettings?.iban ?? "", ModelPlacanja: "HR00", diff --git a/messages/en.json b/messages/en.json index 1ebf6f9..222d4ed 100644 --- a/messages/en.json +++ b/messages/en.json @@ -191,8 +191,8 @@ "tenant-2d-code-toggle-label": "include 2D code in monthly statements", "owner-name-label": "Your First and Last Name", "owner-name-placeholder": "enter your first and last name", - "street-label": "Street", - "street-placeholder": "enter your street", + "owner-street-label": "Your Street and House Number", + "owner-street-placeholder": "enter your street and house number", "town-label": "Town", "town-placeholder": "enter your town", "iban-label": "IBAN", @@ -202,7 +202,7 @@ "cancel-button": "Cancel", "validation": { "owner-name-required": "Name is mandatory", - "street-required": "Street is mandatory", + "owner-street-required": "Street is mandatory", "town-required": "Town is mandatory", "iban-required": "Valid IBAN is mandatory", "iban-invalid": "Invalid IBAN format. Please enter a valid IBAN", diff --git a/messages/hr.json b/messages/hr.json index c82e73d..e140182 100644 --- a/messages/hr.json +++ b/messages/hr.json @@ -190,8 +190,8 @@ "tenant-2d-code-toggle-label": "prikazuj 2D barkod u mjesečnom obračunu", "owner-name-label": "Vaše ime i prezime", "owner-name-placeholder": "unesite svoje ime i prezime", - "street-label": "Ulica i kućni broj", - "street-placeholder": "unesite ulicu i kućni broj", + "owner-street-label": "Ulica i kućni broj", + "owner-street-placeholder": "unesite ulicu i kućni broj", "town-label": "Poštanski broj i Grad", "town-placeholder": "unesite poštanski broj i grad", "iban-label": "IBAN", @@ -201,7 +201,7 @@ "cancel-button": "Odbaci", "validation": { "owner-name-required": "Ime i prezime je obavezno", - "street-required": "Ulica je obavezna", + "owner-street-required": "Ulica je obavezna", "town-required": "Grad je obavezan", "iban-required": "Ispravan IBAN je obavezan", "iban-invalid": "Neispravan IBAN format. Molimo unesite ispravan IBAN.",