Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions apps/web/app/(app)/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
import { redirect } from "next/navigation";
import { createClient } from "@/lib/supabase/server";
import { TopNav } from "@/components/app-shell/top-nav";

export default async function AppLayout({ children }: { children: React.ReactNode }) {
const supabase = await createClient();
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) redirect("/login");

export default function AppLayout({ children }: { children: React.ReactNode }) {
return (
<div className="flex min-h-screen flex-col">
<TopNav />
Expand Down
17 changes: 0 additions & 17 deletions apps/web/app/(auth)/layout.tsx

This file was deleted.

72 changes: 0 additions & 72 deletions apps/web/app/(auth)/login/page.tsx

This file was deleted.

15 changes: 0 additions & 15 deletions apps/web/app/auth/callback/route.ts

This file was deleted.

7 changes: 6 additions & 1 deletion apps/web/components/cameras/camera-wall.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,12 @@ export function CameraWall({ cameras }: Props) {
const [stream, setStream] = useState<StreamFilter>("hls");
const [query, setQuery] = useState("");
const [visibleCount, setVisibleCount] = useState(PAGE_SIZE);
const [hideOffline, setHideOffline] = useState(true);
// Default OFF: offline tiles stay in their slot with the "offline" overlay
// instead of being filtered out of `visible`, which triggers CSS-grid
// reflow and visually shifts every surviving tile. Re-applies the fix
// from 9672f31, which was reverted in 0010078 without restoring any
// in-place behavior.
const [hideOffline, setHideOffline] = useState(false);
const [offlineIds, setOfflineIds] = useState<Set<string>>(() => new Set());

const reportStatus = useCallback((id: string, status: CameraStatus) => {
Expand Down
18 changes: 13 additions & 5 deletions apps/web/components/landing/business-owner-view.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
"use client";

import { useEffect, useRef, useState } from "react";
import { LiveStream } from "@/components/cameras/live-stream";

// Public Caltrans D4 HLS feed — proxied through /api/hls.
// Falls back to an "offline" overlay if the stream is down.
const LANDING_PREVIEW_STREAM =
"https://wzmedia.dot.ca.gov/D4/N101_at_6th.stream/playlist.m3u8";

// IntersectionObserver: returns [ref, inView]. Latches to true so reveal
// animations play exactly once when the section scrolls into view.
Expand Down Expand Up @@ -147,11 +153,13 @@ function OwnerAlertMock() {
<span className="tabular-nums">CAM 14B · live</span>
</div>

<div className="flex flex-1 items-center justify-center bg-neutral-900 text-neutral-400">
<span className="font-mono text-[10px] uppercase tracking-widest">
⟶ HLS feed preview
</span>
</div>
<LiveStream
streamUrl={LANDING_PREVIEW_STREAM}
streamType="hls"
className="flex-1"
lazy={false}
showLiveDot
/>

<div
className="shrink-0 overflow-hidden border-t"
Expand Down
56 changes: 0 additions & 56 deletions apps/web/middleware.ts

This file was deleted.

Loading