Fix revenue report bugs

This commit is contained in:
Francis Cao 2024-10-09 11:36:23 -07:00
parent 7de52d61e9
commit 1a2ae439ee
5 changed files with 143 additions and 70 deletions

View file

@ -11,7 +11,11 @@ export function RevenueParameters() {
const { id, parameters } = report || {};
const { websiteId, dateRange } = parameters || {};
const queryEnabled = websiteId && dateRange;
const { data: values = [] } = useRevenueValues(websiteId, dateRange.startDate, dateRange.endDate);
const { data: values = [] } = useRevenueValues(
websiteId,
dateRange?.startDate,
dateRange?.endDate,
);
const handleSubmit = (data: any, e: any) => {
e.stopPropagation();

View file

@ -29,7 +29,7 @@ export function RevenueTable() {
{row => row.count}
</GridColumn>
<GridColumn name="currency" label={formatMessage(labels.uniqueCustomers)} alignment="end">
{row => row.uniqueCount}
{row => row.unique_count}
</GridColumn>
</GridTable>
);

View file

@ -87,7 +87,7 @@ export function RevenueView({ isLoading }: RevenueViewProps) {
const metricData = useMemo(() => {
if (!data) return [];
const { sum, avg, count, uniqueCount } = data.total;
const { sum, avg, count, unique_count } = data.total;
return [
{
@ -106,7 +106,7 @@ export function RevenueView({ isLoading }: RevenueViewProps) {
formatValue: formatLongNumber,
},
{
value: uniqueCount,
value: unique_count,
label: formatMessage(labels.uniqueCustomers),
formatValue: formatLongNumber,
},
@ -121,29 +121,31 @@ export function RevenueView({ isLoading }: RevenueViewProps) {
return <MetricCard key={label} value={value} label={label} formatValue={formatValue} />;
})}
</MetricsBar>
<BarChart
minDate={dateRange?.startDate}
maxDate={dateRange?.endDate}
data={chartData}
unit={dateRange?.unit}
stacked={true}
currency={currency}
renderXLabel={renderDateLabels(dateRange?.unit, locale)}
isLoading={isLoading}
/>
{data && (
<GridRow columns="two">
<ListTable
metric={formatMessage(labels.country)}
data={data?.country.map(({ name, value }) => ({
x: name,
y: value,
z: (value / data?.total.sum) * 100,
}))}
renderLabel={renderCountryName}
<>
<BarChart
minDate={dateRange?.startDate}
maxDate={dateRange?.endDate}
data={chartData}
unit={dateRange?.unit}
stacked={true}
currency={currency}
renderXLabel={renderDateLabels(dateRange?.unit, locale)}
isLoading={isLoading}
/>
<PieChart type="doughnut" data={countryData} />
</GridRow>
<GridRow columns="two">
<ListTable
metric={formatMessage(labels.country)}
data={data?.country.map(({ name, value }) => ({
x: name,
y: Number(value),
z: (value / data?.total.sum) * 100,
}))}
renderLabel={renderCountryName}
/>
<PieChart type="doughnut" data={countryData} />
</GridRow>
</>
)}
{showTable && <RevenueTable />}
</div>