fix trends + stacked chart

This commit is contained in:
Emily
2024-10-15 13:30:36 +02:00
parent 00e63cc80b
commit a876d77d42
4 changed files with 21 additions and 11 deletions

View File

@@ -21,14 +21,24 @@ const chartSlice = computed(() => {
function transformResponse(input: { _id: string, count: number }[]) {
const data = input.map(e => e.count || 0);
const labels = input.map(e => DateService.getChartLabelFromISO(e._id, navigator.language, chartSlice.value));
const pool = [...input.map(e => e.count || 0)];
pool.pop();
const avg = pool.reduce((a, e) => a + e, 0) / pool.length;
const diffPercent: number = (100 / avg * (input.at(-1)?.count || 0)) - 100;
const targets = input.slice(Math.floor(input.length / 4 * 3));
const targetAvg = targets.reduce((a, e) => a + e.count, 0) / targets.length;
const diffPercent: number = (100 / avg * (targetAvg)) - 100;
const trend = Math.max(Math.min(diffPercent, 99), -99);
return { data, labels, trend }
}
const visitsData = useFetch('/api/timeline/visits', {

View File

@@ -14,10 +14,9 @@ function transformResponse(input: { _id: string, name: string, count: number }[]
data: input,
from: input[0]._id,
to: safeSnapshotDates.value.to
}, slice.value, {
advanced: true,
advancedGroupKey: 'name'
});
},
slice.value,
{ advanced: true, advancedGroupKey: 'name' });
const parsedDatasets: any[] = [];
@@ -62,6 +61,7 @@ function transformResponse(input: { _id: string, name: string, count: number }[]
datasets: parsedDatasets,
labels: fixed.labels
}
}
const errorData = ref<{ errored: boolean, text: string }>({
@@ -83,7 +83,7 @@ function onResponse(e: any) {
const eventsStackedData = useFetch(`/api/timeline/events_stacked`, {
lazy: true, immediate: false,
transform: transformResponse,
headers: useComputedHeaders({slice}),
headers: useComputedHeaders({ slice }),
onResponseError,
onResponse
});

View File

@@ -29,7 +29,7 @@ const eventsData = await useFetch(`/api/data/count`, { headers: useComputedHeade
</div>
</div>
<div>
<LyxUiButton type="secondary" to="https://docs.litlyx.com/custom-events">
<LyxUiButton type="secondary" target="_blank" to="https://docs.litlyx.com/custom-events">
Trigger your first event
</LyxUiButton>
</div>

View File

@@ -62,7 +62,7 @@ export function fixMetrics(result: { data: MetricsTimeline[], from: string, to:
const allKeys = !options.advanced ? [] : Array.from(new Set(result.data.map((e: any) => e[options.advancedGroupKey])).values());
console.log({allKeys})
console.log({ allKeys, allDates })
const fixed: any[] = allDates.map(matchDate => {
@@ -102,9 +102,9 @@ console.log({allKeys})
if (slice == 'hour') {
return `${e._id.getHours().toString().padStart(2, '0')}:00`
} else if (slice == 'day') {
return `${e._id.getDate().toString().padStart(2, '0')}/${e._id.getMonth().toString().padStart(2, '0')}`
return `${e._id.getDate().toString().padStart(2, '0')}/${(e._id.getMonth() + 1).toString().padStart(2, '0')}`
} else if (slice == 'month') {
return `${e._id.getMonth().toString().padStart(2, '0')}/${e._id.getFullYear().toString()}`
return `${(e._id.getMonth() + 1).toString().padStart(2, '0')}/${e._id.getFullYear().toString()}`
} else if (slice == 'year') {
return `${e._id.getFullYear().toString()}`
} else {