improve(dashboard): better event selector and other improvements
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
createSqlBuilder,
|
||||
db,
|
||||
funnelService,
|
||||
getEventMetasCached,
|
||||
getSelectPropertyKey,
|
||||
getSettingsForProject,
|
||||
toDate,
|
||||
@@ -61,15 +62,24 @@ export const chartRouter = createTRPCRouter({
|
||||
}),
|
||||
)
|
||||
.query(async ({ input: { projectId } }) => {
|
||||
const events = await chQuery<{ name: string }>(
|
||||
`SELECT DISTINCT name FROM ${TABLE_NAMES.event_names_mv} WHERE project_id = ${escape(projectId)}`,
|
||||
);
|
||||
const [events, meta] = await Promise.all([
|
||||
chQuery<{ name: string; count: number }>(
|
||||
`SELECT name, count(name) as count FROM ${TABLE_NAMES.event_names_mv} WHERE project_id = ${escape(projectId)} GROUP BY name ORDER BY count DESC, name ASC`,
|
||||
),
|
||||
getEventMetasCached(projectId),
|
||||
]);
|
||||
|
||||
return [
|
||||
{
|
||||
name: '*',
|
||||
count: events.reduce((acc, event) => acc + event.count, 0),
|
||||
meta: undefined,
|
||||
},
|
||||
...events,
|
||||
...events.map((event) => ({
|
||||
name: event.name,
|
||||
count: event.count,
|
||||
meta: meta.find((m) => m.name === event.name),
|
||||
})),
|
||||
];
|
||||
}),
|
||||
|
||||
|
||||
@@ -10,7 +10,9 @@ import {
|
||||
db,
|
||||
eventService,
|
||||
formatClickhouseDate,
|
||||
getConversionEventNames,
|
||||
getEventList,
|
||||
getEventMetasCached,
|
||||
getEvents,
|
||||
getSettingsForProject,
|
||||
overviewService,
|
||||
@@ -41,6 +43,7 @@ export const eventRouter = createTRPCRouter({
|
||||
)
|
||||
.mutation(
|
||||
async ({ input: { projectId, name, icon, color, conversion } }) => {
|
||||
await getEventMetasCached.clear(projectId);
|
||||
return db.eventMeta.upsert({
|
||||
where: {
|
||||
name_projectId: {
|
||||
@@ -173,12 +176,7 @@ export const eventRouter = createTRPCRouter({
|
||||
}),
|
||||
)
|
||||
.query(async ({ input: { projectId, cursor } }) => {
|
||||
const conversions = await db.eventMeta.findMany({
|
||||
where: {
|
||||
projectId,
|
||||
conversion: true,
|
||||
},
|
||||
});
|
||||
const conversions = await getConversionEventNames(projectId);
|
||||
|
||||
if (conversions.length === 0) {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user