optimization => create guilds
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import * as yup from "yup";
|
||||
import { normalizeDatabaseDate } from "./dateUtils";
|
||||
|
||||
/**
|
||||
* Creates validation schema for the form
|
||||
* @param {boolean} isEditMode - Whether we're editing an existing guild
|
||||
*/
|
||||
export const getValidationSchema = (isEditMode) =>
|
||||
yup.object({
|
||||
national_id: yup
|
||||
@@ -66,70 +70,100 @@ export const getValidationSchema = (isEditMode) =>
|
||||
),
|
||||
});
|
||||
|
||||
export const getInitialValues = (guild) => ({
|
||||
first_name: guild?.user?.firstName || "",
|
||||
last_name: guild?.user?.lastName || "",
|
||||
corporation_name: guild?.companyName || "",
|
||||
national_id: guild?.user?.nationalId || "",
|
||||
national_code: guild?.user?.nationalCode || "",
|
||||
birth_date: normalizeDatabaseDate(guild?.user?.birthday || ""),
|
||||
father_name: guild?.user?.fatherName || "",
|
||||
gender: guild?.user?.gender || "",
|
||||
person_city: guild?.user?.city || "",
|
||||
is_alive: guild?.user?.isAlive || "",
|
||||
guild_name: guild?.guildsName || guild?.name || "",
|
||||
area_activity: guild?.areaActivity || "",
|
||||
state: guild?.address?.province?.name || "",
|
||||
province: guild?.address?.province?.key || "",
|
||||
city_name: guild?.address?.city?.name || "",
|
||||
address: guild?.address?.address || "",
|
||||
license_expire_date: normalizeDatabaseDate(guild?.licenseExpireDate || ""),
|
||||
license_status: guild?.licenseStatus || "",
|
||||
license_type: guild?.licenseType || "",
|
||||
union_name: guild?.unionName || "",
|
||||
postal_code: guild?.address?.postalCode || "",
|
||||
phone_number: guild?.phoneNumber || "",
|
||||
mobile: guild?.user?.mobile || "",
|
||||
is_foreigner: guild?.is_foreign_national || "",
|
||||
has_steward: guild?.hasSteward || "",
|
||||
has_partner: guild?.hasPartner || "",
|
||||
license_number: guild?.licenseNumber || "",
|
||||
isAccepted: guild?.provinceAcceptState === "accepted" || false,
|
||||
steward:
|
||||
typeof guild?.steward === "boolean"
|
||||
? guild.steward
|
||||
: typeof guild?.isSteward === "boolean"
|
||||
? guild.isSteward
|
||||
: false,
|
||||
guild:
|
||||
typeof guild?.guild === "boolean"
|
||||
? guild.guild
|
||||
: typeof guild?.isGuild === "boolean"
|
||||
? guild.isGuild
|
||||
: false,
|
||||
verify_mobile: guild?.verifyMobile || false,
|
||||
guild_national_id: guild?.nationalId || "",
|
||||
license_issue_date: normalizeDatabaseDate(guild?.licenseIssueDate || ""),
|
||||
company_name: guild?.companyName || "",
|
||||
company_identifier: guild?.companyIdentifier || "",
|
||||
type_activity_name: guild?.typeActivityName || "",
|
||||
active: guild?.active ?? null,
|
||||
guilds: guild
|
||||
? [
|
||||
{
|
||||
steward:
|
||||
typeof guild?.steward === "boolean"
|
||||
? guild.steward
|
||||
: typeof guild?.isSteward === "boolean"
|
||||
? guild.isSteward
|
||||
: false,
|
||||
guild:
|
||||
typeof guild?.guild === "boolean"
|
||||
? guild.guild
|
||||
: typeof guild?.isGuild === "boolean"
|
||||
? guild.isGuild
|
||||
: false,
|
||||
},
|
||||
]
|
||||
: [],
|
||||
});
|
||||
/**
|
||||
* Extracts initial form values from guild data for edit mode
|
||||
*
|
||||
* Data source: Guild data passed directly when editing existing guild
|
||||
* This is used when the component receives a guild prop (edit mode)
|
||||
*
|
||||
* @param {Object} guildDataForEdit - Guild data object from our database (edit mode)
|
||||
* @returns {Object} Initial form values for Formik
|
||||
*/
|
||||
export const getInitialValues = (guildDataForEdit) => {
|
||||
// Extract user data from edit mode guild object
|
||||
const userDataFromEdit = guildDataForEdit?.user || {};
|
||||
const addressDataFromEdit = guildDataForEdit?.address || {};
|
||||
const provinceDataFromEdit = addressDataFromEdit?.province || {};
|
||||
const cityDataFromEdit = addressDataFromEdit?.city || {};
|
||||
|
||||
return {
|
||||
// Personal Information Fields (from user object in edit mode)
|
||||
first_name: userDataFromEdit.firstName || "",
|
||||
last_name: userDataFromEdit.lastName || "",
|
||||
national_id: userDataFromEdit.nationalId || "",
|
||||
national_code: userDataFromEdit.nationalCode || "",
|
||||
birth_date: normalizeDatabaseDate(userDataFromEdit.birthday || ""),
|
||||
father_name: userDataFromEdit.fatherName || "",
|
||||
gender: userDataFromEdit.gender || "",
|
||||
person_city: userDataFromEdit.city || "",
|
||||
is_alive: userDataFromEdit.isAlive || "",
|
||||
mobile: userDataFromEdit.mobile || "",
|
||||
|
||||
// Guild Information Fields (from guild object in edit mode)
|
||||
guild_name: guildDataForEdit?.guildsName || guildDataForEdit?.name || "",
|
||||
area_activity: guildDataForEdit?.areaActivity || "",
|
||||
state: provinceDataFromEdit.name || "",
|
||||
province: provinceDataFromEdit.key || "",
|
||||
city_name: cityDataFromEdit.name || "",
|
||||
address: addressDataFromEdit.address || "",
|
||||
license_expire_date: normalizeDatabaseDate(
|
||||
guildDataForEdit?.licenseExpireDate || ""
|
||||
),
|
||||
license_status: guildDataForEdit?.licenseStatus || "",
|
||||
license_type: guildDataForEdit?.licenseType || "",
|
||||
union_name: guildDataForEdit?.unionName || "",
|
||||
postal_code: addressDataFromEdit.postalCode || "",
|
||||
phone_number: guildDataForEdit?.phoneNumber || "",
|
||||
license_number: guildDataForEdit?.licenseNumber || "",
|
||||
guild_national_id: guildDataForEdit?.nationalId || "",
|
||||
corporation_name: guildDataForEdit?.companyName || "",
|
||||
license_issue_date: normalizeDatabaseDate(
|
||||
guildDataForEdit?.licenseIssueDate || ""
|
||||
),
|
||||
|
||||
// Status Fields (from guild object in edit mode)
|
||||
is_foreigner: guildDataForEdit?.is_foreign_national || "",
|
||||
has_steward: guildDataForEdit?.hasSteward || "",
|
||||
has_partner: guildDataForEdit?.hasPartner || "",
|
||||
steward:
|
||||
typeof guildDataForEdit?.steward === "boolean"
|
||||
? guildDataForEdit.steward
|
||||
: typeof guildDataForEdit?.isSteward === "boolean"
|
||||
? guildDataForEdit.isSteward
|
||||
: false,
|
||||
guild:
|
||||
typeof guildDataForEdit?.guild === "boolean"
|
||||
? guildDataForEdit.guild
|
||||
: typeof guildDataForEdit?.isGuild === "boolean"
|
||||
? guildDataForEdit.isGuild
|
||||
: false,
|
||||
verify_mobile: guildDataForEdit?.verifyMobile || false,
|
||||
active: guildDataForEdit?.active ?? null,
|
||||
isAccepted: guildDataForEdit?.provinceAcceptState === "accepted" || false,
|
||||
|
||||
// Additional Edit Mode Fields
|
||||
company_name: guildDataForEdit?.companyName || "",
|
||||
company_identifier: guildDataForEdit?.companyIdentifier || "",
|
||||
type_activity_name: guildDataForEdit?.typeActivityName || "",
|
||||
|
||||
// Guilds array for validation (edit mode)
|
||||
guilds: guildDataForEdit
|
||||
? [
|
||||
{
|
||||
steward:
|
||||
typeof guildDataForEdit?.steward === "boolean"
|
||||
? guildDataForEdit.steward
|
||||
: typeof guildDataForEdit?.isSteward === "boolean"
|
||||
? guildDataForEdit.isSteward
|
||||
: false,
|
||||
guild:
|
||||
typeof guildDataForEdit?.guild === "boolean"
|
||||
? guildDataForEdit.guild
|
||||
: typeof guildDataForEdit?.isGuild === "boolean"
|
||||
? guildDataForEdit.isGuild
|
||||
: false,
|
||||
},
|
||||
]
|
||||
: [],
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user