'use client'
import * as React from 'react'
import { isServer } from '@tanstack/router-core/isServer'
import { useRouter } from './useRouter'
import { useHydrated } from './ClientOnly'
import type { RouterManagedTag } from '@tanstack/router-core'
interface ScriptAttrs {
[key: string]: string | boolean | undefined
src?: string
suppressHydrationWarning?: boolean
}
export function Asset({
tag,
attrs,
children,
nonce,
}: RouterManagedTag & { nonce?: string }): React.ReactElement | null {
switch (tag) {
case 'title':
return (
{children}
)
case 'meta':
return
case 'link':
return (
)
case 'style':
return (
)
case 'script':
return
default:
return null
}
}
function Script({
attrs,
children,
}: {
attrs?: ScriptAttrs
children?: string
}) {
const router = useRouter()
const hydrated = useHydrated()
const dataScript =
typeof attrs?.type === 'string' &&
attrs.type !== '' &&
attrs.type !== 'text/javascript' &&
attrs.type !== 'module'
if (
process.env.NODE_ENV !== 'production' &&
attrs?.src &&
typeof children === 'string' &&
children.trim().length
) {
console.warn(
'[TanStack Router]