From 38704f4d886e2fe9abc4d898ddf1ad4e162e02d8 Mon Sep 17 00:00:00 2001 From: Natalie Takahashi Date: Tue, 23 Feb 2021 11:38:53 -0300 Subject: [PATCH] Add help tips to labels to explain what their icon means [#85] --- src/js/components/PropertyPicker.react.js | 15 ++++---- src/js/components/RulePicker.react.js | 8 ++--- src/js/components/common/LabelIcon.react.js | 38 +++++++++++++++++++++ 3 files changed, 48 insertions(+), 13 deletions(-) create mode 100644 src/js/components/common/LabelIcon.react.js diff --git a/src/js/components/PropertyPicker.react.js b/src/js/components/PropertyPicker.react.js index e7a20ea..8fe6e69 100644 --- a/src/js/components/PropertyPicker.react.js +++ b/src/js/components/PropertyPicker.react.js @@ -12,6 +12,7 @@ const React = require('react'); const classNames = require('classnames'); const DateTimeFormatPicker = require('./DateTimeFormatPicker.react.js'); const SelectorPicker = require('./SelectorPicker.react.js'); +const LabelIcon = require('./common/LabelIcon.react.js'); import type { RuleProperty } from '../models/RuleProperty'; import RulePropertyTypes from '../models/RulePropertyTypes'; import RuleActions from '../data/RuleActions'; @@ -122,16 +123,12 @@ class PropertyPicker extends React.Component { [propertyClass]: true, })} > - + {attributePicker} diff --git a/src/js/components/RulePicker.react.js b/src/js/components/RulePicker.react.js index 7b58323..cceac0b 100644 --- a/src/js/components/RulePicker.react.js +++ b/src/js/components/RulePicker.react.js @@ -11,6 +11,7 @@ const React = require('react'); const PropertyPicker = require('./PropertyPicker.react.js'); const SelectorPicker = require('./SelectorPicker.react'); +const LabelIcon = require('./common/LabelIcon.react.js'); const classNames = require('classnames'); const RuleActions = require('../data/RuleActions'); @@ -47,7 +48,7 @@ class RulePicker extends React.Component { const toggler = this.state.collapsed ? '\u25B6' // right triangle : '\u25BC'; // down triangle - + const hasSelector = !!(this.props.rule.selector != ''); return (
{ valid: this.props.rule.selector != '', })} > - +
{this.props.rule.properties diff --git a/src/js/components/common/LabelIcon.react.js b/src/js/components/common/LabelIcon.react.js new file mode 100644 index 0000000..b78a919 --- /dev/null +++ b/src/js/components/common/LabelIcon.react.js @@ -0,0 +1,38 @@ +/** + * Copyright 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +import React from 'react'; + +interface Props { + children: string; + required: ?boolean; + valid: ?boolean; +} + +const LabelIcon = ({ children, required = false, valid = false }: Props) => { + let icon = '•'; + let tooltip = 'Field is optional'; + if (required) { + icon = '✘'; + tooltip = 'Field is required'; + } + if (valid) { + icon = '✔'; + tooltip = 'Field is valid'; + } + return ( + + ); +} + +module.exports = LabelIcon;