diff --git a/src/components/DashboardComponents.jsx b/src/components/DashboardComponents.jsx index d991dc1..96cb940 100644 --- a/src/components/DashboardComponents.jsx +++ b/src/components/DashboardComponents.jsx @@ -682,6 +682,7 @@ export const DomainManager = ({ userId, username, servers, sendMessage, showAler const [customDomains, setCustomDomains] = useState([]); const [isLoading, setIsLoading] = useState(true); const [newDomainName, setNewDomainName] = useState(''); + const [useUsernameDomain, setUseUsernameDomain] = useState(false); const [selectedServerForLink, setSelectedServerForLink] = useState(''); const [showCreateModal, setShowCreateModal] = useState(false); const [showLinkModal, setShowLinkModal] = useState(false); @@ -765,6 +766,7 @@ export const DomainManager = ({ userId, username, servers, sendMessage, showAler setSuccessMessage(data.message || 'Domain created successfully!'); setShowCreateModal(false); setNewDomainName(''); + setUseUsernameDomain(false); setActionInProgress(false); loadDomains(); break; @@ -837,19 +839,19 @@ export const DomainManager = ({ userId, username, servers, sendMessage, showAler }, [loadDomains, loadCustomDomains]); const createDomain = () => { - if (!newDomainName.trim()) { + if (!useUsernameDomain && !newDomainName.trim()) { setErrorMessage('Please enter a domain name'); return; } // Validate domain name format const domainRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/; - if (!domainRegex.test(newDomainName)) { + if (!useUsernameDomain && !domainRegex.test(newDomainName)) { setErrorMessage('Domain name can only contain letters, numbers, and hyphens. Cannot start or end with hyphen.'); return; } - if (newDomainName.length > 63) { + if (!useUsernameDomain && newDomainName.length > 63) { setErrorMessage('Domain name must be 63 characters or less'); return; } @@ -860,7 +862,8 @@ export const DomainManager = ({ userId, username, servers, sendMessage, showAler sendMessage({ type: 'create_domain', - subdomain: newDomainName.trim().toLowerCase(), + subdomain: useUsernameDomain ? '' : newDomainName.trim().toLowerCase(), + useUsernameDomain, serverId: selectedServerForLink || null }); }; @@ -1124,9 +1127,21 @@ export const DomainManager = ({ userId, username, servers, sendMessage, showAler