@grafana/ui
Version:
Grafana Components Library
69 lines (64 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var e2eSelectors = require('@grafana/e2e-selectors');
var i18n = require('@grafana/i18n');
var Combobox = require('../Combobox/Combobox.cjs');
;
function isWeekStart(value) {
return ["saturday", "sunday", "monday"].includes(value);
}
function getWeekStart(override) {
var _a, _b;
if (override && isWeekStart(override)) {
return override;
}
const preference = (_b = (_a = window == null ? void 0 : window.grafanaBootData) == null ? void 0 : _a.user) == null ? void 0 : _b.weekStart;
if (preference && isWeekStart(preference)) {
return preference;
}
return "monday";
}
const WeekStartPicker = (props) => {
const { onChange, width, autoFocus = false, onBlur, value, disabled = false, inputId } = props;
const weekStarts = React.useMemo(
() => [
{ value: "", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-default", "Default") },
{ value: "saturday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-saturday", "Saturday") },
{ value: "sunday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-sunday", "Sunday") },
{ value: "monday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-monday", "Monday") }
],
[]
);
const onChangeWeekStart = React.useCallback(
(selectable) => {
if (selectable && selectable.value !== void 0) {
onChange(isWeekStart(selectable.value) ? selectable.value : void 0);
}
},
[onChange]
);
const selected = React.useMemo(() => {
var _a, _b;
return (_b = (_a = weekStarts.find((item) => item.value === value)) == null ? void 0 : _a.value) != null ? _b : "";
}, [value, weekStarts]);
return /* @__PURE__ */ jsxRuntime.jsx(
Combobox.Combobox,
{
id: inputId,
value: selected,
placeholder: e2eSelectors.selectors.components.WeekStartPicker.placeholder,
autoFocus,
width,
options: weekStarts,
onChange: onChangeWeekStart,
onBlur,
disabled
}
);
};
exports.WeekStartPicker = WeekStartPicker;
exports.getWeekStart = getWeekStart;
exports.isWeekStart = isWeekStart;
//# sourceMappingURL=WeekStartPicker.cjs.map