Files
redash/client/app/components/dynamic-parameters/DateParameter.jsx
Rafael Wendel 44178d9908 Improve input fields a11y (#5427)
* Added labels to params

* Added aria-label to inputs

* Linked unsemantic label with input

* Replaced span with label

* refactor: improve labels for schema browsers

* refactor: component accepts aria label

* refactor: add labels to sidebar search inputs
2021-03-26 11:45:24 -03:00

52 lines
1.2 KiB
JavaScript

import React from "react";
import PropTypes from "prop-types";
import { getDynamicDateFromString } from "@/services/parameters/DateParameter";
import DynamicDatePicker from "@/components/dynamic-parameters/DynamicDatePicker";
const DYNAMIC_DATE_OPTIONS = [
{
name: "Today/Now",
value: getDynamicDateFromString("d_now"),
label: () =>
getDynamicDateFromString("d_now")
.value()
.format("MMM D"),
},
{
name: "Yesterday",
value: getDynamicDateFromString("d_yesterday"),
label: () =>
getDynamicDateFromString("d_yesterday")
.value()
.format("MMM D"),
},
];
function DateParameter(props) {
return (
<DynamicDatePicker
dynamicButtonOptions={{ options: DYNAMIC_DATE_OPTIONS }}
{...props}
dateOptions={{ "aria-label": "Parameter date value" }}
/>
);
}
DateParameter.propTypes = {
type: PropTypes.string,
className: PropTypes.string,
value: PropTypes.any, // eslint-disable-line react/forbid-prop-types
parameter: PropTypes.any, // eslint-disable-line react/forbid-prop-types
onSelect: PropTypes.func,
};
DateParameter.defaultProps = {
type: "",
className: "",
value: null,
parameter: null,
onSelect: () => {},
};
export default DateParameter;