this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(forms): localize share URL conflict error

+15 -3
+1
app/api/forms/[formId]/route.ts
··· 21 21 session.user.id, 22 22 formId, 23 23 payload, 24 + session.user.locale, 24 25 ); 25 26 26 27 return NextResponse.json({ form });
+12 -3
lib/forms.ts
··· 279 279 return getDefaultFormCopy(locale).initialBlocks; 280 280 } 281 281 282 - async function ensureUniqueSlug(slug: string, exceptFormId?: string) { 282 + async function ensureUniqueSlug( 283 + slug: string, 284 + exceptFormId?: string, 285 + locale: AppLocale = DEFAULT_LOCALE, 286 + ) { 283 287 const existing = await db.form.findUnique({ 284 288 where: { slug }, 285 289 select: { id: true }, 286 290 }); 287 291 288 292 if (existing && existing.id !== exceptFormId) { 289 - throw new AppError("That share URL is already taken.", 409); 293 + const messages = await getMessages(locale); 294 + throw new AppError( 295 + translate(messages, "builder.toasts.shareUrlTaken"), 296 + 409, 297 + ); 290 298 } 291 299 } 292 300 ··· 887 895 userId: string, 888 896 formId: string, 889 897 payload: unknown, 898 + locale: AppLocale = DEFAULT_LOCALE, 890 899 ) { 891 900 const parsed = formMetadataSchema.parse(payload); 892 901 await assertAccessibleForm(userId, formId); 893 - await ensureUniqueSlug(parsed.slug, formId); 902 + await ensureUniqueSlug(parsed.slug, formId, locale); 894 903 895 904 const form = await db.form.update({ 896 905 where: { id: formId },
+1
locales/en.yml
··· 231 231 formPublished: Form published 232 232 formDrafted: Form moved back to draft 233 233 copiedShareLink: Copied share link 234 + shareUrlTaken: That share URL is already taken. 234 235 deleteFormConfirm: Delete this form permanently? This will also delete all blocks and responses. This action cannot be undone. 235 236 updatedBlockOrder: Updated block order 236 237 reorderError: Could not reorder blocks.
+1
locales/ru.yml
··· 231 231 formPublished: Форма опубликована 232 232 formDrafted: Форма возвращена в черновик 233 233 copiedShareLink: Ссылка скопирована 234 + shareUrlTaken: Этот публичный URL уже занят. 234 235 deleteFormConfirm: Удалить эту форму навсегда? Вместе с ней будут удалены все блоки и ответы. Это действие нельзя отменить. 235 236 updatedBlockOrder: Порядок блоков обновлён 236 237 reorderError: Не удалось изменить порядок блоков.