ui icon indicating copy to clipboard operation
ui copied to clipboard

Problem with error message translations if use valibot in form

Open ncodealex opened this issue 1 year ago • 2 comments

Environment

Version

v2.16.0

Reproduction

https://stackblitz.com/edit/nuxt-starter-cf4613?file=app.vue

Description

Hello! 👋 Thanks for package! I very likes use Nuxt Ui / Pro in my projects !

I use valibot in forms and set globally translation. ( please see reproduction )

Expected behavior: after set globally translation language in valibot, issues message shows in set globally lang Actual behavior: issues message shows in default language "en"

Under the hood we used ._parse method

#https://github.com/nuxt/ui/blob/main/src/runtime/components/forms/Form.vue

Please see string 263.

fabian-hiller says:

._parse is an internal API and should not be used directly. If you parse your schema with parse or safeParse, it should work as expected: https://valibot.dev/guides/parse-data/

For this reason we don't get messages with current translation.

Issue in valibot repo: https://github.com/fabian-hiller/valibot/issues/576

Please help with this problem, or if need i can try solve this problem and send new pull request!

Additional context

No response

Logs

No response

ncodealex avatar May 12 '24 18:05 ncodealex

Tagging @fabian-hiller for feedback

ncodealex avatar May 12 '24 22:05 ncodealex

Short explanation: Valibot captures the configuration when calling parse and safeParse and then passes it to ._parse. Since ._parse is called directly, the global configuration is probably ignored. I am happy to help with any questions.

fabian-hiller avatar May 13 '24 02:05 fabian-hiller

This should be fixed by https://github.com/nuxt/ui/pull/1848 and wrapping your schema in v.safeParser.

romhml avatar Jun 11 '24 09:06 romhml