feat: add news and dashboard content routes with corresponding layouts

This commit is contained in:
Ardeman
2025-03-07 12:11:48 +08:00
parent afebd8b335
commit 18098d63ba
22 changed files with 38 additions and 59 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ import { Button } from '~/components/ui/button'
import { Combobox } from '~/components/ui/combobox'
import { Input } from '~/components/ui/input'
import { useNewsContext } from '~/contexts/news'
import type { loader } from '~/routes/_layout'
import type { loader } from '~/routes/_news'
export const registerSchema = z
.object({
@@ -42,7 +42,7 @@ export const FormRegister = () => {
const [error, setError] = useState<string>()
const [disabled, setDisabled] = useState(false)
const fetcher = useFetcher()
const loaderData = useRouteLoaderData<typeof loader>('routes/_layout')
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const subscriptions = loaderData?.subscriptionsData
const formMethods = useRemixForm<TRegisterSchema>({
+2 -2
View File
@@ -7,7 +7,7 @@ import { z } from 'zod'
import { Button } from '~/components/ui/button'
import { Combobox } from '~/components/ui/combobox'
import { useNewsContext } from '~/contexts/news'
import type { loader } from '~/routes/_layout'
import type { loader } from '~/routes/_news'
export const subscribeSchema = z.object({
subscribe_plan: z
@@ -30,7 +30,7 @@ export default function FormSubscription() {
const fetcher = useFetcher()
const [error, setError] = useState<string>()
const [disabled, setDisabled] = useState(false)
const loaderData = useRouteLoaderData<typeof loader>('routes/_layout')
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const subscriptions = loaderData?.subscriptionsData
const formMethods = useRemixForm<TSubscribeSchema>({
+2 -2
View File
@@ -7,7 +7,7 @@ import { MenuIcon } from '~/components/icons/menu'
import { Button } from '~/components/ui/button'
import { useNewsContext } from '~/contexts/news'
import { HeaderSearch } from '~/layouts/news/header-search'
import type { loader } from '~/routes/_layout'
import type { loader } from '~/routes/_news'
type THeaderMenuMobile = {
menu?: TCategoriesResponse['data']
@@ -17,7 +17,7 @@ export default function HeaderMenuMobile(properties: THeaderMenuMobile) {
const { menu } = properties
const [isMenuOpen, setIsMenuOpen] = useState(false)
const { setIsLoginOpen } = useNewsContext()
const loaderData = useRouteLoaderData<typeof loader>('routes/_layout')
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const userData = loaderData?.userData
const fetcher = useFetcher()
+2 -2
View File
@@ -1,12 +1,12 @@
import { Link, useRouteLoaderData } from 'react-router'
import HeaderMenuMobile from '~/layouts/news/header-menu-mobile'
import type { loader } from '~/routes/_layout'
import type { loader } from '~/routes/_news'
import { HeaderSearch } from './header-search'
export const HeaderMenu = () => {
const loaderData = useRouteLoaderData<typeof loader>('routes/_layout')
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const menu = loaderData?.categoriesData
return (
+2 -2
View File
@@ -3,11 +3,11 @@ import { Link, useFetcher, useRouteLoaderData } from 'react-router'
import { Button } from '~/components/ui/button'
import { APP } from '~/configs/meta'
import { useNewsContext } from '~/contexts/news'
import type { loader } from '~/routes/_layout'
import type { loader } from '~/routes/_news'
export const HeaderTop = () => {
const { setIsLoginOpen } = useNewsContext()
const loaderData = useRouteLoaderData<typeof loader>('routes/_layout')
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const userData = loaderData?.userData
const fetcher = useFetcher()