@@ -19,9 +19,12 @@ export interface AppProps {
1919 onPreviewSlot ?: ( event : EventItem | null ) => void ;
2020}
2121
22- const DASHBOARD_URL =
23- ( import . meta. env . VITE_DASHBOARD_URL as string | undefined ) ??
24- "https://cornellloop.com" ;
22+ const DASHBOARD_URL = ( ( ) => {
23+ const value = import . meta. env . VITE_DASHBOARD_URL ;
24+ return typeof value === "string" && value . length > 0
25+ ? value
26+ : "https://cornellloop.com" ;
27+ } ) ( ) ;
2528
2629export default function App ( {
2730 onClose,
@@ -59,9 +62,9 @@ export default function App({
5962 const isSearchMode = view === "search" || view === "email" ;
6063
6164 const handleTabChange = ( tab : string ) => {
62- const t = tab as "feed" | "bookmarks" ;
63- setActiveTab ( t ) ;
64- setView ( t ) ;
65+ if ( tab !== "feed" && tab !== "bookmarks" ) return ;
66+ setActiveTab ( tab ) ;
67+ setView ( tab ) ;
6568 setEmailEvent ( null ) ;
6669 } ;
6770
@@ -92,7 +95,7 @@ export default function App({
9295 style = { { boxShadow : "0px 4px 16px rgba(0, 0, 0, 0.18)" } }
9396 >
9497 { /* ── Sticky header ── */ }
95- < div className = "shrink-0 px-6 pt-7" >
98+ < div className = "shrink-0 px-6 pt-7" data-loop-panel-drag >
9699 < SearchHeader
97100 variant = { isSearchMode ? "search" : "main" }
98101 activeTab = { activeTab }
@@ -109,7 +112,10 @@ export default function App({
109112 { /* ── Main content: search uses pinned footer CTA; other views scroll with CTA inline ── */ }
110113 { view === "search" ? (
111114 < div className = "flex min-h-0 flex-1 flex-col" >
112- < div className = "min-h-0 flex-1 overflow-y-auto px-6 py-[21px]" >
115+ < div
116+ className = "min-h-0 flex-1 overflow-y-auto px-6 py-[21px]"
117+ data-loop-scroll
118+ >
113119 < SearchView
114120 query = { searchQuery }
115121 onSearchSelect = { handleSearchSelect }
@@ -137,7 +143,10 @@ export default function App({
137143 </ div >
138144 </ div >
139145 ) : (
140- < div className = "min-h-0 flex-1 overflow-y-auto px-6 py-[21px]" >
146+ < div
147+ className = "min-h-0 flex-1 overflow-y-auto px-6 py-[21px]"
148+ data-loop-scroll
149+ >
141150 { view === "feed" && (
142151 < FeedView
143152 bookmarkedIds = { bookmarkedIds }
0 commit comments