import React from "react"; import {MdDelete, MdUndo} from "react-icons/md"; import { type WithTranslation, withTranslation } from "react-i18next"; import Block from "./Block"; import InputButton from "./InputButton"; import labelFromFieldName from "../libs/label-from-field-name"; import FieldJson from "./FieldJson"; import type { StylePropertySpecification } from "maplibre-gl"; import { type MappedLayerErrors } from "../libs/definitions"; type ExpressionPropertyInternalProps = { fieldName: string fieldType?: string fieldSpec?: StylePropertySpecification value?: any errors?: MappedLayerErrors onDelete?(...args: unknown[]): unknown onChange(value: object): void onUndo?(...args: unknown[]): unknown canUndo?(...args: unknown[]): unknown onFocus?(...args: unknown[]): unknown onBlur?(...args: unknown[]): unknown } & WithTranslation; class ExpressionPropertyInternal extends React.Component { static defaultProps = { errors: {}, onFocus: () => {}, onBlur: () => {}, }; constructor(props: ExpressionPropertyInternalProps) { super(props); this.state = { jsonError: false, }; } render() { const {t, value, canUndo} = this.props; const undoDisabled = canUndo ? !canUndo() : true; const deleteStopBtn = ( <> {this.props.onUndo && } ); let error = undefined; if (this.props.errors) { const fieldKey = this.props.fieldType ? this.props.fieldType + "." + this.props.fieldName : this.props.fieldName; error = this.props.errors[fieldKey]; } return ; } } const ExpressionProperty = withTranslation()(ExpressionPropertyInternal); export default ExpressionProperty;