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 = `${label}` 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() {