@pnp/spfx-property-controls
Version:
Reusable property pane controls for SharePoint Framework solutions
50 lines • 2.27 kB
JavaScript
"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