From e95ac9c4ca2469fa6b0cde955c49745fbcf83cb4 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Fri, 27 Oct 2023 11:31:03 +0700 Subject: [PATCH] Fix code style format --- hotel-management/src/constants/messages.ts | 5 + hotel-management/src/helpers/utils.ts | 9 ++ hotel-management/src/pages/User/Form.tsx | 121 +++++++++++++-------- 3 files changed, 91 insertions(+), 44 deletions(-) create mode 100644 hotel-management/src/constants/messages.ts diff --git a/hotel-management/src/constants/messages.ts b/hotel-management/src/constants/messages.ts new file mode 100644 index 0000000..67eb3df --- /dev/null +++ b/hotel-management/src/constants/messages.ts @@ -0,0 +1,5 @@ +const invalidFormatMessage = (field: string) => { + return `Invalid ${field} format`; +}; + +export { invalidFormatMessage }; diff --git a/hotel-management/src/helpers/utils.ts b/hotel-management/src/helpers/utils.ts index 767a3d0..6ba313c 100644 --- a/hotel-management/src/helpers/utils.ts +++ b/hotel-management/src/helpers/utils.ts @@ -1,3 +1,4 @@ +import { invalidFormatMessage } from '../constants/messages'; import { TKeyValue, TPropValues, TStateSchema } from '../globals/types'; const VALUE = 'value'; @@ -27,10 +28,18 @@ const getPropValues = (stateSchema: TStateSchema, prop?: TPropValues) => { }, {} as TKeyValue); }; +const addValidator = (func: (input: string) => boolean, error: string) => { + return { + func: func, + error: invalidFormatMessage(error), + }; +}; + export { isObject, isRequired, getPropValues, + addValidator, VALUE, ERROR, REQUIRED_FIELD_ERROR, diff --git a/hotel-management/src/pages/User/Form.tsx b/hotel-management/src/pages/User/Form.tsx index 25f046f..b455f04 100644 --- a/hotel-management/src/pages/User/Form.tsx +++ b/hotel-management/src/pages/User/Form.tsx @@ -23,6 +23,7 @@ import { isValidPhoneNumber, isValidString, } from '../../helpers/validators'; +import { addValidator } from '../../helpers/utils.ts'; const FormBtn = styled(Button)` width: 100%; @@ -49,6 +50,44 @@ const UserForm = ({ onClose }: IUserFormProp) => { address: { value: '', error: '' }, }; + const stateValidatorSchema = { + fullName: { + required: true, + validator: addValidator( + (input: string) => isValidString(input), + 'full name', + ), + }, + identifiedCode: { + required: true, + validator: addValidator( + (input: string) => isValidNumber(input), + 'identified code', + ), + }, + phone: { + required: true, + validator: addValidator( + (input: string) => isValidPhoneNumber(input), + 'phone', + ), + }, + room: { + required: true, + validator: addValidator( + (input: string) => isValidNumber(input), + 'room number', + ), + }, + address: { + required: true, + validator: addValidator( + (input: string) => isValidAddress(input), + 'address', + ), + }, + }; + // Submit form const onSubmitForm = (state: TKeyValue) => { alert(JSON.stringify(state, null, 2)); @@ -56,54 +95,32 @@ const UserForm = ({ onClose }: IUserFormProp) => { onResetForm(); }; - const { values, errors, dirty, handleOnChange, handleOnSubmit, disable } = + // prettier-ignore + const { + values, + errors, + dirty, + handleOnChange, + handleOnSubmit, + disable } = useForm( stateSchema, - { - fullName: { - required: true, - validator: { - func: (input) => isValidString(input), - error: 'Invalid full name format.', - }, - }, - identifiedCode: { - required: true, - validator: { - func: (input) => isValidNumber(input), - error: 'Invalid identified code format.', - }, - }, - phone: { - required: true, - validator: { - func: (input) => isValidPhoneNumber(input), - error: 'Invalid phone format.', - }, - }, - room: { - required: true, - validator: { - func: (input) => isValidNumber(input), - error: 'Invalid room number format.', - }, - }, - address: { - required: true, - validator: { - func: (input) => isValidAddress(input), - error: 'Invalid address format.', - }, - }, - }, + stateValidatorSchema, onSubmitForm, ); - const { fullName, identifiedCode, phone, room, address } = values; + // prettier-ignore + const { + fullName, + identifiedCode, + phone, + room, + address + } = values; // Reset form const onResetForm = () => { - setReset(() => !reset); + setReset(!reset); Object.keys(values).forEach((key) => (values[key] = '')); }; @@ -113,7 +130,10 @@ const UserForm = ({ onClose }: IUserFormProp) => { { { {