/* eslint-disable no-plusplus */ /* eslint-disable radix */ /* eslint-disable no-restricted-globals */ const errMessage = "TC Kimlik numarası hatalı. Lütfen geçerli bir TC Kimlik numarası girin."; export const checkSameTcNoInput = ( { fieldName, fieldValue, fieldCheckValue, }: { fieldName: string; fieldValue: string; fieldCheckValue: boolean; }, formValues: Record, ) => { const valuesKeys = Object.keys(formValues); const hasIsSameValue = valuesKeys ?.filter((key) => { const isSameField = key.includes("identity") && !key.includes("Check") && fieldName !== key; if (isSameField) { const identityCheckKey = valuesKeys.find( (valuesKey) => valuesKey === `${key}Check`, ); if (formValues[identityCheckKey || ""] === fieldCheckValue) { return isSameField; } } return false; }) ?.some((key) => formValues[key] === fieldValue) || false; return !hasIsSameValue; }; export const checkTcNoInput = (value: string) => { let oddSum = 0; let evenSum = 0; let result = 0; let totalSum = 0; const invalidNumbers = [ 11111111110, 22222222220, 33333333330, 44444444440, 55555555550, 66666666660, 7777777770, 88888888880, 99999999990, ]; if (!value || value === "") return errMessage; if (value.length !== 11) return errMessage; if (isNaN(Number(value))) return errMessage; if (value[0] === "0") return errMessage; oddSum = parseInt(value[0]!) + parseInt(value[2]!) + parseInt(value[4]!) + parseInt(value[6]!) + parseInt(value[8]!); evenSum = parseInt(value[1]!) + parseInt(value[3]!) + parseInt(value[5]!) + parseInt(value[7]!); oddSum *= 7; result = oddSum - evenSum; if (result % 10 !== parseInt(value[9]!)) return errMessage; for (let i = 0; i < 10; i++) { totalSum += parseInt(value[i]!); } if (totalSum % 10 !== parseInt(value[10]!)) return errMessage; if (invalidNumbers.includes(parseInt(value))) return errMessage; return true; }; export const profileCheckTcNoInput = (value: string) => { const char = value.match(/.*[\W_]+/); if (char) { return "Özel karekter kullanamazsınız"; } if (!value || value.trim() === "") return errMessage; return true; };