diff --git a/src/components/basis/group/BasisGroupApprovalSearch.js b/src/components/basis/group/BasisGroupApprovalSearch.js index 390eae5..84a5d0f 100644 --- a/src/components/basis/group/BasisGroupApprovalSearch.js +++ b/src/components/basis/group/BasisGroupApprovalSearch.js @@ -26,30 +26,88 @@ import { useEffect, useState } from 'react'; import moment from 'moment'; export const BasisGroupApprovalSearch = props => { - const [isCheckBox, setIsCheckBox] = useState({ - all: true, - yes: false, - no: false - }); + // const [isCheckBox, setIsCheckBox] = useState({ + // all: true, + // yes: false, + // no: false + // }); - useEffect(() => { - let aprvYn = ''; + // useEffect(() => { + // let aprvYn = ''; - if (!isCheckBox.all) { - if (isCheckBox.yes) { - aprvYn = 'Y'; - } else if (isCheckBox.no) { - aprvYn = 'N'; - } else { - aprvYn = '-'; - } + // if (!isCheckBox.all) { + // if (isCheckBox.yes) { + // aprvYn = 'Y'; + // } else if (isCheckBox.no) { + // aprvYn = 'N'; + // } else { + // aprvYn = '-'; + // } + // } + // props.setParams({ + // ...props.params, + // aprvYn: aprvYn + // }); + // }, [isCheckBox]); + let aprvYn='N'; + const initCheckState = { + 'all': aprvYn == 'A', + 'yes': (aprvYn == 'Y' || aprvYn == 'A'), + 'no': (aprvYn == 'N' || aprvYn == 'A'), + } + const [checkState, setCheckState] = useState(initCheckState); + + const handleChangeCheckbox = (e) => { + const {name, value, checked} = e.target; + let val; + switch(value) { + case 'A' : + val = checked ? '' : '-'; + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState({ + 'all': checked, + 'yes': checked, + 'no': checked + }) + break; + case 'Y': + if (checked && checkState.no) val = '' + else if (checked && !checkState.no) val = 'Y' + else if (!checked && checkState.no) val = 'N' + else if (!checked && !checkState.no) val = '-' + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState(prevState => ({ + 'all': prevState.no && checked, + 'yes': checked, + 'no': prevState.no + })) + break; + case 'N': + if (checked && checkState.yes) val = '' + else if (checked && !checkState.yes) val = 'N' + else if (!checked && checkState.yes) val = 'Y' + else if (!checked && !checkState.yes) val = '-' + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState(prevState => ({ + 'all': prevState.yes && checked, + 'yes': prevState.yes, + 'no': checked + })) + break; + default: + break; } + } - props.setParams({ - ...props.params, - aprvYn: aprvYn - }); - }, [isCheckBox]); return (