This commit is contained in:
Iliyan Angelov
2025-11-21 09:43:54 +02:00
parent 4488e3a795
commit b56f1a6769
14 changed files with 462 additions and 225 deletions

View File

@@ -18,7 +18,9 @@ import {
Mail,
Building2,
Upload,
Image as ImageIcon
Image as ImageIcon,
MessageCircle,
Clock
} from 'lucide-react';
import { toast } from 'react-toastify';
import adminPrivacyService, {
@@ -107,6 +109,8 @@ const SettingsPage: React.FC = () => {
company_email: '',
company_address: '',
tax_rate: 0,
chat_working_hours_start: 9,
chat_working_hours_end: 17,
});
const [logoPreview, setLogoPreview] = useState<string | null>(null);
const [faviconPreview, setFaviconPreview] = useState<string | null>(null);
@@ -234,6 +238,8 @@ const SettingsPage: React.FC = () => {
company_email: companyRes.data.company_email || '',
company_address: companyRes.data.company_address || '',
tax_rate: companyRes.data.tax_rate || 0,
chat_working_hours_start: companyRes.data.chat_working_hours_start || 9,
chat_working_hours_end: companyRes.data.chat_working_hours_end || 17,
});
@@ -2220,6 +2226,57 @@ const SettingsPage: React.FC = () => {
Default tax rate percentage to be applied to all invoices (e.g., 10 for 10%). This will be used for all bookings unless overridden.
</p>
</div>
{}
<div className="border-t border-gray-200 pt-6">
<h3 className="text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2">
<MessageCircle className="w-5 h-5 text-amber-600" />
Chat Working Hours
</h3>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="space-y-4">
<label className="flex items-center gap-2 text-sm font-bold text-gray-900 tracking-wide">
<Clock className="w-4 h-4 text-gray-600" />
Start Hour (24-hour format)
</label>
<input
type="number"
min="0"
max="23"
value={companyFormData.chat_working_hours_start || 9}
onChange={(e) =>
setCompanyFormData({ ...companyFormData, chat_working_hours_start: parseInt(e.target.value) || 9 })
}
placeholder="9"
className="w-full px-4 py-3.5 bg-white border border-gray-300 rounded-xl shadow-sm focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 transition-all duration-200 text-sm"
/>
<p className="text-xs text-gray-500">
Hour when chat support becomes available (0-23, e.g., 9 for 9 AM)
</p>
</div>
<div className="space-y-4">
<label className="flex items-center gap-2 text-sm font-bold text-gray-900 tracking-wide">
<Clock className="w-4 h-4 text-gray-600" />
End Hour (24-hour format)
</label>
<input
type="number"
min="0"
max="23"
value={companyFormData.chat_working_hours_end || 17}
onChange={(e) =>
setCompanyFormData({ ...companyFormData, chat_working_hours_end: parseInt(e.target.value) || 17 })
}
placeholder="17"
className="w-full px-4 py-3.5 bg-white border border-gray-300 rounded-xl shadow-sm focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 transition-all duration-200 text-sm"
/>
<p className="text-xs text-gray-500">
Hour when chat support ends (0-23, e.g., 17 for 5 PM)
</p>
</div>
</div>
</div>
</div>
</div>