DocSpace-client/packages/asc-web-components/label/index.js
Viktor Fomin e879d94bff Merge branch 'develop' of github.com:ONLYOFFICE/AppServer into feature/sso
# Conflicts:
#	packages/asc-web-common/api/settings/index.js
#	packages/asc-web-components/checkbox/index.js
#	packages/asc-web-components/file-input/index.js
#	packages/asc-web-components/index.js
#	packages/asc-web-components/label/index.js
#	web/ASC.Web.Client/public/locales/en/Settings.json
#	web/ASC.Web.Client/public/locales/ru/Settings.json
#	web/ASC.Web.Client/src/components/pages/Settings/Layout/Article/Body/index.js
#	web/ASC.Web.Client/src/components/pages/Settings/index.js
2022-06-15 13:52:00 +03:00

76 lines
1.7 KiB
JavaScript

import React from "react";
import PropTypes from "prop-types";
import Text from "../text";
const Label = (props) => {
const {
isRequired,
error,
title,
truncate,
isInline,
htmlFor,
text,
display,
className,
id,
style,
children,
theme,
} = props;
const errorProp = error ? { color: "#c30" } : {};
return (
<Text
as="label"
id={id}
style={style}
htmlFor={htmlFor}
isInline={isInline}
display={display}
{...errorProp}
fontWeight={600}
truncate={truncate}
title={title}
className={className}
>
{text} {isRequired && " *"} {children}
</Text>
);
};
Label.propTypes = {
/** Indicates that the field to which the label is attached is required to fill */
isRequired: PropTypes.bool,
/** Indicates that the field to which the label is attached is incorrect */
error: PropTypes.bool,
/** Sets the 'display: inline-block' property */
isInline: PropTypes.bool,
/** Title */
title: PropTypes.string,
/** Disables word wrapping */
truncate: PropTypes.bool,
/** The field ID to which the label is attached */
htmlFor: PropTypes.string,
/** Text or element */
text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
/** Sets the 'display' property */
display: PropTypes.string,
/** Class name */
className: PropTypes.string,
/** Accepts id */
id: PropTypes.string,
/** Accepts css style */
style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
children: PropTypes.node,
};
Label.defaultProps = {
isRequired: false,
error: false,
isInline: false,
truncate: false,
};
export default Label;