SubDomain için ayrı Layout
This commit is contained in:
parent
64ccc150df
commit
daadb0b50d
3 changed files with 30 additions and 18 deletions
|
|
@ -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,6 +62,10 @@ const Layout = () => {
|
|||
}, [routes, currentPath])
|
||||
|
||||
const AppLayout = useMemo(() => {
|
||||
if (hasSubdomain()) {
|
||||
return layouts[layoutType]
|
||||
}
|
||||
|
||||
if (authenticated && route?.routeType === 'protected') {
|
||||
return layouts[layoutType]
|
||||
}
|
||||
|
|
|
|||
24
ui/src/utils/subdomain.ts
Normal file
24
ui/src/utils/subdomain.ts
Normal 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
|
||||
}
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue