import { createRootRoute, createRoute, createRouter, Outlet, Link } from '@tanstack/react-router'
import { ArticleTicker } from './components/ArticleTicker'
import { ArticlesComponent } from './components/routes/ArticlesComponent'
import { ArticleDetailComponent } from './components/routes/ArticleDetailComponent'
import { LiveBlogsComponent } from './components/routes/LiveBlogsComponent'
import { LiveBlogDetailComponent } from './components/routes/LiveBlogDetailComponent'
import { LiveBlogAdminComponent } from './components/routes/LiveBlogAdminComponent'
import { CreateLiveBlogComponent } from './components/routes/CreateLiveBlogComponent'
import { AdminDashboardComponent } from './components/routes/AdminDashboardComponent'
import { AuthPage } from './components/routes/AuthPage'
import { LiveBlogTicker } from './components/features/live-blog/LiveBlogTicker'
import { PinnedLiveBlogSidebar } from './components/features/live-blog/PinnedLiveBlogSidebar'
import { ProtectedRoute } from './components/auth/ProtectedRoute'
import { Header } from './components/layout/Header'
import './styles.css'
const rootRoute = createRootRoute({
head: () => ({
meta: [
{
title: 'Placebo.mk - Sarcastic News from Macedonia',
description: 'Latest news and articles from Macedonia with a sarcastic twist',
},
],
}),
component: () => (
),
})
const indexRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/',
component: () => (
{/* Article Ticker at the top */}
{/* Live Blog Ticker below article ticker */}
{/* Main content - 3 columns */}
{/* Hero section */}
Placebo.mk
Unapologetically sarcastic news and commentary on local and global affairs in Macedonia. Because sometimes the truth hurts more than fiction.
{/* Features grid */}
Latest Articles
Freshly brewed sarcasm on current events, politics, and everything in between.
No Filter
We don't do nuance. We don't do diplomatic language. Just honest (and slightly mean) commentary.
Live Coverage
Real-time updates on breaking news with our live blogging system. No delays, just facts.
{/* Call to action */}
Ready for some unfiltered truth?
Dive into our articles or follow live coverage of breaking news as it happens.
Read Articles
View Live Blogs
{/* Sidebar - 1 column */}
{/* Additional sidebar content */}
About Placebo.mk
We're not here to make friends. We're here to tell the truth with a healthy dose of sarcasm.
Live coverage updated in real-time
No ads, no sponsors, no BS
100% independent journalism
),
})
const articlesRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/articles',
component: ArticlesComponent,
})
const articleDetailRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/articles/$id',
component: () => {
const { id } = articleDetailRoute.useParams()
return
},
})
const liveBlogsRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/live-blogs',
component: LiveBlogsComponent,
})
const liveBlogDetailRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/live-blogs/$slug',
component: () => {
const { slug } = liveBlogDetailRoute.useParams()
return
},
})
const authRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/auth',
component: AuthPage,
})
const liveBlogAdminRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/admin/live-blogs/$slug',
component: () => {
const { slug } = liveBlogAdminRoute.useParams()
return (
)
},
})
const createLiveBlogRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/admin/live-blogs/create',
component: () => (
),
})
const adminDashboardRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/admin',
component: () => (
),
})
const routeTree = rootRoute.addChildren([
indexRoute,
articlesRoute,
articleDetailRoute,
liveBlogsRoute,
liveBlogDetailRoute,
authRoute,
liveBlogAdminRoute,
createLiveBlogRoute,
adminDashboardRoute,
])
export const router = createRouter({ routeTree })
declare module '@tanstack/react-router' {
interface Register {
router: typeof router
}
}