build: production build with Phase 1 2025 Bible Reader implementation complete
Includes all Phase 1 features: - Search-first navigation with auto-complete - Responsive reading interface (desktop/tablet/mobile) - 4 customization presets + full fine-tuning controls - Layered details panel with notes, bookmarks, highlights - Smart offline caching with IndexedDB and auto-sync - Full accessibility (WCAG 2.1 AA) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
141
payload/globals/SiteSettings.ts
Normal file
141
payload/globals/SiteSettings.ts
Normal file
@@ -0,0 +1,141 @@
|
||||
import { GlobalConfig } from 'payload';
|
||||
|
||||
export const SiteSettings: GlobalConfig = {
|
||||
slug: 'site-settings',
|
||||
admin: {
|
||||
group: 'Configuration',
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'siteName',
|
||||
type: 'text',
|
||||
required: true,
|
||||
defaultValue: 'Biblical Guide',
|
||||
},
|
||||
{
|
||||
name: 'siteDescription',
|
||||
type: 'textarea',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'siteUrl',
|
||||
type: 'text',
|
||||
required: true,
|
||||
defaultValue: 'https://biblical-guide.com',
|
||||
},
|
||||
{
|
||||
name: 'contactEmail',
|
||||
type: 'email',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'paymentSettings',
|
||||
type: 'group',
|
||||
fields: [
|
||||
{
|
||||
name: 'stripePublishableKey',
|
||||
type: 'text',
|
||||
required: true,
|
||||
admin: {
|
||||
description: 'Public Stripe key for frontend',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'enableDonations',
|
||||
type: 'checkbox',
|
||||
defaultValue: true,
|
||||
},
|
||||
{
|
||||
name: 'minimumDonation',
|
||||
type: 'number',
|
||||
defaultValue: 1,
|
||||
min: 0,
|
||||
admin: {
|
||||
description: 'Minimum donation amount in dollars',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'emailSettings',
|
||||
type: 'group',
|
||||
fields: [
|
||||
{
|
||||
name: 'fromEmail',
|
||||
type: 'email',
|
||||
required: true,
|
||||
admin: {
|
||||
description: 'Email address for transactional emails',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'fromName',
|
||||
type: 'text',
|
||||
defaultValue: 'Biblical Guide',
|
||||
},
|
||||
{
|
||||
name: 'adminEmail',
|
||||
type: 'email',
|
||||
required: true,
|
||||
admin: {
|
||||
description: 'Admin notification email',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'socialMedia',
|
||||
type: 'group',
|
||||
fields: [
|
||||
{
|
||||
name: 'facebook',
|
||||
type: 'text',
|
||||
admin: {
|
||||
description: 'Facebook URL',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'twitter',
|
||||
type: 'text',
|
||||
admin: {
|
||||
description: 'Twitter/X URL',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'instagram',
|
||||
type: 'text',
|
||||
admin: {
|
||||
description: 'Instagram URL',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'youtube',
|
||||
type: 'text',
|
||||
admin: {
|
||||
description: 'YouTube channel URL',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'maintenanceMode',
|
||||
type: 'checkbox',
|
||||
defaultValue: false,
|
||||
admin: {
|
||||
description: 'Enable to put the site in maintenance mode',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'maintenanceMessage',
|
||||
type: 'textarea',
|
||||
admin: {
|
||||
condition: (data) => data?.maintenanceMode === true,
|
||||
description: 'Message to display during maintenance',
|
||||
},
|
||||
},
|
||||
],
|
||||
access: {
|
||||
read: () => true,
|
||||
update: ({ req }) => req.user?.role === 'super-admin',
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user