UNPKG

@pnp/spfx-property-controls

Version:

Reusable property pane controls for SharePoint Framework solutions

50 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const TextField_1 = require("@fluentui/react/lib/TextField"); const sp_core_library_1 = require("@microsoft/sp-core-library"); const GeneralHelper_1 = require("../../helpers/GeneralHelper"); const strings = tslib_1.__importStar(require("PropertyControlStrings")); const telemetry = tslib_1.__importStar(require("../../common/telemetry")); class PropertyFieldGuidHost extends React.Component { constructor(props) { super(props); this._validateGuid = (value) => { return GeneralHelper_1.GeneralHelper.isDefined(value) && GeneralHelper_1.GeneralHelper.isDefined(sp_core_library_1.Guid.tryParse(value)) && sp_core_library_1.Guid.isValid(value) ? '' : GeneralHelper_1.GeneralHelper.isDefined(this.props.errorMessage) ? this.props.errorMessage : strings.IncorrectGuidValidationMessage; }; this._onChange = (event, value) => { this.setState({ value }); if (GeneralHelper_1.GeneralHelper.isDefined(value)) { if (GeneralHelper_1.GeneralHelper.isDefined(sp_core_library_1.Guid.tryParse(value)) && sp_core_library_1.Guid.isValid(value)) { this.props.onChanged(sp_core_library_1.Guid.tryParse(value)["_guid"]); } } else { this.props.onChanged(undefined); } }; this.state = { value: this.props.value }; telemetry.track('PropertyFieldButton', {}); } /// componentDidUpdate(prevProps, prevState) { if (prevProps.value !== this.props.value) { this.setState({ value: this.props.value }); } } render() { return (React.createElement("div", null, React.createElement(TextField_1.TextField, { label: this.props.label ? this.props.label : null, value: this.state.value, onGetErrorMessage: this._validateGuid, onChange: this._onChange }))); } } exports.default = PropertyFieldGuidHost; //# sourceMappingURL=PropertyFieldGuidHost.js.map