- fixed validating table form field;

- fixed issue with bando preview;
This commit is contained in:
Vitalii Kiiko
2024-10-22 12:51:58 +02:00
parent 250a75e375
commit 1b37b7b548
4 changed files with 24 additions and 21 deletions

View File

@@ -136,7 +136,8 @@ const Table = ({
return ( return (
<> <>
<label htmlFor={fieldName} className={classNames({ 'p-error': errors[fieldName] })}> <label htmlFor={fieldName} className={classNames({ 'p-error': errors[fieldName] })}>
{label}{config.required || config.isRequired ? <span className="appForm__field--required">*</span> : null} {label}{config.required || config.isRequired || (config.validate && config.validate.nonEmptyTables)
? <span className="appForm__field--required">*</span> : null}
</label> </label>
{rows ? <RenderTable columns={columns} data={rows} setRowsFn={updateRows}/> : null} {rows ? <RenderTable columns={columns} data={rows} setRowsFn={updateRows}/> : null}
{!isEmpty(columns) && !shouldDisableNewRows {!isEmpty(columns) && !shouldDisableNewRows

View File

@@ -1,5 +1,5 @@
import parse from 'html-react-parser'; import parse from 'html-react-parser';
const renderHtmlContent = (content) => parse(content); const renderHtmlContent = (content = '') => parse(content);
export default renderHtmlContent; export default renderHtmlContent;

View File

@@ -68,7 +68,6 @@ export const maxChecks = (v, num) => {
} }
export const nonEmptyTables = (v = [], tableCfg = []) => { export const nonEmptyTables = (v = [], tableCfg = []) => {
//console.log('nonEmptyTables',v)
const colsCfg = pathOr([], ['stateFieldData'], tableCfg); const colsCfg = pathOr([], ['stateFieldData'], tableCfg);
const nonPredefinedCells = colsCfg const nonPredefinedCells = colsCfg
.filter(o => !o.predefined) .filter(o => !o.predefined)
@@ -76,6 +75,7 @@ export const nonEmptyTables = (v = [], tableCfg = []) => {
let isTableValid = true; let isTableValid = true;
let atLeastOneCellFilled = false let atLeastOneCellFilled = false
if (is(Array, v)) {
// eslint-disable-next-line array-callback-return // eslint-disable-next-line array-callback-return
v.map((row) => { v.map((row) => {
if (isEmpty(row)) { if (isEmpty(row)) {
@@ -92,6 +92,7 @@ export const nonEmptyTables = (v = [], tableCfg = []) => {
}); });
} }
}); });
}
return is(Array, v) ? v.length >= 1 && isTableValid : false; return is(Array, v) ? v.length >= 1 && isTableValid : false;
} }

View File

@@ -96,7 +96,7 @@ const BandoApplication = () => {
const submitApplicationCallback = (data) => { const submitApplicationCallback = (data) => {
if (data.status === 'SUCCESS') { if (data.status === 'SUCCESS') {
if (data.data.applicationStatus) { if (data.data.status) {
setApplicationStatus(data.data.status); // ask why not 'applicationStatus'? setApplicationStatus(data.data.status); // ask why not 'applicationStatus'?
} }
} }
@@ -394,7 +394,7 @@ const BandoApplication = () => {
useEffect(() => { useEffect(() => {
if (formInitialData) { if (formInitialData) {
reset(); //reset();
Object.keys(formInitialData).map(k => setValue(k, formInitialData[k])) Object.keys(formInitialData).map(k => setValue(k, formInitialData[k]))
} }
}, [formInitialData]); }, [formInitialData]);
@@ -483,6 +483,7 @@ const BandoApplication = () => {
return acc; return acc;
}, {}); }, {});
//console.log('validations', validations, o.name)
return ['paragraph'].includes(o.name) && text return ['paragraph'].includes(o.name) && text
? <div className="appForm__content" key={o.id}>{renderHtmlContent(text.value)}</div> ? <div className="appForm__content" key={o.id}>{renderHtmlContent(text.value)}</div>