META-INF.resources.js.components.TimeSpanSelector.tsx Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.analytics.reports.web
Show all versions of com.liferay.analytics.reports.web
Liferay Analytics Reports Web
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
import {ClayButtonWithIcon} from '@clayui/button';
import {ClaySelect} from '@clayui/form';
import React, {useContext} from 'react';
import {ChartDispatchContext, TimeSpan} from '../context/ChartStateContext';
import ConnectionContext from '../context/ConnectionContext';
interface TimeSpanOption {
key: TimeSpan;
label: string;
}
interface Props {
disabledNextTimeSpan: boolean;
disabledPreviousPeriodButton: boolean;
timeSpanKey: TimeSpan;
timeSpanOptions: TimeSpanOption[];
}
export default function TimeSpanSelector({
disabledNextTimeSpan,
disabledPreviousPeriodButton,
timeSpanKey,
timeSpanOptions,
}: Props) {
const {validAnalyticsConnection} = useContext(ConnectionContext);
const dispatch = useContext(ChartDispatchContext);
return (
{
const {value} = event.target;
dispatch({
payload: {key: value as unknown as TimeSpan},
type: 'CHANGE_TIME_SPAN_KEY',
});
}}
value={timeSpanKey || undefined}
>
{timeSpanOptions.map((option) => {
return (
);
})}
dispatch({type: 'PREV_TIME_SPAN'})}
small
symbol="angle-left"
title={
disabledPreviousPeriodButton
? Liferay.Language.get(
'you-cannot-choose-a-date-prior-to-the-publication-date'
)
: undefined
}
/>
dispatch({type: 'NEXT_TIME_SPAN'})}
small
symbol="angle-right"
/>
);
}