/
Nikmet
/
notepad-react
Обзор
Документация
Войти
/
Nikmet
/
notepad-react
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/components/JournalForm/JournalForm.state.js
39 строк
1 KB
nikmet
hooks
03 июн 2024, 17:38
03 июн 2024, 17:38
0e661c4
Код
Авторство
О чём код?
export const INITIAL_STATE = { isValid: { title: true, date: true, text: true }, values: { title: "", date: "", text: "", tag: "" }, isFormReadyToSubmit: false }; export function formReducer(state, action) { switch (action.type) { case "SET_VALUE": return { ...state, values: { ...state.values, ...action.payload } }; case "CLEAR": return { ...state, values: INITIAL_STATE.values, isFormReadyToSubmit: false }; case "RESET_VALIDITY": return { ...state, isValid: INITIAL_STATE.isValid }; case "SUBMIT": { const titleValidity = state.values.title?.trim().length; const dateValidity = state.values.date; const textValidity = state.values.text?.trim().length; return { ...state, isValid: { title: titleValidity, date: dateValidity, text: textValidity }, isFormReadyToSubmit: titleValidity && dateValidity && textValidity }; } } }