diff --git a/packages/app/src/app/(guest)/signin/page.tsx b/packages/app/src/app/(guest)/signin/page.tsx
index 27b9a97..7033b90 100644
--- a/packages/app/src/app/(guest)/signin/page.tsx
+++ b/packages/app/src/app/(guest)/signin/page.tsx
@@ -4,8 +4,6 @@ import { Box, Flex, Text, VStack } from '@devup-ui/react'
import { useRouter } from 'next/navigation'
import { useState } from 'react'
-import { DEMO_MODE, demoPageHref } from '@/lib/demo-path'
-
export default function SignInPage() {
const router = useRouter()
const [username, setUsername] = useState('')
@@ -39,12 +37,8 @@ export default function SignInPage() {
document.cookie = `refresh_token=${data.refresh_token}; path=/; max-age=${60 * 60 * 24 * 7}` // 7 days
// Redirect to dashboard
- if (DEMO_MODE) {
- window.location.assign(demoPageHref('/'))
- } else {
- router.push('/')
- router.refresh()
- }
+ router.push('/')
+ router.refresh()
} catch (err) {
setError(err instanceof Error ? err.message : 'An error occurred')
} finally {
diff --git a/packages/app/src/components/common/AppLink.tsx b/packages/app/src/components/common/AppLink.tsx
index 3f39333..827db70 100644
--- a/packages/app/src/components/common/AppLink.tsx
+++ b/packages/app/src/components/common/AppLink.tsx
@@ -1,28 +1,17 @@
'use client'
+import { css } from '@devup-ui/react'
import Link from 'next/link'
import type { ReactNode } from 'react'
-import { DEMO_MODE, demoPageHref } from '@/lib/demo-path'
-
interface AppLinkProps {
children: ReactNode
href: string
}
export function AppLink({ children, href }: AppLinkProps) {
- const style = { textDecoration: 'none' }
-
- if (DEMO_MODE) {
- return (
-
- {children}
-
- )
- }
-
return (
-
+
{children}
)
diff --git a/packages/app/src/components/layout/NavItem.tsx b/packages/app/src/components/layout/NavItem.tsx
index 9570c98..eb554bb 100644
--- a/packages/app/src/components/layout/NavItem.tsx
+++ b/packages/app/src/components/layout/NavItem.tsx
@@ -4,7 +4,6 @@ import { Box, Flex, Text } from '@devup-ui/react'
import { usePathname } from 'next/navigation'
import { AppLink } from '@/components/common/AppLink'
-import { normalizeDemoPath } from '@/lib/demo-path'
interface MenuItem {
id: string
@@ -22,7 +21,7 @@ interface NavItemProps {
* Requires 'use client' due to usePathname hook.
*/
export function NavItem({ item }: NavItemProps) {
- const pathname = normalizeDemoPath(usePathname())
+ const pathname = usePathname()
const isActive = pathname === item.path
const hasChildren = item.children && item.children.length > 0
const isChildActive = item.children?.some((child) => pathname === child.path)
diff --git a/packages/app/src/lib/demo-path.ts b/packages/app/src/lib/demo-path.ts
deleted file mode 100644
index 06f5d8e..0000000
--- a/packages/app/src/lib/demo-path.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export const DEMO_MODE = import.meta.env.VITE_YEOLLIN_DEMO === 'true'
-
-const DEMO_BASE_PATH = import.meta.env.VITE_YEOLLIN_BASE_PATH ?? ''
-
-export function demoPageHref(path: string): string {
- if (!DEMO_MODE) return path
- if (path === '/') return `${DEMO_BASE_PATH}/`
-
- return `${DEMO_BASE_PATH}${path}.html`
-}
-
-export function normalizeDemoPath(pathname: string): string {
- if (!DEMO_MODE) return pathname
-
- const withoutBase = pathname.startsWith(DEMO_BASE_PATH)
- ? pathname.slice(DEMO_BASE_PATH.length)
- : pathname
- const withoutHtml = withoutBase.replace(/\.html$/, '')
-
- return withoutHtml || '/'
-}
diff --git a/packages/app/src/lib/mock-api.ts b/packages/app/src/lib/mock-api.ts
index 72e0684..295a308 100644
--- a/packages/app/src/lib/mock-api.ts
+++ b/packages/app/src/lib/mock-api.ts
@@ -24,10 +24,6 @@ function id(prefix: string): string {
return `${prefix}-${sequence}`
}
-function demoUrl(path: string): string {
- return `${DEMO_BASE_PATH}${path}.html`
-}
-
function imageData(label: string, start: string, end: string): string {
const svg = ``
return `data:image/svg+xml,${encodeURIComponent(svg)}`
@@ -499,7 +495,7 @@ function handleSearch(path: string, method: string, url: URL) {
subject: `${entry.collection}:${entry.id}`,
title: entry.title,
updatedAt: entry.updatedAt,
- url: demoUrl('/content/pages'),
+ url: '/content/pages',
}))
const page = pageOf(results, url, 20)
return json({
diff --git a/packages/app/vite.config.ts b/packages/app/vite.config.ts
index 7640371..08f4ee5 100644
--- a/packages/app/vite.config.ts
+++ b/packages/app/vite.config.ts
@@ -12,6 +12,20 @@ export default defineConfig({
DevupUI(),
devupApi({ serverActions: false }),
vinext({ react: { compiler: true } }),
+ {
+ name: 'yeollin-demo-base-path',
+ config() {
+ if (!process.env.VITE_YEOLLIN_BASE_PATH) return
+
+ return {
+ define: {
+ 'process.env.__NEXT_ROUTER_BASEPATH': JSON.stringify(
+ process.env.VITE_YEOLLIN_BASE_PATH,
+ ),
+ },
+ }
+ },
+ },
],
server: {
host: '127.0.0.1',
diff --git a/plugins/search/app/(search)/page.tsx b/plugins/search/app/(search)/page.tsx
index 48279af..60c0c4d 100644
--- a/plugins/search/app/(search)/page.tsx
+++ b/plugins/search/app/(search)/page.tsx
@@ -1,6 +1,7 @@
'use client'
import { Box, Flex, Grid, Text, VStack } from '@devup-ui/react'
+import Link from 'next/link'
import { useEffect, useState } from 'react'
type ContentStatus = 'draft' | 'published'
@@ -491,13 +492,13 @@ export default function SearchPage() {