import {Text} from "@chakra-ui/layout"; import {Button, Checkbox, Grid, GridItem, HStack, Input, Stack} from "@chakra-ui/react"; import React from "react"; import CustomStaticDropDown from "./CustomStaticDropDown"; import DropdownSelect from "../Dropdown/DropdownSelect"; import {Col, Panel} from "../intefaces/interfaces"; import {PhotoUpload} from "./PhotoUpload"; import {convertColTypeToInputType, underScoreToCapitalize} from "../utils/TransformText"; import {snakeCase} from "change-case"; import MultipleSelect from "./MultipleSelect"; interface AddEditFormColProps { primaryColor: string; secondaryColor: string; col: Col[]; formdata: any; setFormData: any; onSave: any; isSaving: boolean; panels: Panel[]; close: () => void; refetch: () => void; } function AddEditForm(props: AddEditFormColProps) { const { isSaving, formdata, setFormData, col, panels, onSave } = props function getFieldData(field: string) { return formdata[field] } function handleChange(value: any, field: string) { let formDataTemp = {...formdata}; formDataTemp[field] = value; setFormData(formDataTemp); } function handleChangeSelect(value: any, field: string) { let formDataTemp = {...formdata}; formDataTemp[field] = value; setFormData(formDataTemp); } function findColFieldByColName(colName: string): Col { let cl: any = col.find(c => snakeCase(c.name) == colName); return cl; } function checkForStaticDropDown(tablecolField: any) { if (typeof tablecolField?.staticDropDown !== 'undefined' && tablecolField?.staticDropDown) { return true } return false } function isImage(tablecolField: any) { if (tablecolField?.type == 'image' || tablecolField?.type == 'image!') { return true } return false } return ( {panels?.map((panel: Panel, panelIndex: number) => { return (
{panel.title} = 6 ? 3 : panel?.panels.length}, 1fr)`} gap={6}> {panel?.panels.map((colFieldName: any, colFieldIndex: number) => { let tablecolField: Col = findColFieldByColName(colFieldName); return ( {(!isImage(tablecolField)) && {underScoreToCapitalize(underScoreToCapitalize(colFieldName))} } {tablecolField.isForeignKey && { handleChangeSelect(val, tablecolField.name) }} /> } {!tablecolField.isForeignKey && (isImage(tablecolField)) && { let formDataTemp = {...formdata}; formDataTemp[tablecolField.name] = file; setFormData(formDataTemp); }} /> } {checkForStaticDropDown(tablecolField) && { handleChangeSelect(val, tablecolField.name) }} /> } {(tablecolField.type === "Boolean" || tablecolField.type === "Boolean!") && { handleChange(e.target.checked, tablecolField.name) }} /> } {(tablecolField.type === "String" || tablecolField.type === "String!") && !tablecolField.hasManyRelationship && { handleChange(e.target.value, tablecolField.name) }} value={getFieldData(tablecolField.name)} h="38px" border="1px solid " borderColor={"#ACABAB"} borderRadius={"4px"} placeholder={underScoreToCapitalize(tablecolField.name)} /> } {tablecolField.hasManyRelationship && { handleChange(val, tablecolField.name) }} /> } ) }) }
) })}
) } export default AddEditForm