-
+
{!view && }
{view && }
diff --git a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
index b74482a4..15fa1a84 100644
--- a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
+++ b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx
@@ -1,5 +1,5 @@
import classNames from 'classnames';
-import { useMessages, useSticky } from 'components/hooks';
+import { useDateRange, useMessages, useSticky } from 'components/hooks';
import WebsiteDateFilter from 'components/input/WebsiteDateFilter';
import MetricCard from 'components/metrics/MetricCard';
import MetricsBar from 'components/metrics/MetricsBar';
@@ -15,12 +15,15 @@ export function WebsiteMetricsBar({
sticky,
showChange = false,
compareMode = false,
+ showFilter = false,
}: {
websiteId: string;
sticky?: boolean;
showChange?: boolean;
compareMode?: boolean;
+ showFilter?: boolean;
}) {
+ const { dateRange } = useDateRange(websiteId);
const { formatMessage, labels } = useMessages();
const dateCompare = useStore(state => state[websiteId]?.dateCompare);
const { ref, isSticky } = useSticky({ enabled: sticky });
@@ -28,6 +31,7 @@ export function WebsiteMetricsBar({
websiteId,
compareMode && dateCompare,
);
+ const isAllTime = dateRange.value === 'all';
const { pageviews, visitors, visits, bounces, totaltime } = data || {};
@@ -97,16 +101,16 @@ export function WebsiteMetricsBar({
change={change}
formatValue={formatValue}
reverseColors={reverseColors}
- showChange={compareMode || showChange}
- showPrevious={compareMode}
+ showChange={!isAllTime && (compareMode || showChange)}
+ showPrevious={!isAllTime && compareMode}
/>
);
})}
-
-
+ {showFilter &&
}
+
{compareMode && (
VS
diff --git a/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx b/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx
index 092ebe94..1455b76f 100644
--- a/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx
+++ b/src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx
@@ -22,7 +22,7 @@ export function WebsiteComparePage({ websiteId }) {
-
+
diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
index cef6e742..2c135150 100644
--- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
+++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx
@@ -14,25 +14,21 @@ export function RealtimeHeader({ data }: { data: RealtimeData }) {
className={styles.card}
label={formatMessage(labels.views)}
value={pageviews?.length}
- showChange
/>
diff --git a/src/components/input/WebsiteDateFilter.tsx b/src/components/input/WebsiteDateFilter.tsx
index 4f2dee0a..486f5de1 100644
--- a/src/components/input/WebsiteDateFilter.tsx
+++ b/src/components/input/WebsiteDateFilter.tsx
@@ -6,7 +6,13 @@ import DateFilter from './DateFilter';
import styles from './WebsiteDateFilter.module.css';
import { DateRange } from 'lib/types';
-export function WebsiteDateFilter({ websiteId }: { websiteId: string }) {
+export function WebsiteDateFilter({
+ websiteId,
+ showAllTime = true,
+}: {
+ websiteId: string;
+ showAllTime?: boolean;
+}) {
const { dir } = useLocale();
const { dateRange, saveDateRange } = useDateRange(websiteId);
const { value, startDate, endDate, offset } = dateRange;
@@ -30,7 +36,7 @@ export function WebsiteDateFilter({ websiteId }: { websiteId: string }) {
endDate={endDate}
offset={offset}
onChange={handleChange}
- showAllTime={true}
+ showAllTime={showAllTime}
/>
{value !== 'all' && !value.startsWith('range') && (
diff --git a/src/lang/am-ET.json b/src/lang/am-ET.json
index 9546ffdd..5e286342 100644
--- a/src/lang/am-ET.json
+++ b/src/lang/am-ET.json
@@ -13,7 +13,7 @@
"label.all-time": "All time",
"label.analytics": "Analytics",
"label.average": "Average",
- "label.visit-duration": "Average visit time",
+ "label.visit-duration": "Visit duration",
"label.back": "Back",
"label.before": "Before",
"label.bounce-rate": "Bounce rate",
diff --git a/src/lang/bg-BG.json b/src/lang/bg-BG.json
new file mode 100644
index 00000000..f293ed88
--- /dev/null
+++ b/src/lang/bg-BG.json
@@ -0,0 +1,246 @@
+{
+ "label.access-code": "Код за достъп",
+ "label.actions": "Действия",
+ "label.activity-log": "Активностти",
+ "label.add": "Добави",
+ "label.add-description": "Добави описание",
+ "label.add-member": "Добави член",
+ "label.add-step": "Добави стъпка",
+ "label.add-website": "Добави уебсайт",
+ "label.admin": "Администратор",
+ "label.after": "След",
+ "label.all": "Всички",
+ "label.all-time": "За всички времена",
+ "label.analytics": "Анализи",
+ "label.average": "Средно",
+ "label.average-visit-time": "Средно време на посещение",
+ "label.back": "Назад",
+ "label.before": "Преди",
+ "label.bounce-rate": "Kоефициент на отказ",
+ "label.breakdown": "Разбивка",
+ "label.browser": "Браузър",
+ "label.browsers": "Браузъри",
+ "label.cancel": "Отмени",
+ "label.change-password": "Смени парола",
+ "label.cities": "Градове",
+ "label.city": "Град",
+ "label.clear-all": "Изчисти всички",
+ "label.confirm": "Потвърди",
+ "label.confirm-password": "Потвърди парола",
+ "label.contains": "Съдържа",
+ "label.continue": "Продължи",
+ "label.countries": "Държави",
+ "label.country": "Държава",
+ "label.create": "Създай",
+ "label.create-report": "Създай отчет",
+ "label.create-team": "Създай екип",
+ "label.create-user": "Създай потребител",
+ "label.created": "Създадено",
+ "label.created-by": "Създадено от",
+ "label.current-password": "Текуща парола",
+ "label.custom-range": "Обхват",
+ "label.dashboard": "Табло",
+ "label.data": "Данни",
+ "label.date": "Дата",
+ "label.date-range": "Диапазон от дати",
+ "label.day": "Ден",
+ "label.default-date-range": "Диапазон от дати по подразбиране",
+ "label.delete": "Изтрий",
+ "label.delete-report": "Изтрий отчет",
+ "label.delete-team": "Изтрий екип",
+ "label.delete-user": "Изтрий потребител",
+ "label.delete-website": "Изтрий уебсайт",
+ "label.description": "Описание",
+ "label.desktop": "Десктоп",
+ "label.details": "Детайли",
+ "label.device": "Устройство",
+ "label.devices": "Устройства",
+ "label.dismiss": "Отхвърли",
+ "label.does-not-contain": "Не съдържа",
+ "label.domain": "Домейн",
+ "label.dropoff": "Отпадане",
+ "label.edit": "Редактирай",
+ "label.edit-dashboard": "Редактирай табло",
+ "label.edit-member": "Редактирай член",
+ "label.enable-share-url": "Активирай Линк за споделяне",
+ "label.event": "Събитие",
+ "label.event-data": "Данни за събитие",
+ "label.events": "Събития",
+ "label.false": "Грешно",
+ "label.field": "Поле",
+ "label.fields": "Полета",
+ "label.filter": "Филтър",
+ "label.filter-combined": "Комбиниран",
+ "label.filter-raw": "Суров",
+ "label.filters": "Филтри",
+ "label.funnel": "Фуния",
+ "label.funnel-description": "Разберете процента на конверсия и отпадане на потребителите.",
+ "label.greater-than": "По-голямо от",
+ "label.greater-than-equals": "По-голямо или равно на",
+ "label.insights": "Изводи",
+ "label.insights-description": "Навлезте по-дълбоко в данните си, като използвате сегменти и филтри.",
+ "label.is": "Е",
+ "label.is-not": "Не е",
+ "label.is-not-set": "Не е зададено",
+ "label.is-set": "Зададено е",
+ "label.join": "Присъедини се",
+ "label.join-team": "Присъедини се към екип",
+ "label.language": "Език",
+ "label.languages": "Езици",
+ "label.laptop": "Лаптоп",
+ "label.last-days": "Последните {x} дни",
+ "label.last-hours": "Последните {x} часа",
+ "label.last-months": "Последните {x} месеца",
+ "label.leave": "Напусни",
+ "label.leave-team": "Напусни екип",
+ "label.less-than": "По-малко от",
+ "label.less-than-equals": "По-малко или равно на",
+ "label.login": "Вход",
+ "label.logout": "Изход",
+ "label.manage": "Управлявай",
+ "label.max": "Максимум",
+ "label.member": "Член",
+ "label.members": "Членове",
+ "label.min": "Минимум",
+ "label.mobile": "Мобилен",
+ "label.more": "Още",
+ "label.my-account": "Моят акаунт",
+ "label.my-websites": "Моите уебсайтове",
+ "label.name": "Име",
+ "label.new-password": "Нова парола",
+ "label.none": "Няма",
+ "label.number-of-records": "{x} {x, plural, one {един} other {други}}",
+ "label.ok": "Добре",
+ "label.os": "ОС",
+ "label.overview": "Общ преглед",
+ "label.owner": "Собственик",
+ "label.page-of": "Страница {current} от {total}",
+ "label.page-views": "Прегледи на страницата",
+ "label.pageTitle": "Заглавие на страница",
+ "label.pages": "Страници",
+ "label.password": "Парола",
+ "label.powered-by": "Поддържано от {name}",
+ "label.profile": "Профил",
+ "label.queries": "Запитвания",
+ "label.query": "Запитване",
+ "label.query-parameters": "Параметри на търсене",
+ "label.realtime": "В реално време",
+ "label.referrer": "Референт",
+ "label.referrers": "Референти",
+ "label.refresh": "Обнови",
+ "label.regenerate": "Регенерирай",
+ "label.region": "Регион",
+ "label.regions": "Региони",
+ "label.remove": "Премахни",
+ "label.remove-member": "Премахни член",
+ "label.reports": "Отчети",
+ "label.required": "Задължително",
+ "label.reset": "Нулирай",
+ "label.reset-website": "Нулирай уебсайт",
+ "label.retention": "Привързване",
+ "label.retention-description": "Измерете привързаността към вашия уебсайт, като проследявате колко често потребителите се връщат.",
+ "label.role": "Роля",
+ "label.run-query": "Изпълни запитване",
+ "label.save": "Запази",
+ "label.screens": "Екрани",
+ "label.search": "Търсене",
+ "label.select": "Избери",
+ "label.select-date": "Избери дата",
+ "label.select-role": "Избери роля",
+ "label.select-website": "Избери уебсайт",
+ "label.sessions": "Сесии",
+ "label.settings": "Настройки",
+ "label.share-url": "Сподели Линк",
+ "label.single-day": "Един ден",
+ "label.steps": "Стъпки",
+ "label.sum": "Сума",
+ "label.tablet": "Таблет",
+ "label.team": "Екип",
+ "label.team-id": "ID на екип",
+ "label.team-member": "Член на екипа",
+ "label.team-name": "Име на екипа",
+ "label.team-owner": "Собственик на екипа",
+ "label.team-view-only": "Видимо само за членове на екипа",
+ "label.team-websites": "Уебсайтове на екипа",
+ "label.teams": "Екипи",
+ "label.theme": "Тема",
+ "label.this-month": "Този месец",
+ "label.this-week": "Тази седмица",
+ "label.this-year": "Тази година",
+ "label.timezone": "Часова зона",
+ "label.title": "Заглавие",
+ "label.today": "Днес",
+ "label.toggle-charts": "Виж диаграми",
+ "label.total": "Общо",
+ "label.total-records": "Общо записи",
+ "label.tracking-code": "Код за проследяване",
+ "label.transfer": "Прехвърли",
+ "label.transfer-website": "Прехвърляне на уебсайт",
+ "label.true": "Вярно",
+ "label.type": "Вид",
+ "label.unique": "Уникален",
+ "label.unique-visitors": "Уникални посетители",
+ "label.unknown": "Неизвестен",
+ "label.untitled": "Без заглавие",
+ "label.update": "Актуализирай",
+ "label.url": "URL адрес",
+ "label.urls": "URL адреси",
+ "label.user": "Потребител",
+ "label.username": "Потребителско име",
+ "label.users": "Потребители",
+ "label.utm": "UTM",
+ "label.utm-description": "Следете кампаниите си чрез UTM параметри.",
+ "label.value": "Стойност",
+ "label.view": "Преглед",
+ "label.view-details": "Преглед на детайлите",
+ "label.view-only": "Само за преглед",
+ "label.views": "Прегледи",
+ "label.views-per-visit": "Прегледи на посещение",
+ "label.visitors": "Посетители",
+ "label.visits": "Посещения",
+ "label.website": "Уебсайт",
+ "label.website-id": "Идентификатор на уебсайт",
+ "label.websites": "Уебсайтове",
+ "label.window": "Прозорец",
+ "label.yesterday": "Вчера",
+ "message.action-confirmation": "Въведете {confirmation} в полето по-долу, за да потвърдите.",
+ "message.active-users": "{x} {x, plural, one {активен един} other {активни други}}",
+ "message.confirm-delete": "Сигурни ли сте, че искате да изтриете {target}?",
+ "message.confirm-leave": "Сигурни ли сте, че искате да напуснете {target}?",
+ "message.confirm-remove": "Сигурни ли сте, че искате да премахнете {target}?",
+ "message.confirm-reset": "Сигурни ли сте, че искате да нулирате {target}?",
+ "message.delete-team-warning": "Изтриването на екип ще изтрие и всички уебсайтове създадени от екипа.",
+ "message.delete-website-warning": "Всички данни за уебсайта ще бъдат изтрити.",
+ "message.error": "Възникна грешка.",
+ "message.event-log": "{event} на {url}",
+ "message.go-to-settings": "Отидете в настройките",
+ "message.incorrect-username-password": "Неправилно потребителско име и/или парола.",
+ "message.invalid-domain": "Невалиден домейн. Не включвайте http/https.",
+ "message.min-password-length": "Минимална дължина от {n} символа",
+ "message.new-version-available": "Има нова версия на Umami {version}!",
+ "message.no-data-available": "Няма налични данни.",
+ "message.no-event-data": "Няма налични данни за събитие.",
+ "message.no-match-password": "Паролите не съвпадат.",
+ "message.no-results-found": "Няма намерени резултати.",
+ "message.no-team-websites": "Този екип няма никакви уебсайтове.",
+ "message.no-teams": "Няма създадени екипи.",
+ "message.no-users": "Няма потребители.",
+ "message.no-websites-configured": "Нямате конфигурирани уебсайтове.",
+ "message.page-not-found": "Страницата не е намерена",
+ "message.reset-website": "За да нулирате този уебсайт, въведете {confirmation} в полето по-долу, за да потвърдите.",
+ "message.reset-website-warning": "Всички статистически данни за този уебсайт ще бъдат изтрити, но вашите настройки ще останат непроменени.",
+ "message.saved": "Запазено.",
+ "message.share-url": "Статистиката за вашия уебсайт е публично достъпна на следния URL адрес:",
+ "message.team-already-member": "Вече сте член на екипа.",
+ "message.team-not-found": "Екипът не е намерен.",
+ "message.team-websites-info": "Уебсайтовете могат да бъдат преглеждани от всеки член на екипа.",
+ "message.tracking-code": "За активирате проследяването на статистиката във вашият уебсайт, поставете следния код в секцията ... намираща се в вашия HTML.",
+ "message.transfer-team-website-to-user": "Искате да прехвърлите този уебсайт към вашия акаунт?",
+ "message.transfer-user-website-to-team": "Изберете екипът на който да бъде прехвърлен уебсайта.",
+ "message.transfer-website": "Прехвърли собствеността на уебсайта към вашия акаунт или към друг екип.",
+ "message.triggered-event": "Активирано събитие",
+ "message.user-deleted": "Потребителят е изтрит.",
+ "message.viewed-page": "Страницата е видяна",
+ "message.visitor-log": "Посетител от {country}, използващ {browser} на {os} {device}",
+ "message.visitors-dropped-off": "Спад на посетителите"
+}
diff --git a/src/lang/bn-BD.json b/src/lang/bn-BD.json
index 7436a002..fd91a3f4 100644
--- a/src/lang/bn-BD.json
+++ b/src/lang/bn-BD.json
@@ -1,41 +1,41 @@
{
- "label.access-code": "Access code",
+ "label.access-code": "এক্সেস কোড",
"label.actions": "অ্যাকশনস",
- "label.activity-log": "Activity log",
- "label.add": "Add",
- "label.add-description": "Add description",
- "label.add-member": "Add member",
- "label.add-step": "Add step",
+ "label.activity-log": "একটিভিটি দেখুন",
+ "label.add": "যুক্ত করুন",
+ "label.add-description": "বর্ননা যোগ করুন",
+ "label.add-member": "সদস্য যোগ করুন",
+ "label.add-step": "পদ যোগ করুন",
"label.add-website": "ওয়েবসাইট যুক্ত করুন",
"label.admin": "অ্যাডমিন",
- "label.after": "After",
+ "label.after": "পরে",
"label.all": "সবগুলো",
"label.all-time": "সব সময়",
"label.analytics": "Analytics",
"label.average": "Average",
"label.visit-duration": "গড় পরিদর্শনের সময়",
"label.back": "পেছনে",
- "label.before": "Before",
- "label.bounce-rate": "বহিষ্কারের হার",
- "label.breakdown": "Breakdown",
- "label.browser": "Browser",
- "label.browsers": "ব্রাউজার",
+ "label.before": "পূর্বে",
+ "label.bounce-rate": "উপরে উঠার হার",
+ "label.breakdown": "ভাঙ্গন",
+ "label.browser": "ব্রাউজার",
+ "label.browsers": "ব্রাউজার সমূহ",
"label.cancel": "বাতিল",
"label.change-password": "পাসওয়ার্ড পরিবর্তন করুন",
- "label.cities": "Cities",
- "label.city": "City",
- "label.clear-all": "Clear all",
- "label.confirm": "Confirm",
+ "label.cities": "শহরসমূহ",
+ "label.city": "শহর",
+ "label.clear-all": "সব মুছে ফেলুন",
+ "label.confirm": "নিশ্চিত করুন",
"label.confirm-password": "পাসওয়ার্ড নিশ্চিত করুন",
- "label.contains": "Contains",
- "label.continue": "Continue",
- "label.countries": "দেশ",
- "label.country": "Country",
- "label.create": "Create",
- "label.create-report": "Create report",
- "label.create-team": "Create team",
- "label.create-user": "Create user",
- "label.created": "Created",
+ "label.contains": "রয়েছে",
+ "label.continue": "পরবর্তিতে",
+ "label.countries": "দেশসমূহ",
+ "label.country": "দেশ",
+ "label.create": "তৈরি করুন",
+ "label.create-report": "রিপোর্ট তৈরি করুন",
+ "label.create-team": "দল তৈরি করুন",
+ "label.create-user": "ব্যবহারকারী তৈরি করুন",
+ "label.created": "তৈরি করা হয়েছে",
"label.created-by": "Created By",
"label.current-password": "বর্তমান পাসওয়ার্ড",
"label.custom-range": "কাস্টম রেঞ্জ",
diff --git a/src/lang/en-GB.json b/src/lang/en-GB.json
index 82e60c5e..dbe239fb 100644
--- a/src/lang/en-GB.json
+++ b/src/lang/en-GB.json
@@ -13,7 +13,7 @@
"label.all-time": "All time",
"label.analytics": "Analytics",
"label.average": "Average",
- "label.visit-duration": "Average visit time",
+ "label.visit-duration": "Visit duration",
"label.back": "Back",
"label.before": "Before",
"label.bounce-rate": "Bounce rate",
diff --git a/src/lang/en-US.json b/src/lang/en-US.json
index 77e6daa1..114ed1d0 100644
--- a/src/lang/en-US.json
+++ b/src/lang/en-US.json
@@ -13,7 +13,7 @@
"label.all-time": "All time",
"label.analytics": "Analytics",
"label.average": "Average",
- "label.visit-duration": "Average visit time",
+ "label.visit-duration": "Visit duration",
"label.back": "Back",
"label.before": "Before",
"label.bounce-rate": "Bounce rate",
diff --git a/src/lang/hr-HR.json b/src/lang/hr-HR.json
index ea488490..62adcbcb 100644
--- a/src/lang/hr-HR.json
+++ b/src/lang/hr-HR.json
@@ -13,7 +13,7 @@
"label.all-time": "Svo vrijeme",
"label.analytics": "Analytics",
"label.average": "Average",
- "label.visit-duration": "Average visit time",
+ "label.visit-duration": "Visit duration",
"label.back": "Natrag ",
"label.before": "Before",
"label.bounce-rate": "Bounce rate",
diff --git a/src/lang/si-LK.json b/src/lang/si-LK.json
index 087efa56..d3dc4c4f 100644
--- a/src/lang/si-LK.json
+++ b/src/lang/si-LK.json
@@ -13,7 +13,7 @@
"label.all-time": "හැම වෙලාවෙම",
"label.analytics": "Analytics",
"label.average": "Average",
- "label.visit-duration": "Average visit time",
+ "label.visit-duration": "Visit duration",
"label.back": "ආපසු",
"label.before": "Before",
"label.bounce-rate": "Bounce rate",
diff --git a/src/lib/lang.ts b/src/lib/lang.ts
index 2d9ac58c..48176d0a 100644
--- a/src/lib/lang.ts
+++ b/src/lib/lang.ts
@@ -2,6 +2,7 @@ import {
arSA,
be,
bn,
+ bg,
bs,
cs,
sk,
@@ -48,6 +49,7 @@ import {
export const languages = {
'ar-SA': { label: 'العربية', dateLocale: arSA, dir: 'rtl' },
'be-BY': { label: 'Беларуская', dateLocale: be },
+ 'bg-BG': { label: 'български език', dateLocale: bg },
'bn-BD': { label: 'বাংলা', dateLocale: bn },
'bs-BA': { label: 'Bosanski', dateLocale: bs },
'ca-ES': { label: 'Català', dateLocale: ca },
diff --git a/src/lib/load.ts b/src/lib/load.ts
index c0a87897..7812ea0d 100644
--- a/src/lib/load.ts
+++ b/src/lib/load.ts
@@ -3,7 +3,7 @@ import { Website, Session } from '@prisma/client';
import redis from '@umami/redis-client';
export async function fetchWebsite(websiteId: string): Promise {
- let website;
+ let website = null;
if (redis.enabled) {
website = await redis.client.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400);
@@ -19,7 +19,7 @@ export async function fetchWebsite(websiteId: string): Promise {
}
export async function fetchSession(sessionId: string): Promise {
- let session;
+ let session = null;
if (redis.enabled) {
session = await redis.client.fetch(`session:${sessionId}`, () => getSession(sessionId), 86400);
diff --git a/src/pages/api/admin/websites.ts b/src/pages/api/admin/websites.ts
index 686de6cb..d7dd6b74 100644
--- a/src/pages/api/admin/websites.ts
+++ b/src/pages/api/admin/websites.ts
@@ -11,6 +11,7 @@ import * as yup from 'yup';
export interface WebsitesRequestQuery extends PageParams {
userId?: string;
includeOwnedTeams?: boolean;
+ includeAllTeams?: boolean;
}
export interface WebsitesRequestBody {
@@ -43,7 +44,7 @@ export default async (
return unauthorized(res);
}
- const { userId, includeOwnedTeams } = req.query;
+ const { userId, includeOwnedTeams, includeAllTeams } = req.query;
const websites = await getWebsites(
{
@@ -65,6 +66,20 @@ export default async (
},
]
: []),
+ ...(userId && includeAllTeams
+ ? [
+ {
+ team: {
+ deletedAt: null,
+ teamUser: {
+ some: {
+ userId,
+ },
+ },
+ },
+ },
+ ]
+ : []),
],
},
include: {
diff --git a/src/pages/api/send.ts b/src/pages/api/send.ts
index 11ba10d7..ab565e6e 100644
--- a/src/pages/api/send.ts
+++ b/src/pages/api/send.ts
@@ -144,7 +144,6 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => {
eventData: data,
...session,
sessionId: session.id,
- visitId: session.visitId,
});
}
diff --git a/src/queries/analytics/reports/getRetention.ts b/src/queries/analytics/reports/getRetention.ts
index fce7841d..de495cc4 100644
--- a/src/queries/analytics/reports/getRetention.ts
+++ b/src/queries/analytics/reports/getRetention.ts
@@ -172,8 +172,8 @@ async function clickhouseQuery(
startDate,
endDate,
},
- ).then(a => {
- return Object.values(a).map(a => {
+ ).then(result => {
+ return Object.values(result).map((a: any) => {
return {
date: a.date,
day: Number(a.day),