Make heatmaps report always available.
This commit is contained in:
@@ -1,12 +1,7 @@
|
||||
import type { Metadata } from 'next';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { HeatmapsPage } from './HeatmapsPage';
|
||||
|
||||
export default async function ({ params }: { params: Promise<{ websiteId: string }> }) {
|
||||
if (!process.env.UMAMI_SELF_RECORD) {
|
||||
notFound();
|
||||
}
|
||||
|
||||
const { websiteId } = await params;
|
||||
|
||||
return <HeatmapsPage websiteId={websiteId} />;
|
||||
|
||||
@@ -14,7 +14,6 @@ export async function GET(request: Request) {
|
||||
linksUrl: process.env.LINKS_URL,
|
||||
pixelsUrl: process.env.PIXELS_URL,
|
||||
privateMode: !!process.env.PRIVATE_MODE,
|
||||
selfRecordEnabled: !!process.env.UMAMI_SELF_RECORD,
|
||||
telemetryDisabled: !!process.env.DISABLE_TELEMETRY,
|
||||
trackerScriptName: process.env.TRACKER_SCRIPT_NAME,
|
||||
updatesDisabled: !!process.env.DISABLE_UPDATES,
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
import { parseRequest, setWebsiteDate } from '@/lib/request';
|
||||
import { forbidden, json, unauthorized } from '@/lib/response';
|
||||
import { json, unauthorized } from '@/lib/response';
|
||||
import { reportResultSchema } from '@/lib/schema';
|
||||
import { canViewWebsite } from '@/permissions';
|
||||
import { getHeatmap, type HeatmapParameters } from '@/queries/sql';
|
||||
|
||||
export async function POST(request: Request) {
|
||||
if (!process.env.UMAMI_SELF_RECORD) {
|
||||
return forbidden({ message: 'Heatmap recording is disabled.' });
|
||||
}
|
||||
|
||||
const { auth, body, error } = await parseRequest(request, reportResultSchema);
|
||||
|
||||
if (error) {
|
||||
|
||||
@@ -8,7 +8,6 @@ export type Config = {
|
||||
linksUrl?: string;
|
||||
pixelsUrl?: string;
|
||||
privateMode: boolean;
|
||||
selfRecordEnabled: boolean;
|
||||
telemetryDisabled: boolean;
|
||||
trackerScriptName?: string;
|
||||
updatesDisabled: boolean;
|
||||
|
||||
@@ -11,14 +11,12 @@ import {
|
||||
Video,
|
||||
} from '@/components/icons';
|
||||
import { Funnel, Gauge, Lightning, Magnet, Money, Network, Path, Target } from '@/components/svg';
|
||||
import { useConfig } from './useConfig';
|
||||
import { useMessages } from './useMessages';
|
||||
import { useNavigation } from './useNavigation';
|
||||
|
||||
export function useWebsiteNavItems(websiteId: string) {
|
||||
const { t, labels } = useMessages();
|
||||
const { pathname, renderUrl } = useNavigation();
|
||||
const config = useConfig();
|
||||
|
||||
const renderPath = (path: string) =>
|
||||
renderUrl(`/websites/${websiteId}${path}`, {
|
||||
@@ -110,16 +108,12 @@ export function useWebsiteNavItems(websiteId: string) {
|
||||
icon: <Video />,
|
||||
path: renderPath('/replays'),
|
||||
},
|
||||
...(config?.selfRecordEnabled
|
||||
? [
|
||||
{
|
||||
id: 'heatmaps',
|
||||
label: t(labels.heatmaps),
|
||||
icon: <Flame />,
|
||||
path: renderPath('/heatmaps'),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
id: 'heatmaps',
|
||||
label: t(labels.heatmaps),
|
||||
icon: <Flame />,
|
||||
path: renderPath('/heatmaps'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user