nfx-ui 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/events/system.d.ts +9 -0
  4. package/dist/events/system.d.ts.map +1 -1
  5. package/dist/events/system.js +9 -1
  6. package/dist/events/system.js.map +1 -1
  7. package/dist/hooks/auth.d.ts +33 -30
  8. package/dist/hooks/auth.d.ts.map +1 -1
  9. package/dist/hooks/auth.js +234 -227
  10. package/dist/hooks/auth.js.map +1 -1
  11. package/dist/hooks/index.d.ts +1 -0
  12. package/dist/hooks/index.d.ts.map +1 -1
  13. package/dist/hooks/index.js +9 -8
  14. package/dist/hooks/toast.d.ts +12 -0
  15. package/dist/hooks/toast.d.ts.map +1 -0
  16. package/dist/hooks/toast.js +13 -0
  17. package/dist/hooks/toast.js.map +1 -0
  18. package/dist/languages/hooks/useLanguageLabel.d.ts.map +1 -1
  19. package/dist/languages/hooks/useLanguageLabel.js +11 -10
  20. package/dist/languages/hooks/useLanguageLabel.js.map +1 -1
  21. package/dist/languages/index.d.ts +0 -1
  22. package/dist/languages/index.d.ts.map +1 -1
  23. package/dist/languages/index.js +9 -10
  24. package/dist/languages/languages/i18n.d.ts.map +1 -1
  25. package/dist/languages/languages/i18n.js +30 -41
  26. package/dist/languages/languages/i18n.js.map +1 -1
  27. package/dist/schemas/loginSchema.d.ts +3 -3
  28. package/dist/schemas/loginSchema.d.ts.map +1 -1
  29. package/dist/schemas/loginSchema.js +22 -23
  30. package/dist/schemas/loginSchema.js.map +1 -1
  31. package/dist/schemas/profileEditSchema.d.ts +1 -1
  32. package/dist/schemas/profileEditSchema.d.ts.map +1 -1
  33. package/dist/schemas/profileEditSchema.js +18 -19
  34. package/dist/schemas/profileEditSchema.js.map +1 -1
  35. package/dist/schemas/signupSchema.d.ts +2 -2
  36. package/dist/schemas/signupSchema.d.ts.map +1 -1
  37. package/dist/schemas/signupSchema.js +16 -17
  38. package/dist/schemas/signupSchema.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/events/system.ts +16 -0
  41. package/src/hooks/auth.ts +100 -109
  42. package/src/hooks/index.ts +1 -0
  43. package/src/hooks/toast.ts +23 -0
  44. package/src/languages/hooks/useLanguageLabel.ts +2 -3
  45. package/src/languages/index.ts +0 -1
  46. package/src/languages/languages/i18n.ts +3 -17
  47. package/src/schemas/loginSchema.ts +3 -6
  48. package/src/schemas/profileEditSchema.ts +1 -3
  49. package/src/schemas/signupSchema.ts +2 -4
  50. package/dist/languages/resources/en/language.js +0 -52
  51. package/dist/languages/resources/en/language.js.map +0 -1
  52. package/dist/languages/resources/en/language.json.d.ts +0 -49
  53. package/dist/languages/resources/en/layout.js +0 -9
  54. package/dist/languages/resources/en/layout.js.map +0 -1
  55. package/dist/languages/resources/en/layout.json.d.ts +0 -9
  56. package/dist/languages/resources/en/preference.js +0 -50
  57. package/dist/languages/resources/en/preference.js.map +0 -1
  58. package/dist/languages/resources/en/preference.json.d.ts +0 -51
  59. package/dist/languages/resources/en/theme.js +0 -19
  60. package/dist/languages/resources/en/theme.js.map +0 -1
  61. package/dist/languages/resources/en/theme.json.d.ts +0 -17
  62. package/dist/languages/resources/fr/language.js +0 -52
  63. package/dist/languages/resources/fr/language.js.map +0 -1
  64. package/dist/languages/resources/fr/language.json.d.ts +0 -49
  65. package/dist/languages/resources/fr/layout.js +0 -9
  66. package/dist/languages/resources/fr/layout.js.map +0 -1
  67. package/dist/languages/resources/fr/layout.json.d.ts +0 -9
  68. package/dist/languages/resources/fr/preference.js +0 -50
  69. package/dist/languages/resources/fr/preference.js.map +0 -1
  70. package/dist/languages/resources/fr/preference.json.d.ts +0 -51
  71. package/dist/languages/resources/fr/theme.js +0 -19
  72. package/dist/languages/resources/fr/theme.js.map +0 -1
  73. package/dist/languages/resources/fr/theme.json.d.ts +0 -17
  74. package/dist/languages/resources/index.d.ts +0 -9
  75. package/dist/languages/resources/index.d.ts.map +0 -1
  76. package/dist/languages/resources/index.js +0 -54
  77. package/dist/languages/resources/index.js.map +0 -1
  78. package/dist/languages/resources/zh/language.js +0 -52
  79. package/dist/languages/resources/zh/language.js.map +0 -1
  80. package/dist/languages/resources/zh/language.json.d.ts +0 -49
  81. package/dist/languages/resources/zh/layout.js +0 -9
  82. package/dist/languages/resources/zh/layout.js.map +0 -1
  83. package/dist/languages/resources/zh/layout.json.d.ts +0 -9
  84. package/dist/languages/resources/zh/preference.js +0 -50
  85. package/dist/languages/resources/zh/preference.js.map +0 -1
  86. package/dist/languages/resources/zh/preference.json.d.ts +0 -51
  87. package/dist/languages/resources/zh/theme.js +0 -19
  88. package/dist/languages/resources/zh/theme.js.map +0 -1
  89. package/dist/languages/resources/zh/theme.json.d.ts +0 -17
  90. package/src/languages/resources/en/language.json +0 -47
  91. package/src/languages/resources/en/layout.json +0 -6
  92. package/src/languages/resources/en/preference.json +0 -49
  93. package/src/languages/resources/en/theme.json +0 -14
  94. package/src/languages/resources/fr/language.json +0 -47
  95. package/src/languages/resources/fr/layout.json +0 -6
  96. package/src/languages/resources/fr/preference.json +0 -49
  97. package/src/languages/resources/fr/theme.json +0 -14
  98. package/src/languages/resources/index.ts +0 -62
  99. package/src/languages/resources/zh/language.json +0 -47
  100. package/src/languages/resources/zh/layout.json +0 -6
  101. package/src/languages/resources/zh/preference.json +0 -49
  102. package/src/languages/resources/zh/theme.json +0 -14
