- Add CreatePlugin.tsx page for custom plugin creation with code editor - Add HelpButton component for contextual help links - Create 21 new help pages covering all dashboard features: - Core: Dashboard, Scheduler, Tasks - Manage: Customers, Services, Resources, Staff - Communicate: Messages (Ticketing already existed) - Money: Payments - Extend: Plugins overview and creation guide - Settings: General, Resource Types, Booking, Appearance, Email, Domains, API, Auth, Billing, Quota - Update HelpGuide.tsx as main documentation hub with quick start guide - Add routes for all help pages in App.tsx - Add HelpButton to Dashboard, Customers, Services, and Tasks pages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
168 lines
8.8 KiB
TypeScript
168 lines
8.8 KiB
TypeScript
/**
|
|
* Help Settings Custom Domains Page
|
|
*/
|
|
|
|
import React from 'react';
|
|
import { useNavigate, Link } from 'react-router-dom';
|
|
import {
|
|
ArrowLeft, Globe, Shield, Link as LinkIcon, CheckCircle,
|
|
ChevronRight, HelpCircle, Settings, AlertCircle,
|
|
} from 'lucide-react';
|
|
|
|
const HelpSettingsDomains: React.FC = () => {
|
|
const navigate = useNavigate();
|
|
|
|
return (
|
|
<div className="max-w-4xl mx-auto py-8 px-4">
|
|
<button onClick={() => navigate(-1)} className="flex items-center gap-2 text-brand-600 hover:text-brand-700 dark:text-brand-400 mb-6">
|
|
<ArrowLeft size={20} /> Back
|
|
</button>
|
|
|
|
<div className="mb-8">
|
|
<div className="flex items-center gap-3 mb-4">
|
|
<div className="w-12 h-12 rounded-xl bg-brand-100 dark:bg-brand-900/30 flex items-center justify-center">
|
|
<Globe size={24} className="text-brand-600 dark:text-brand-400" />
|
|
</div>
|
|
<div>
|
|
<h1 className="text-3xl font-bold text-gray-900 dark:text-white">Custom Domains Guide</h1>
|
|
<p className="text-gray-500 dark:text-gray-400">Use your own domain for booking</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<section className="mb-10">
|
|
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
|
|
<Globe size={20} className="text-brand-500" /> Overview
|
|
</h2>
|
|
<div className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6">
|
|
<p className="text-gray-600 dark:text-gray-300 mb-4">
|
|
Custom Domains let you use your own domain name (like booking.yourcompany.com) instead of the default subdomain. This creates a more professional, branded experience for your customers.
|
|
</p>
|
|
<p className="text-gray-600 dark:text-gray-300">
|
|
Custom domains are available on Pro and Business plans.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="mb-10">
|
|
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
|
|
<Settings size={20} className="text-brand-500" /> Setup Process
|
|
</h2>
|
|
<div className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6">
|
|
<ol className="space-y-4">
|
|
<li className="flex items-start gap-3">
|
|
<span className="flex-shrink-0 w-6 h-6 rounded-full bg-brand-600 text-white text-sm flex items-center justify-center">1</span>
|
|
<div>
|
|
<h4 className="font-medium text-gray-900 dark:text-white">Add Domain</h4>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400">Enter your custom domain in the settings</p>
|
|
</div>
|
|
</li>
|
|
<li className="flex items-start gap-3">
|
|
<span className="flex-shrink-0 w-6 h-6 rounded-full bg-brand-600 text-white text-sm flex items-center justify-center">2</span>
|
|
<div>
|
|
<h4 className="font-medium text-gray-900 dark:text-white">Configure DNS</h4>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400">Add CNAME record pointing to our servers</p>
|
|
</div>
|
|
</li>
|
|
<li className="flex items-start gap-3">
|
|
<span className="flex-shrink-0 w-6 h-6 rounded-full bg-brand-600 text-white text-sm flex items-center justify-center">3</span>
|
|
<div>
|
|
<h4 className="font-medium text-gray-900 dark:text-white">Verify</h4>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400">Click verify to confirm DNS is configured</p>
|
|
</div>
|
|
</li>
|
|
<li className="flex items-start gap-3">
|
|
<span className="flex-shrink-0 w-6 h-6 rounded-full bg-brand-600 text-white text-sm flex items-center justify-center">4</span>
|
|
<div>
|
|
<h4 className="font-medium text-gray-900 dark:text-white">SSL Certificate</h4>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400">We automatically provision an SSL certificate</p>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="mb-10">
|
|
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
|
|
<AlertCircle size={20} className="text-brand-500" /> DNS Configuration
|
|
</h2>
|
|
<div className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6">
|
|
<p className="text-gray-600 dark:text-gray-300 mb-4">
|
|
Add this CNAME record to your DNS provider:
|
|
</p>
|
|
<div className="p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg font-mono text-sm">
|
|
<div className="grid grid-cols-3 gap-4">
|
|
<div>
|
|
<span className="text-gray-500">Type:</span>
|
|
<div className="text-gray-900 dark:text-white">CNAME</div>
|
|
</div>
|
|
<div>
|
|
<span className="text-gray-500">Name:</span>
|
|
<div className="text-gray-900 dark:text-white">booking</div>
|
|
</div>
|
|
<div>
|
|
<span className="text-gray-500">Value:</span>
|
|
<div className="text-gray-900 dark:text-white">cname.smoothschedule.com</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400 mt-4">
|
|
DNS changes can take up to 48 hours to propagate.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="mb-10">
|
|
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
|
|
<CheckCircle size={20} className="text-brand-500" /> Benefits
|
|
</h2>
|
|
<div className="bg-gradient-to-r from-brand-50 to-blue-50 dark:from-brand-900/20 dark:to-blue-900/20 rounded-xl border border-brand-200 dark:border-brand-800 p-6">
|
|
<ul className="space-y-3">
|
|
<li className="flex items-start gap-2">
|
|
<ChevronRight size={16} className="text-brand-500 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700 dark:text-gray-300"><strong>Professional:</strong> Use your own branded domain</span>
|
|
</li>
|
|
<li className="flex items-start gap-2">
|
|
<ChevronRight size={16} className="text-brand-500 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700 dark:text-gray-300"><strong>Trust:</strong> Customers see your domain, not ours</span>
|
|
</li>
|
|
<li className="flex items-start gap-2">
|
|
<ChevronRight size={16} className="text-brand-500 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700 dark:text-gray-300"><strong>SEO:</strong> Build search rankings on your domain</span>
|
|
</li>
|
|
<li className="flex items-start gap-2">
|
|
<ChevronRight size={16} className="text-brand-500 mt-1 flex-shrink-0" />
|
|
<span className="text-gray-700 dark:text-gray-300"><strong>SSL:</strong> Automatic HTTPS encryption included</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="mb-10">
|
|
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4">Related Settings</h2>
|
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
<Link to="/help/settings/general" className="flex items-center gap-3 p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 hover:border-brand-500 transition-colors">
|
|
<Settings size={20} className="text-brand-500" />
|
|
<span className="text-gray-900 dark:text-white">General Settings</span>
|
|
<ChevronRight size={16} className="text-gray-400 ml-auto" />
|
|
</Link>
|
|
<Link to="/help/settings/appearance" className="flex items-center gap-3 p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 hover:border-brand-500 transition-colors">
|
|
<LinkIcon size={20} className="text-brand-500" />
|
|
<span className="text-gray-900 dark:text-white">Appearance Settings</span>
|
|
<ChevronRight size={16} className="text-gray-400 ml-auto" />
|
|
</Link>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6 text-center">
|
|
<HelpCircle size={32} className="mx-auto text-brand-500 mb-3" />
|
|
<h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-2">Need More Help?</h3>
|
|
<p className="text-gray-600 dark:text-gray-300 mb-4">Our support team is ready to help with any questions.</p>
|
|
<button onClick={() => navigate('/tickets')} className="px-6 py-2 bg-brand-600 text-white rounded-lg hover:bg-brand-700 transition-colors">Contact Support</button>
|
|
</section>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default HelpSettingsDomains;
|