refactor using setField

This commit is contained in:
Simone Taeggi 2022-09-08 22:09:15 +02:00
parent cb69ec34a4
commit 3d5eaebe12

View File

@ -57,7 +57,6 @@ const ApiTokenCreateView = () => {
); );
const { trackUsage } = useTracking(); const { trackUsage } = useTracking();
const trackUsageRef = useRef(trackUsage); const trackUsageRef = useRef(trackUsage);
const typeApiToken = useRef(undefined);
const { setCurrentStep } = useGuidedTour(); const { setCurrentStep } = useGuidedTour();
const { const {
allowedActions: { canCreate, canUpdate }, allowedActions: { canCreate, canUpdate },
@ -232,7 +231,10 @@ const ApiTokenCreateView = () => {
} }
}; };
const [hasChangedPermissions, setHasChangedPermissions] = useState(false);
const handleChangeCheckbox = ({ target: { value } }) => { const handleChangeCheckbox = ({ target: { value } }) => {
setHasChangedPermissions(true);
dispatch({ dispatch({
type: 'ON_CHANGE', type: 'ON_CHANGE',
value, value,
@ -240,6 +242,7 @@ const ApiTokenCreateView = () => {
}; };
const handleChangeSelectAllCheckbox = ({ target: { value } }) => { const handleChangeSelectAllCheckbox = ({ target: { value } }) => {
setHasChangedPermissions(true);
value.forEach((action) => { value.forEach((action) => {
dispatch({ dispatch({
type: 'ON_CHANGE', type: 'ON_CHANGE',
@ -249,7 +252,7 @@ const ApiTokenCreateView = () => {
}; };
const handleChangeSelectApiTokenType = ({ target: { value } }) => { const handleChangeSelectApiTokenType = ({ target: { value } }) => {
typeApiToken.current = value; setHasChangedPermissions(false);
if (value === 'full-access') { if (value === 'full-access') {
dispatch({ dispatch({
@ -307,12 +310,9 @@ const ApiTokenCreateView = () => {
enableReinitialize enableReinitialize
onSubmit={(body, actions) => handleSubmit(body, actions)} onSubmit={(body, actions) => handleSubmit(body, actions)}
> >
{({ errors, handleChange, isSubmitting, values }) => { {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {
if (state.selectedActions.length > 0 && !values?.type) { if (hasChangedPermissions && values?.type !== 'custom') {
typeApiToken.current = typeApiToken.current ? typeApiToken.current : 'custom'; setFieldValue('type', 'custom');
values.type = typeApiToken.current;
} else if (state.selectedActions.length === 0 && typeApiToken.current !== undefined) {
values.type = typeApiToken.current;
} }
return ( return (