@@ -1,19 +1,18 @@
1
- import { useTranslation as e } from "react-i18next";
2
- import { zodResolver as t } from "@hookform/resolvers/zod";
3
- import { useForm as n } from "react-hook-form";
4
- import { z as r } from "zod";
1
+ import { zodResolver as e } from "@hookform/resolvers/zod";
2
+ import { useForm as t } from "react-hook-form";
3
+ import { z as n } from "zod";
5
4
  //#region src/schemas/loginSchema.ts
6
- function i(e) {
7
- return r.object({
8
- email: r.string().min(1, e("form.validation.emailRequired")).email(e("form.validation.emailInvalid")),
9
- password: r.string().min(1, e("form.validation.passwordRequired")),
10
- rememberMe: r.boolean().optional()
5
+ function r(e) {
6
+ return n.object({
7
+ email: n.string().min(1, e("form.validation.emailRequired")).email(e("form.validation.emailInvalid")),
8
+ password: n.string().min(1, e("form.validation.passwordRequired")),
9
+ rememberMe: n.boolean().optional()
11
10
  });
12
11
  }
13
- var a = () => {
14
- let { t: r } = e("pages.Account.Login"), a = i(r);
15
- return n({
16
- resolver: t(a),
12
+ var i = (n) => {
13
+ let i = r(n);
14
+ return t({
15
+ resolver: e(i),
17
16
  mode: "onChange",
18
17
  defaultValues: {
19
18
  email: "",
@@ -22,17 +21,17 @@ var a = () => {
22
21
  }
23
22
  });
24
23
  };
25
- function o(e) {
26
- return r.object({
27
- phone: r.string().min(1, e("form.validation.phoneRequired")).min(6, e("form.validation.phoneInvalid")),
28
- password: r.string().min(1, e("form.validation.passwordRequired")),
29
- rememberMe: r.boolean().optional()
24
+ function a(e) {
25
+ return n.object({
26
+ phone: n.string().min(1, e("form.validation.phoneRequired")).min(6, e("form.validation.phoneInvalid")),
27
+ password: n.string().min(1, e("form.validation.passwordRequired")),
28
+ rememberMe: n.boolean().optional()
30
29
  });
31
30
  }
32
- var s = () => {
33
- let { t: r } = e("pages.Account.Login"), i = o(r);
34
- return n({
35
- resolver: t(i),
31
+ var o = (n) => {
32
+ let r = a(n);
33
+ return t({
34
+ resolver: e(r),
36
35
  mode: "onChange",
37
36
  defaultValues: {
38
37
  phone: "",
@@ -42,6 +41,6 @@ var s = () => {
42
41
  });
43
42
  };
44
43
  //#endregion
45
- export { i as createLoginSchema, o as createLoginWithPhoneSchema, a as useInitLoginForm, s as useInitLoginWithPhoneForm };
44
+ export { r as createLoginSchema, a as createLoginWithPhoneSchema, i as useInitLoginForm, o as useInitLoginWithPhoneForm };
46
45
 
47
46
  //# sourceMappingURL=loginSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loginSchema.js","names":[],"sources":["../../src/schemas/loginSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { z } from \"zod\";\n\n/** 登录表单;校验文案来自 host `pages.Account.Login` → `form.validation.*` */\nexport function createLoginSchema(t: TFunction) {\n return z.object({\n email: z.string().min(1, t(\"form.validation.emailRequired\")).email(t(\"form.validation.emailInvalid\")),\n password: z.string().min(1, t(\"form.validation.passwordRequired\")),\n rememberMe: z.boolean().optional(),\n });\n}\n\nexport type LoginFormData = z.infer<ReturnType<typeof createLoginSchema>>;\n\nexport const useInitLoginForm = () => {\n const { t } = useTranslation(\"pages.Account.Login\");\n const schema = createLoginSchema(t);\n\n return useForm<LoginFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n email: \"\",\n password: \"\",\n rememberMe: false,\n },\n });\n};\n\nexport function createLoginWithPhoneSchema(t: TFunction) {\n return z.object({\n phone: z.string().min(1, t(\"form.validation.phoneRequired\")).min(6, t(\"form.validation.phoneInvalid\")),\n password: z.string().min(1, t(\"form.validation.passwordRequired\")),\n rememberMe: z.boolean().optional(),\n });\n}\n\nexport type LoginWithPhoneFormData = z.infer<ReturnType<typeof createLoginWithPhoneSchema>>;\n\nexport const useInitLoginWithPhoneForm = () => {\n const { t } = useTranslation(\"pages.Account.Login\");\n const schema = createLoginWithPhoneSchema(t);\n\n return useForm<LoginWithPhoneFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n phone: \"\",\n password: \"\",\n rememberMe: false,\n },\n });\n};\n"],"mappings":";;;;;AAQA,SAAgB,EAAkB,GAAc;CAC9C,OAAO,EAAE,OAAO;EACd,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,+BAA+B,CAAC,CAAC,CAAC,MAAM,EAAE,8BAA8B,CAAC;EACpG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,kCAAkC,CAAC;EACjE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC;AACH;AAIA,IAAa,UAAyB;CACpC,IAAM,EAAE,SAAM,EAAe,qBAAqB,GAC5C,IAAS,EAAkB,CAAC;CAElC,OAAO,EAAuB;EAC5B,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,UAAU;GACV,YAAY;EACd;CACF,CAAC;AACH;AAEA,SAAgB,EAA2B,GAAc;CACvD,OAAO,EAAE,OAAO;EACd,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,+BAA+B,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,8BAA8B,CAAC;EACrG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,kCAAkC,CAAC;EACjE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC;AACH;AAIA,IAAa,UAAkC;CAC7C,IAAM,EAAE,SAAM,EAAe,qBAAqB,GAC5C,IAAS,EAA2B,CAAC;CAE3C,OAAO,EAAgC;EACrC,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,UAAU;GACV,YAAY;EACd;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"loginSchema.js","names":[],"sources":["../../src/schemas/loginSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\n\n/** 登录表单;校验文案由 host 页面传入的 `t` 提供(`form.validation.*`)。 */\nexport function createLoginSchema(t: TFunction) {\n return z.object({\n email: z.string().min(1, t(\"form.validation.emailRequired\")).email(t(\"form.validation.emailInvalid\")),\n password: z.string().min(1, t(\"form.validation.passwordRequired\")),\n rememberMe: z.boolean().optional(),\n });\n}\n\nexport type LoginFormData = z.infer<ReturnType<typeof createLoginSchema>>;\n\nexport const useInitLoginForm = (t: TFunction) => {\n const schema = createLoginSchema(t);\n\n return useForm<LoginFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n email: \"\",\n password: \"\",\n rememberMe: false,\n },\n });\n};\n\nexport function createLoginWithPhoneSchema(t: TFunction) {\n return z.object({\n phone: z.string().min(1, t(\"form.validation.phoneRequired\")).min(6, t(\"form.validation.phoneInvalid\")),\n password: z.string().min(1, t(\"form.validation.passwordRequired\")),\n rememberMe: z.boolean().optional(),\n });\n}\n\nexport type LoginWithPhoneFormData = z.infer<ReturnType<typeof createLoginWithPhoneSchema>>;\n\nexport const useInitLoginWithPhoneForm = (t: TFunction) => {\n const schema = createLoginWithPhoneSchema(t);\n\n return useForm<LoginWithPhoneFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n phone: \"\",\n password: \"\",\n rememberMe: false,\n },\n });\n};\n"],"mappings":";;;;AAOA,SAAgB,EAAkB,GAAc;CAC9C,OAAO,EAAE,OAAO;EACd,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,+BAA+B,CAAC,CAAC,CAAC,MAAM,EAAE,8BAA8B,CAAC;EACpG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,kCAAkC,CAAC;EACjE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC;AACH;AAIA,IAAa,KAAoB,MAAiB;CAChD,IAAM,IAAS,EAAkB,CAAC;CAElC,OAAO,EAAuB;EAC5B,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,UAAU;GACV,YAAY;EACd;CACF,CAAC;AACH;AAEA,SAAgB,EAA2B,GAAc;CACvD,OAAO,EAAE,OAAO;EACd,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,+BAA+B,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,8BAA8B,CAAC;EACrG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,kCAAkC,CAAC;EACjE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC;AACH;AAIA,IAAa,KAA6B,MAAiB;CACzD,IAAM,IAAS,EAA2B,CAAC;CAE3C,OAAO,EAAgC;EACrC,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,UAAU;GACV,YAAY;EACd;CACF,CAAC;AACH"}
@@ -21,7 +21,7 @@ export declare function createUserProfileBackgroundsFieldSchema(t: TFunction, ma
21
21
  imageId: z.ZodString;
22
22
  sortOrder: z.ZodNumber;
23
23
  }, z.core.$strip>>;
24
- export declare function useInitUserProfileEditForm(profile: Profile.Response.ProfileBase): import('react-hook-form').UseFormReturn<{
24
+ export declare function useInitUserProfileEditForm(t: TFunction, profile: Profile.Response.ProfileBase): import('react-hook-form').UseFormReturn<{
25
25
  profileLanguage: LanguageEnum;
26
26
  displayName: string;
27
27
  firstName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"profileEditSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/profileEditSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAY,YAAY,EAAE,MAAM,cAAc,CAAC;AAKtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,uBAAuB,CAc3G;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,SAAS;;;;;;;;;;;;kBAmBvD;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAE9F,wBAAgB,uCAAuC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM;;;mBAStF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;GAU/E"}
1
+ {"version":3,"file":"profileEditSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/profileEditSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAY,YAAY,EAAE,MAAM,cAAc,CAAC;AAItD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,uBAAuB,CAc3G;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,SAAS;;;;;;;;;;;;kBAmBvD;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAE9F,wBAAgB,uCAAuC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM;;;mBAStF;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;GAS7F"}
@@ -1,12 +1,11 @@
1
1
  import { safeStringable as e } from "../utils/safe.js";
2
2
  import { Language as t, LanguageEnum as n } from "../enums/language.js";
3
3
  import { toDateInputValue as r } from "../utils/time.js";
4
- import { useTranslation as i } from "react-i18next";
5
- import { zodResolver as a } from "@hookform/resolvers/zod";
6
- import { useForm as o } from "react-hook-form";
7
- import { z as s } from "zod";
4
+ import { zodResolver as i } from "@hookform/resolvers/zod";
5
+ import { useForm as a } from "react-hook-form";
6
+ import { z as o } from "zod";
8
7
  //#region src/schemas/profileEditSchema.ts
9
- function c(n) {
8
+ function s(n) {
10
9
  return {
11
10
  profileLanguage: t(n.profileLanguage),
12
11
  displayName: e(n.displayName),
@@ -21,37 +20,37 @@ function c(n) {
21
20
  bio: e(n.bio)
22
21
  };
23
22
  }
24
- function l(e) {
25
- let t = (t) => s.string().trim().max(t, e("edit.validation.maxLength", { max: t }));
26
- return s.object({
27
- profileLanguage: s.enum(n),
23
+ function c(e) {
24
+ let t = (t) => o.string().trim().max(t, e("edit.validation.maxLength", { max: t }));
25
+ return o.object({
26
+ profileLanguage: o.enum(n),
28
27
  displayName: t(150),
29
28
  firstName: t(100),
30
29
  lastName: t(100),
31
30
  country: t(100),
32
31
  city: t(100),
33
32
  gender: t(100),
34
- birthday: s.string().trim().refine((e) => e === "" || /^\d{4}-\d{2}-\d{2}$/.test(e), e("edit.validation.birthdayInvalid")),
33
+ birthday: o.string().trim().refine((e) => e === "" || /^\d{4}-\d{2}-\d{2}$/.test(e), e("edit.validation.birthdayInvalid")),
35
34
  website: t(100).refine((e) => !e || /^https?:\/\/.+/i.test(e), e("edit.validation.websiteInvalid")),
36
35
  timezone: t(100),
37
36
  bio: t(5e3)
38
37
  });
39
38
  }
40
- function u(e, t) {
41
- return s.array(s.object({
42
- imageId: s.string().min(1),
43
- sortOrder: s.number().int().nonnegative()
39
+ function l(e, t) {
40
+ return o.array(o.object({
41
+ imageId: o.string().min(1),
42
+ sortOrder: o.number().int().nonnegative()
44
43
  })).max(t, e("backgroundUpload.limitReached", { max: t }));
45
44
  }
46
- function d(e) {
47
- let { t } = i("pages.User.Profile.Edit"), n = l(t), r = c(e);
48
- return o({
49
- resolver: a(n),
45
+ function u(e, t) {
46
+ let n = c(e), r = s(t);
47
+ return a({
48
+ resolver: i(n),
50
49
  mode: "onChange",
51
50
  defaultValues: r
52
51
  });
53
52
  }
54
53
  //#endregion
55
- export { c as buildUserProfileEditDefaults, u as createUserProfileBackgroundsFieldSchema, l as createUserProfileEditSchema, d as useInitUserProfileEditForm };
54
+ export { s as buildUserProfileEditDefaults, l as createUserProfileBackgroundsFieldSchema, c as createUserProfileEditSchema, u as useInitUserProfileEditForm };
56
55
 
57
56
  //# sourceMappingURL=profileEditSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profileEditSchema.js","names":[],"sources":["../../src/schemas/profileEditSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\nimport type { Profile } from \"nfx-ui/types\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { Language, LanguageEnum } from \"nfx-ui/enums\";\nimport { toDateInputValue } from \"nfx-ui/utils/time\";\nimport { safeStringable } from \"nfx-ui/utils/safe\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { z } from \"zod\";\n\nexport function buildUserProfileEditDefaults(profile: Profile.Response.ProfileBase): UserProfileEditFormData {\n return {\n profileLanguage: Language(profile.profileLanguage),\n displayName: safeStringable(profile.displayName),\n firstName: safeStringable(profile.firstName),\n lastName: safeStringable(profile.lastName),\n country: safeStringable(profile.country),\n city: safeStringable(profile.city),\n gender: safeStringable(profile.gender),\n birthday: toDateInputValue(profile.birthday),\n website: safeStringable(profile.website),\n timezone: safeStringable(profile.timezone),\n bio: safeStringable(profile.bio),\n };\n}\n\nexport function createUserProfileEditSchema(t: TFunction) {\n const optionalString = (max: number) => z.string().trim().max(max, t(\"edit.validation.maxLength\", { max }));\n\n return z.object({\n profileLanguage: z.enum(LanguageEnum),\n displayName: optionalString(150),\n firstName: optionalString(100),\n lastName: optionalString(100),\n country: optionalString(100),\n city: optionalString(100),\n gender: optionalString(100),\n birthday: z\n .string()\n .trim()\n .refine((value) => value === \"\" || /^\\d{4}-\\d{2}-\\d{2}$/.test(value), t(\"edit.validation.birthdayInvalid\")),\n website: optionalString(100).refine((value) => !value || /^https?:\\/\\/.+/i.test(value), t(\"edit.validation.websiteInvalid\")),\n timezone: optionalString(100),\n bio: optionalString(5000),\n });\n}\n\nexport type UserProfileEditFormData = z.infer<ReturnType<typeof createUserProfileEditSchema>>;\n\nexport function createUserProfileBackgroundsFieldSchema(t: TFunction, maxImages: number) {\n return z\n .array(\n z.object({\n imageId: z.string().min(1),\n sortOrder: z.number().int().nonnegative(),\n }),\n )\n .max(maxImages, t(\"backgroundUpload.limitReached\", { max: maxImages }));\n}\n\nexport function useInitUserProfileEditForm(profile: Profile.Response.ProfileBase) {\n const { t } = useTranslation(\"pages.User.Profile.Edit\");\n const schema = createUserProfileEditSchema(t);\n const defaultValues = buildUserProfileEditDefaults(profile);\n\n return useForm<UserProfileEditFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues,\n });\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,EAA6B,GAAgE;CAC3G,OAAO;EACL,iBAAiB,EAAS,EAAQ,eAAe;EACjD,aAAa,EAAe,EAAQ,WAAW;EAC/C,WAAW,EAAe,EAAQ,SAAS;EAC3C,UAAU,EAAe,EAAQ,QAAQ;EACzC,SAAS,EAAe,EAAQ,OAAO;EACvC,MAAM,EAAe,EAAQ,IAAI;EACjC,QAAQ,EAAe,EAAQ,MAAM;EACrC,UAAU,EAAiB,EAAQ,QAAQ;EAC3C,SAAS,EAAe,EAAQ,OAAO;EACvC,UAAU,EAAe,EAAQ,QAAQ;EACzC,KAAK,EAAe,EAAQ,GAAG;CACjC;AACF;AAEA,SAAgB,EAA4B,GAAc;CACxD,IAAM,KAAkB,MAAgB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAK,EAAE,6BAA6B,EAAE,OAAI,CAAC,CAAC;CAE1G,OAAO,EAAE,OAAO;EACd,iBAAiB,EAAE,KAAK,CAAY;EACpC,aAAa,EAAe,GAAG;EAC/B,WAAW,EAAe,GAAG;EAC7B,UAAU,EAAe,GAAG;EAC5B,SAAS,EAAe,GAAG;EAC3B,MAAM,EAAe,GAAG;EACxB,QAAQ,EAAe,GAAG;EAC1B,UAAU,EACP,OAAO,CAAC,CACR,KAAK,CAAC,CACN,QAAQ,MAAU,MAAU,MAAM,sBAAsB,KAAK,CAAK,GAAG,EAAE,iCAAiC,CAAC;EAC5G,SAAS,EAAe,GAAG,CAAC,CAAC,QAAQ,MAAU,CAAC,KAAS,kBAAkB,KAAK,CAAK,GAAG,EAAE,gCAAgC,CAAC;EAC3H,UAAU,EAAe,GAAG;EAC5B,KAAK,EAAe,GAAI;CAC1B,CAAC;AACH;AAIA,SAAgB,EAAwC,GAAc,GAAmB;CACvF,OAAO,EACJ,MACC,EAAE,OAAO;EACP,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;EACzB,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY;CAC1C,CAAC,CACH,CAAC,CACA,IAAI,GAAW,EAAE,iCAAiC,EAAE,KAAK,EAAU,CAAC,CAAC;AAC1E;AAEA,SAAgB,EAA2B,GAAuC;CAChF,IAAM,EAAE,MAAM,EAAe,yBAAyB,GAChD,IAAS,EAA4B,CAAC,GACtC,IAAgB,EAA6B,CAAO;CAE1D,OAAO,EAAiC;EACtC,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"profileEditSchema.js","names":[],"sources":["../../src/schemas/profileEditSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\nimport type { Profile } from \"nfx-ui/types\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { Language, LanguageEnum } from \"nfx-ui/enums\";\nimport { toDateInputValue } from \"nfx-ui/utils/time\";\nimport { safeStringable } from \"nfx-ui/utils/safe\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\n\nexport function buildUserProfileEditDefaults(profile: Profile.Response.ProfileBase): UserProfileEditFormData {\n return {\n profileLanguage: Language(profile.profileLanguage),\n displayName: safeStringable(profile.displayName),\n firstName: safeStringable(profile.firstName),\n lastName: safeStringable(profile.lastName),\n country: safeStringable(profile.country),\n city: safeStringable(profile.city),\n gender: safeStringable(profile.gender),\n birthday: toDateInputValue(profile.birthday),\n website: safeStringable(profile.website),\n timezone: safeStringable(profile.timezone),\n bio: safeStringable(profile.bio),\n };\n}\n\nexport function createUserProfileEditSchema(t: TFunction) {\n const optionalString = (max: number) => z.string().trim().max(max, t(\"edit.validation.maxLength\", { max }));\n\n return z.object({\n profileLanguage: z.enum(LanguageEnum),\n displayName: optionalString(150),\n firstName: optionalString(100),\n lastName: optionalString(100),\n country: optionalString(100),\n city: optionalString(100),\n gender: optionalString(100),\n birthday: z\n .string()\n .trim()\n .refine((value) => value === \"\" || /^\\d{4}-\\d{2}-\\d{2}$/.test(value), t(\"edit.validation.birthdayInvalid\")),\n website: optionalString(100).refine((value) => !value || /^https?:\\/\\/.+/i.test(value), t(\"edit.validation.websiteInvalid\")),\n timezone: optionalString(100),\n bio: optionalString(5000),\n });\n}\n\nexport type UserProfileEditFormData = z.infer<ReturnType<typeof createUserProfileEditSchema>>;\n\nexport function createUserProfileBackgroundsFieldSchema(t: TFunction, maxImages: number) {\n return z\n .array(\n z.object({\n imageId: z.string().min(1),\n sortOrder: z.number().int().nonnegative(),\n }),\n )\n .max(maxImages, t(\"backgroundUpload.limitReached\", { max: maxImages }));\n}\n\nexport function useInitUserProfileEditForm(t: TFunction, profile: Profile.Response.ProfileBase) {\n const schema = createUserProfileEditSchema(t);\n const defaultValues = buildUserProfileEditDefaults(profile);\n\n return useForm<UserProfileEditFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues,\n });\n}\n"],"mappings":";;;;;;;AAUA,SAAgB,EAA6B,GAAgE;CAC3G,OAAO;EACL,iBAAiB,EAAS,EAAQ,eAAe;EACjD,aAAa,EAAe,EAAQ,WAAW;EAC/C,WAAW,EAAe,EAAQ,SAAS;EAC3C,UAAU,EAAe,EAAQ,QAAQ;EACzC,SAAS,EAAe,EAAQ,OAAO;EACvC,MAAM,EAAe,EAAQ,IAAI;EACjC,QAAQ,EAAe,EAAQ,MAAM;EACrC,UAAU,EAAiB,EAAQ,QAAQ;EAC3C,SAAS,EAAe,EAAQ,OAAO;EACvC,UAAU,EAAe,EAAQ,QAAQ;EACzC,KAAK,EAAe,EAAQ,GAAG;CACjC;AACF;AAEA,SAAgB,EAA4B,GAAc;CACxD,IAAM,KAAkB,MAAgB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAK,EAAE,6BAA6B,EAAE,OAAI,CAAC,CAAC;CAE1G,OAAO,EAAE,OAAO;EACd,iBAAiB,EAAE,KAAK,CAAY;EACpC,aAAa,EAAe,GAAG;EAC/B,WAAW,EAAe,GAAG;EAC7B,UAAU,EAAe,GAAG;EAC5B,SAAS,EAAe,GAAG;EAC3B,MAAM,EAAe,GAAG;EACxB,QAAQ,EAAe,GAAG;EAC1B,UAAU,EACP,OAAO,CAAC,CACR,KAAK,CAAC,CACN,QAAQ,MAAU,MAAU,MAAM,sBAAsB,KAAK,CAAK,GAAG,EAAE,iCAAiC,CAAC;EAC5G,SAAS,EAAe,GAAG,CAAC,CAAC,QAAQ,MAAU,CAAC,KAAS,kBAAkB,KAAK,CAAK,GAAG,EAAE,gCAAgC,CAAC;EAC3H,UAAU,EAAe,GAAG;EAC5B,KAAK,EAAe,GAAI;CAC1B,CAAC;AACH;AAIA,SAAgB,EAAwC,GAAc,GAAmB;CACvF,OAAO,EACJ,MACC,EAAE,OAAO;EACP,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;EACzB,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY;CAC1C,CAAC,CACH,CAAC,CACA,IAAI,GAAW,EAAE,iCAAiC,EAAE,KAAK,EAAU,CAAC,CAAC;AAC1E;AAEA,SAAgB,EAA2B,GAAc,GAAuC;CAC9F,IAAM,IAAS,EAA4B,CAAC,GACtC,IAAgB,EAA6B,CAAO;CAE1D,OAAO,EAAiC;EACtC,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN;CACF,CAAC;AACH"}
@@ -1,6 +1,6 @@
1
1
  import { TFunction } from 'i18next';
2
2
  import { z } from 'zod';
3
- /** 注册表单;校验文案来自 host `pages.Account.Signup` → `validation.*` */
3
+ /** 注册表单;校验文案由 host 页面传入的 `t` 提供(`validation.*`)。 */
4
4
  export declare function createSignupSchema(t: TFunction): z.ZodObject<{
5
5
  email: z.ZodString;
6
6
  verificationCode: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
@@ -9,7 +9,7 @@ export declare function createSignupSchema(t: TFunction): z.ZodObject<{
9
9
  rememberMe: z.ZodOptional<z.ZodBoolean>;
10
10
  }, z.core.$strip>;
11
11
  export type SignupFormData = z.infer<ReturnType<typeof createSignupSchema>>;
12
- export declare const useInitSignupForm: () => import('react-hook-form').UseFormReturn<{
12
+ export declare const useInitSignupForm: (t: TFunction) => import('react-hook-form').UseFormReturn<{
13
13
  email: string;
14
14
  verificationCode: string;
15
15
  password: string;
@@ -1 +1 @@
1
- {"version":3,"file":"signupSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/signupSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;;;;;;kBAiB9C;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAe7B,CAAC"}
1
+ {"version":3,"file":"signupSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/signupSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;;;;;;kBAiB9C;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB,GAAI,GAAG,SAAS;;;;;;;;;;;;EAc7C,CAAC"}
@@ -1,26 +1,25 @@
1
1
  import { VERIFICATION_CODE_ALPHABET as e, normalizeVerificationCode as t } from "../utils/domain/verificationCode.js";
2
- import { useTranslation as n } from "react-i18next";
3
- import { zodResolver as r } from "@hookform/resolvers/zod";
4
- import { useForm as i } from "react-hook-form";
5
- import { z as a } from "zod";
2
+ import { zodResolver as n } from "@hookform/resolvers/zod";
3
+ import { useForm as r } from "react-hook-form";
4
+ import { z as i } from "zod";
6
5
  //#region src/schemas/signupSchema.ts
7
- var o = RegExp(`^[${e}]{6}$`);
8
- function s(e) {
9
- return a.object({
10
- email: a.string().min(1, e("validation.emailRequired")).email(e("validation.emailInvalid")),
11
- verificationCode: a.string().min(1, e("validation.codeRequired")).transform((e) => t(e)).pipe(a.string().regex(o, e("validation.codeInvalid"))),
12
- password: a.string().min(1, e("validation.passwordRequired")).min(8, e("validation.passwordMin")),
13
- confirmPassword: a.string().min(1, e("validation.confirmRequired")),
14
- rememberMe: a.boolean().optional()
6
+ var a = RegExp(`^[${e}]{6}$`);
7
+ function o(e) {
8
+ return i.object({
9
+ email: i.string().min(1, e("validation.emailRequired")).email(e("validation.emailInvalid")),
10
+ verificationCode: i.string().min(1, e("validation.codeRequired")).transform((e) => t(e)).pipe(i.string().regex(a, e("validation.codeInvalid"))),
11
+ password: i.string().min(1, e("validation.passwordRequired")).min(8, e("validation.passwordMin")),
12
+ confirmPassword: i.string().min(1, e("validation.confirmRequired")),
13
+ rememberMe: i.boolean().optional()
15
14
  }).refine((e) => e.password === e.confirmPassword, {
16
15
  message: e("validation.passwordMismatch"),
17
16
  path: ["confirmPassword"]
18
17
  });
19
18
  }
20
- var c = () => {
21
- let { t: e } = n("pages.Account.Signup"), t = s(e);
22
- return i({
23
- resolver: r(t),
19
+ var s = (e) => {
20
+ let t = o(e);
21
+ return r({
22
+ resolver: n(t),
24
23
  mode: "onChange",
25
24
  defaultValues: {
26
25
  email: "",
@@ -32,6 +31,6 @@ var c = () => {
32
31
  });
33
32
  };
34
33
  //#endregion
35
- export { s as createSignupSchema, c as useInitSignupForm };
34
+ export { o as createSignupSchema, s as useInitSignupForm };
36
35
 
37
36
  //# sourceMappingURL=signupSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signupSchema.js","names":[],"sources":["../../src/schemas/signupSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { normalizeVerificationCode, VERIFICATION_CODE_ALPHABET } from \"nfx-ui/utils/domain/verificationCode\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { z } from \"zod\";\n\nconst VERIFICATION_CODE_PATTERN = new RegExp(`^[${VERIFICATION_CODE_ALPHABET}]{6}$`);\n\n/** 注册表单;校验文案来自 host `pages.Account.Signup` → `validation.*` */\nexport function createSignupSchema(t: TFunction) {\n return z\n .object({\n email: z.string().min(1, t(\"validation.emailRequired\")).email(t(\"validation.emailInvalid\")),\n verificationCode: z\n .string()\n .min(1, t(\"validation.codeRequired\"))\n .transform((value) => normalizeVerificationCode(value))\n .pipe(z.string().regex(VERIFICATION_CODE_PATTERN, t(\"validation.codeInvalid\"))),\n password: z.string().min(1, t(\"validation.passwordRequired\")).min(8, t(\"validation.passwordMin\")),\n confirmPassword: z.string().min(1, t(\"validation.confirmRequired\")),\n rememberMe: z.boolean().optional(),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: t(\"validation.passwordMismatch\"),\n path: [\"confirmPassword\"],\n });\n}\n\nexport type SignupFormData = z.infer<ReturnType<typeof createSignupSchema>>;\n\nexport const useInitSignupForm = () => {\n const { t } = useTranslation(\"pages.Account.Signup\");\n const schema = createSignupSchema(t);\n\n return useForm<SignupFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n email: \"\",\n verificationCode: \"\",\n password: \"\",\n confirmPassword: \"\",\n rememberMe: false,\n },\n });\n};\n"],"mappings":";;;;;;AAQA,IAAM,IAAgC,OAAO,KAAK,EAA2B,MAAM;AAGnF,SAAgB,EAAmB,GAAc;CAC/C,OAAO,EACJ,OAAO;EACN,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC,MAAM,EAAE,yBAAyB,CAAC;EAC1F,kBAAkB,EACf,OAAO,CAAC,CACR,IAAI,GAAG,EAAE,yBAAyB,CAAC,CAAC,CACpC,WAAW,MAAU,EAA0B,CAAK,CAAC,CAAC,CACtD,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,GAA2B,EAAE,wBAAwB,CAAC,CAAC;EAChF,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,wBAAwB,CAAC;EAChG,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,4BAA4B,CAAC;EAClE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC,CAAC,CACD,QAAQ,MAAS,EAAK,aAAa,EAAK,iBAAiB;EACxD,SAAS,EAAE,6BAA6B;EACxC,MAAM,CAAC,iBAAiB;CAC1B,CAAC;AACL;AAIA,IAAa,UAA0B;CACrC,IAAM,EAAE,SAAM,EAAe,sBAAsB,GAC7C,IAAS,EAAmB,CAAC;CAEnC,OAAO,EAAwB;EAC7B,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,kBAAkB;GAClB,UAAU;GACV,iBAAiB;GACjB,YAAY;EACd;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"signupSchema.js","names":[],"sources":["../../src/schemas/signupSchema.ts"],"sourcesContent":["import type { TFunction } from \"i18next\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { normalizeVerificationCode, VERIFICATION_CODE_ALPHABET } from \"nfx-ui/utils/domain/verificationCode\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\n\nconst VERIFICATION_CODE_PATTERN = new RegExp(`^[${VERIFICATION_CODE_ALPHABET}]{6}$`);\n\n/** 注册表单;校验文案由 host 页面传入的 `t` 提供(`validation.*`)。 */\nexport function createSignupSchema(t: TFunction) {\n return z\n .object({\n email: z.string().min(1, t(\"validation.emailRequired\")).email(t(\"validation.emailInvalid\")),\n verificationCode: z\n .string()\n .min(1, t(\"validation.codeRequired\"))\n .transform((value) => normalizeVerificationCode(value))\n .pipe(z.string().regex(VERIFICATION_CODE_PATTERN, t(\"validation.codeInvalid\"))),\n password: z.string().min(1, t(\"validation.passwordRequired\")).min(8, t(\"validation.passwordMin\")),\n confirmPassword: z.string().min(1, t(\"validation.confirmRequired\")),\n rememberMe: z.boolean().optional(),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: t(\"validation.passwordMismatch\"),\n path: [\"confirmPassword\"],\n });\n}\n\nexport type SignupFormData = z.infer<ReturnType<typeof createSignupSchema>>;\n\nexport const useInitSignupForm = (t: TFunction) => {\n const schema = createSignupSchema(t);\n\n return useForm<SignupFormData>({\n resolver: zodResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n email: \"\",\n verificationCode: \"\",\n password: \"\",\n confirmPassword: \"\",\n rememberMe: false,\n },\n });\n};\n"],"mappings":";;;;;AAOA,IAAM,IAAgC,OAAO,KAAK,EAA2B,MAAM;AAGnF,SAAgB,EAAmB,GAAc;CAC/C,OAAO,EACJ,OAAO;EACN,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC,MAAM,EAAE,yBAAyB,CAAC;EAC1F,kBAAkB,EACf,OAAO,CAAC,CACR,IAAI,GAAG,EAAE,yBAAyB,CAAC,CAAC,CACpC,WAAW,MAAU,EAA0B,CAAK,CAAC,CAAC,CACtD,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,GAA2B,EAAE,wBAAwB,CAAC,CAAC;EAChF,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,wBAAwB,CAAC;EAChG,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,4BAA4B,CAAC;EAClE,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,CAAC,CAAC,CACD,QAAQ,MAAS,EAAK,aAAa,EAAK,iBAAiB;EACxD,SAAS,EAAE,6BAA6B;EACxC,MAAM,CAAC,iBAAiB;CAC1B,CAAC;AACL;AAIA,IAAa,KAAqB,MAAiB;CACjD,IAAM,IAAS,EAAmB,CAAC;CAEnC,OAAO,EAAwB;EAC7B,UAAU,EAAY,CAAM;EAC5B,MAAM;EACN,eAAe;GACb,OAAO;GACP,kBAAkB;GAClB,UAAU;GACV,iBAAiB;GACjB,YAAY;EACd;CACF,CAAC;AACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nfx-ui",
3
- "version": "0.34.0",
3
+ "version": "0.36.0",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -9,6 +9,8 @@ import { singleton } from "nfx-ui/utils/singleton";
9
9
  export const systemEvents = defineEvents({
10
10
  SHOW_ERROR: "SYSTEM:SHOW_ERROR",
11
11
  SHOW_SUCCESS: "SYSTEM:SHOW_SUCCESS",
12
+ SHOW_LOADING: "SYSTEM:SHOW_LOADING",
13
+ HIDE_LOADING: "SYSTEM:HIDE_LOADING",
12
14
  });
13
15
 
14
16
  type SystemEvent = EventNamesOf<typeof systemEvents>;
@@ -26,9 +28,15 @@ export type SystemShowSuccessPayload =
26
28
  onClick?: () => void;
27
29
  };
28
30
 
31
+ export type SystemShowLoadingPayload = {
32
+ message?: string;
33
+ };
34
+
29
35
  type SystemPayloadMap = {
30
36
  "SYSTEM:SHOW_ERROR": SystemShowErrorPayload;
31
37
  "SYSTEM:SHOW_SUCCESS": SystemShowSuccessPayload;
38
+ "SYSTEM:SHOW_LOADING": SystemShowLoadingPayload;
39
+ "SYSTEM:HIDE_LOADING": void;
32
40
  };
33
41
 
34
42
  class SystemEventEmitter extends EventEmitter<SystemEvent, SystemPayloadMap> {
@@ -43,6 +51,14 @@ class SystemEventEmitter extends EventEmitter<SystemEvent, SystemPayloadMap> {
43
51
  showSuccess(props: SystemShowSuccessPayload) {
44
52
  this.emit(systemEvents.SHOW_SUCCESS, props);
45
53
  }
54
+
55
+ showLoading(message?: string) {
56
+ this.emit(systemEvents.SHOW_LOADING, { message });
57
+ }
58
+
59
+ hideLoading() {
60
+ this.emit(systemEvents.HIDE_LOADING);
61
+ }
46
62
  }
47
63
 
48
64
  export const systemEventEmitter = new (singleton(SystemEventEmitter))();