SubDomain için ayrı Layout

This commit is contained in:
Sedat ÖZTÜRK 2025-08-11 16:14:33 +03:00
parent 64ccc150df
commit 900c0c82fa
3 changed files with 27 additions and 19 deletions

View file

@ -14,6 +14,7 @@ import useDirection from '@/utils/hooks/useDirection'
import useLocale from '@/utils/hooks/useLocale'
import { useDynamicRoutes } from '@/routes/dynamicRoutesContext'
import { useLocation } from 'react-router-dom'
import { hasSubdomain } from '@/utils/subdomain'
export type LayoutType =
| typeof LAYOUT_TYPE_CLASSIC
@ -61,7 +62,7 @@ const Layout = () => {
}, [routes, currentPath])
const AppLayout = useMemo(() => {
if (authenticated && route?.routeType === 'protected') {
if ((authenticated && route?.routeType === 'protected') || hasSubdomain()) {
return layouts[layoutType]
}

24
ui/src/utils/subdomain.ts Normal file
View file

@ -0,0 +1,24 @@
const defaultSubDomain = 'KURS'
export const getSubdomain = (): string | null => {
if (typeof window === 'undefined') return null
const hostname = window.location.hostname
const parts = hostname.split('.')
// localhost veya normal domain ise subdomain yok
if (hostname === 'localhost' || parts.length < 3) {
return null
}
// Default subdomain ise null döndür
if (parts[0].toUpperCase() === defaultSubDomain) {
return null
}
return parts[0].toUpperCase()
}
export const hasSubdomain = (): boolean => {
return getSubdomain() !== null
}

View file

@ -20,6 +20,7 @@ import { motion } from 'framer-motion'
import { useEffect, useRef, useState } from 'react'
import { useNavigate } from 'react-router-dom'
import * as Yup from 'yup'
import { getSubdomain } from '@/utils/subdomain'
type SignInFormSchema = {
userName: string
@ -67,24 +68,6 @@ const Login = () => {
const defaultSubDomain = 'KURS'
const getSubdomain = () => {
if (typeof window === 'undefined') return null
const hostname = window.location.hostname
const parts = hostname.split('.')
if (hostname === 'localhost' || parts.length < 3) {
return null
}
if (parts[0].toUpperCase() === defaultSubDomain) {
return null
}
return parts[0].toUpperCase()
}
const onSignIn = async (
values: SignInFormSchema,
{ setSubmitting, isSubmitting, setFieldValue, setFieldTouched }: any,