@appcorp/fusion-storybook 0.2.91 → 0.2.93
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.
- package/base-modules/admission/context/use-admission-module.js +4 -3
- package/base-modules/admission/validate.d.ts +3 -3
- package/base-modules/admission/validate.js +4 -3
- package/base-modules/family-member/context.js +2 -1
- package/base-modules/family-member/validate.d.ts +1 -1
- package/base-modules/family-member/validate.js +2 -1
- package/package.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/utils/id-number.d.ts +1 -0
- package/utils/id-number.js +10 -0
|
@@ -11,6 +11,7 @@ import { ADMISSION_API_ROUTES } from "../../../constants";
|
|
|
11
11
|
import { admissionFormValidation } from "../validate";
|
|
12
12
|
import { getCachedWorkspaceSync } from "../../workspace/cache";
|
|
13
13
|
import { generateAdmissionReceiptPDF, } from "../../../utils/admission-pdf";
|
|
14
|
+
import { normalizeIdNumber } from "../../../utils/id-number";
|
|
14
15
|
import { formatNumber } from "@react-pakistan/util-functions/general/format-number";
|
|
15
16
|
import { formatPhoneDisplay } from "@react-pakistan/util-functions/general/format-phone-display";
|
|
16
17
|
import { Filter, Plus } from "lucide-react";
|
|
@@ -556,7 +557,7 @@ export const useAdmissionModule = () => {
|
|
|
556
557
|
siblings: updateParams.siblings,
|
|
557
558
|
},
|
|
558
559
|
fatherDetails: {
|
|
559
|
-
fatherIdNumber: updateParams.fatherIdNumber,
|
|
560
|
+
fatherIdNumber: normalizeIdNumber(updateParams.fatherIdNumber),
|
|
560
561
|
fatherFirstName: updateParams.fatherFirstName,
|
|
561
562
|
fatherLastName: updateParams.fatherLastName,
|
|
562
563
|
fatherMobile: updateParams.fatherMobile,
|
|
@@ -565,7 +566,7 @@ export const useAdmissionModule = () => {
|
|
|
565
566
|
emergencyContact: updateParams.emergencyContact === "Father",
|
|
566
567
|
},
|
|
567
568
|
motherDetails: {
|
|
568
|
-
motherIdNumber: updateParams.motherIdNumber || "",
|
|
569
|
+
motherIdNumber: normalizeIdNumber(updateParams.motherIdNumber || ""),
|
|
569
570
|
motherFirstName: updateParams.motherFirstName || "N/A",
|
|
570
571
|
motherLastName: updateParams.motherLastName || "N/A",
|
|
571
572
|
motherMobile: updateParams.motherMobile,
|
|
@@ -583,7 +584,7 @@ export const useAdmissionModule = () => {
|
|
|
583
584
|
admissionNotes: updateParams.admissionNotes,
|
|
584
585
|
},
|
|
585
586
|
studentDetails: {
|
|
586
|
-
studentIdNumber: updateParams.studentIdNumber,
|
|
587
|
+
studentIdNumber: normalizeIdNumber(updateParams.studentIdNumber),
|
|
587
588
|
discountCode: updateParams.discountCode,
|
|
588
589
|
dob: updateParams.dob,
|
|
589
590
|
firstName: updateParams.firstName,
|
|
@@ -9,7 +9,7 @@ export declare const admissionFormValidation: z.ZodObject<{
|
|
|
9
9
|
registrationCode: z.ZodString;
|
|
10
10
|
firstName: z.ZodString;
|
|
11
11
|
lastName: z.ZodString;
|
|
12
|
-
studentIdNumber: z.ZodString
|
|
12
|
+
studentIdNumber: z.ZodPipe<z.ZodString, z.ZodTransform<string | null | undefined, string>>;
|
|
13
13
|
dob: z.ZodString;
|
|
14
14
|
gender: z.ZodEnum<typeof GENDER>;
|
|
15
15
|
discountCode: z.ZodOptional<z.ZodString>;
|
|
@@ -17,13 +17,13 @@ export declare const admissionFormValidation: z.ZodObject<{
|
|
|
17
17
|
orphan: z.ZodOptional<z.ZodBoolean>;
|
|
18
18
|
fatherFirstName: z.ZodString;
|
|
19
19
|
fatherLastName: z.ZodString;
|
|
20
|
-
fatherIdNumber: z.ZodString
|
|
20
|
+
fatherIdNumber: z.ZodPipe<z.ZodString, z.ZodTransform<string | null | undefined, string>>;
|
|
21
21
|
fatherMobile: z.ZodString;
|
|
22
22
|
fatherOccupation: z.ZodOptional<z.ZodString>;
|
|
23
23
|
fatherOrganization: z.ZodOptional<z.ZodString>;
|
|
24
24
|
motherFirstName: z.ZodString;
|
|
25
25
|
motherLastName: z.ZodString;
|
|
26
|
-
motherIdNumber: z.ZodString
|
|
26
|
+
motherIdNumber: z.ZodPipe<z.ZodString, z.ZodTransform<string | null | undefined, string>>;
|
|
27
27
|
motherMobile: z.ZodString;
|
|
28
28
|
address: z.ZodString;
|
|
29
29
|
city: z.ZodString;
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { GENDER } from "../../type";
|
|
8
|
+
import { normalizeIdNumber } from "../../utils/id-number";
|
|
8
9
|
export const admissionFormValidation = z.object({
|
|
9
10
|
// Student Information
|
|
10
11
|
registrationCode: z.string().min(1, "Registration code is required"),
|
|
11
12
|
firstName: z.string().min(1, "First name is required"),
|
|
12
13
|
lastName: z.string().min(1, "Last name is required"),
|
|
13
|
-
studentIdNumber: z.string().min(1, "Student ID number is required"),
|
|
14
|
+
studentIdNumber: z.string().min(1, "Student ID number is required").transform(normalizeIdNumber),
|
|
14
15
|
dob: z
|
|
15
16
|
.string()
|
|
16
17
|
.min(1, "Date of birth is required")
|
|
@@ -33,14 +34,14 @@ export const admissionFormValidation = z.object({
|
|
|
33
34
|
// Father Information
|
|
34
35
|
fatherFirstName: z.string().min(1, "Father's first name is required"),
|
|
35
36
|
fatherLastName: z.string().min(1, "Father's last name is required"),
|
|
36
|
-
fatherIdNumber: z.string().min(1, "Father's ID number is required"),
|
|
37
|
+
fatherIdNumber: z.string().min(1, "Father's ID number is required").transform(normalizeIdNumber),
|
|
37
38
|
fatherMobile: z.string().min(1, "Father's mobile number is required"),
|
|
38
39
|
fatherOccupation: z.string().optional(),
|
|
39
40
|
fatherOrganization: z.string().optional(),
|
|
40
41
|
// Mother Information
|
|
41
42
|
motherFirstName: z.string().min(1, "Mother's first name is required"),
|
|
42
43
|
motherLastName: z.string().min(1, "Mother's last name is required"),
|
|
43
|
-
motherIdNumber: z.string().min(1, "Mother's ID number is required"),
|
|
44
|
+
motherIdNumber: z.string().min(1, "Mother's ID number is required").transform(normalizeIdNumber),
|
|
44
45
|
motherMobile: z.string().min(1, "Mother's mobile number is required"),
|
|
45
46
|
// Home Information
|
|
46
47
|
address: z.string().min(1, "Home address is required"),
|
|
@@ -26,6 +26,7 @@ import { useDebounce } from "@react-pakistan/util-functions/hooks/use-debounce";
|
|
|
26
26
|
import { createGenericModule } from "@react-pakistan/util-functions/factory/generic-module-factory";
|
|
27
27
|
import { DRAWER_TYPES } from "@react-pakistan/util-functions/factory/generic-component-factory";
|
|
28
28
|
import { pageLimit } from "./constants";
|
|
29
|
+
import { normalizeIdNumber } from "../../utils/id-number";
|
|
29
30
|
import { FAMILY_MEMBER_API_ROUTES } from "../../constants";
|
|
30
31
|
import { familyMemberFormValidation } from "./validate";
|
|
31
32
|
import { generateThemeToast, TOAST_VARIANT, } from "@appcorp/shadcn/lib/toast-utils";
|
|
@@ -407,7 +408,7 @@ export const useFamilyMemberModule = () => {
|
|
|
407
408
|
schema: familyMemberFormValidation,
|
|
408
409
|
successCallback: () => {
|
|
409
410
|
updateFetchNow(undefined, {
|
|
410
|
-
body: JSON.stringify(updateParams),
|
|
411
|
+
body: JSON.stringify(Object.assign(Object.assign({}, updateParams), { idNumber: normalizeIdNumber(updateParams.idNumber) })),
|
|
411
412
|
});
|
|
412
413
|
},
|
|
413
414
|
errorCallback: (errors) => {
|
|
@@ -25,7 +25,7 @@ export declare const familyMemberFormValidation: z.ZodObject<{
|
|
|
25
25
|
relationship: z.ZodOptional<z.ZodString>;
|
|
26
26
|
occupation: z.ZodOptional<z.ZodString>;
|
|
27
27
|
emergencyPhone: z.ZodOptional<z.ZodString>;
|
|
28
|
-
idNumber: z.ZodOptional<z.ZodString
|
|
28
|
+
idNumber: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | null | undefined, string | undefined>>;
|
|
29
29
|
avatar: z.ZodOptional<z.ZodString>;
|
|
30
30
|
isPrimary: z.ZodOptional<z.ZodBoolean>;
|
|
31
31
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Zod validation schemas for family-member form data.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
|
+
import { normalizeIdNumber } from "../../utils/id-number";
|
|
7
8
|
// ============================================================================
|
|
8
9
|
// VALIDATION KEYS (used as Zod error messages, translated via getTranslatedError)
|
|
9
10
|
// ============================================================================
|
|
@@ -35,7 +36,7 @@ export const familyMemberFormValidation = z.object({
|
|
|
35
36
|
relationship: z.string().optional(),
|
|
36
37
|
occupation: z.string().optional(),
|
|
37
38
|
emergencyPhone: z.string().optional(),
|
|
38
|
-
idNumber: z.string().optional(),
|
|
39
|
+
idNumber: z.string().optional().transform((val) => (val ? normalizeIdNumber(val) : val)),
|
|
39
40
|
avatar: z.string().optional(),
|
|
40
41
|
isPrimary: z.boolean().optional(),
|
|
41
42
|
enabled: z.boolean().optional(),
|