mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-28 03:29:25 +01:00
feat(UI): add Support the Project settings page
Adds a new settings page with Ko-fi donation link, Rogue Support banner, and community contribution options (GitHub, Discord). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b1edef27e8
commit
6a737ed83f
|
|
@ -39,6 +39,10 @@ export default class SettingsController {
|
||||||
return inertia.render('settings/legal');
|
return inertia.render('settings/legal');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async support({ inertia }: HttpContext) {
|
||||||
|
return inertia.render('settings/support');
|
||||||
|
}
|
||||||
|
|
||||||
async maps({ inertia }: HttpContext) {
|
async maps({ inertia }: HttpContext) {
|
||||||
const baseAssetsCheck = await this.mapService.ensureBaseAssets();
|
const baseAssetsCheck = await this.mapService.ensureBaseAssets();
|
||||||
const regionFiles = await this.mapService.listRegions();
|
const regionFiles = await this.mapService.listRegions();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import {
|
||||||
IconDashboard,
|
IconDashboard,
|
||||||
IconFolder,
|
IconFolder,
|
||||||
IconGavel,
|
IconGavel,
|
||||||
|
IconHeart,
|
||||||
IconMapRoute,
|
IconMapRoute,
|
||||||
IconSettings,
|
IconSettings,
|
||||||
IconTerminal2,
|
IconTerminal2,
|
||||||
|
|
@ -41,6 +42,7 @@ export default function SettingsLayout({ children }: { children: React.ReactNode
|
||||||
current: false,
|
current: false,
|
||||||
},
|
},
|
||||||
{ name: 'System', href: '/settings/system', icon: IconSettings, current: false },
|
{ name: 'System', href: '/settings/system', icon: IconSettings, current: false },
|
||||||
|
{ name: 'Support the Project', href: '/settings/support', icon: IconHeart, current: false },
|
||||||
{ name: 'Legal Notices', href: '/settings/legal', icon: IconGavel, current: false },
|
{ name: 'Legal Notices', href: '/settings/legal', icon: IconGavel, current: false },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
110
admin/inertia/pages/settings/support.tsx
Normal file
110
admin/inertia/pages/settings/support.tsx
Normal file
|
|
@ -0,0 +1,110 @@
|
||||||
|
import { Head } from '@inertiajs/react'
|
||||||
|
import { IconExternalLink } from '@tabler/icons-react'
|
||||||
|
import SettingsLayout from '~/layouts/SettingsLayout'
|
||||||
|
|
||||||
|
export default function SupportPage() {
|
||||||
|
return (
|
||||||
|
<SettingsLayout>
|
||||||
|
<Head title="Support the Project | Project N.O.M.A.D." />
|
||||||
|
<div className="xl:pl-72 w-full">
|
||||||
|
<main className="px-12 py-6 max-w-4xl">
|
||||||
|
<h1 className="text-4xl font-semibold mb-4">Support the Project</h1>
|
||||||
|
<p className="text-gray-600 mb-10 text-lg">
|
||||||
|
Project NOMAD is 100% free and open source — no subscriptions, no paywalls, no catch.
|
||||||
|
If you'd like to help keep the project going, here are a few ways to show your support.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{/* Ko-fi */}
|
||||||
|
<section className="mb-12">
|
||||||
|
<h2 className="text-2xl font-semibold mb-3">Buy Us a Coffee</h2>
|
||||||
|
<p className="text-gray-700 mb-4">
|
||||||
|
Every contribution helps fund development, server costs, and new content packs for NOMAD.
|
||||||
|
Even a small donation goes a long way.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://ko-fi.com/crosstalk"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="inline-flex items-center gap-2 px-5 py-2.5 bg-[#FF5E5B] hover:bg-[#e54e4b] text-white font-semibold rounded-lg transition-colors"
|
||||||
|
>
|
||||||
|
Support on Ko-fi
|
||||||
|
<IconExternalLink size={18} />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* Rogue Support */}
|
||||||
|
<section className="mb-12">
|
||||||
|
<h2 className="text-2xl font-semibold mb-3">Need Help With Your Home Network?</h2>
|
||||||
|
<a
|
||||||
|
href="https://roguesupport.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="block mb-4 rounded-lg overflow-hidden hover:opacity-90 transition-opacity"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="/rogue-support-banner.png"
|
||||||
|
alt="Rogue Support — Conquer Your Home Network"
|
||||||
|
className="w-full"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<p className="text-gray-700 mb-4">
|
||||||
|
Rogue Support is a networking consultation service for home users.
|
||||||
|
Think of it as Uber for computer networking — expert help when you need it.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://roguesupport.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="inline-flex items-center gap-2 text-blue-600 hover:underline font-medium"
|
||||||
|
>
|
||||||
|
Visit RogueSupport.com
|
||||||
|
<IconExternalLink size={16} />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* Other Ways to Help */}
|
||||||
|
<section className="mb-10">
|
||||||
|
<h2 className="text-2xl font-semibold mb-3">Other Ways to Help</h2>
|
||||||
|
<ul className="space-y-2 text-gray-700">
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://github.com/Crosstalk-Solutions/project-nomad"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-blue-600 hover:underline"
|
||||||
|
>
|
||||||
|
Star the project on GitHub
|
||||||
|
</a>
|
||||||
|
{' '}— it helps more people discover NOMAD
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://github.com/Crosstalk-Solutions/project-nomad/issues"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-blue-600 hover:underline"
|
||||||
|
>
|
||||||
|
Report bugs and suggest features
|
||||||
|
</a>
|
||||||
|
{' '}— every report makes NOMAD better
|
||||||
|
</li>
|
||||||
|
<li>Share NOMAD with someone who'd use it — word of mouth is the best marketing</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://discord.com/invite/crosstalksolutions"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-blue-600 hover:underline"
|
||||||
|
>
|
||||||
|
Join the Discord community
|
||||||
|
</a>
|
||||||
|
{' '}— hang out, share your build, help other users
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</SettingsLayout>
|
||||||
|
)
|
||||||
|
}
|
||||||
BIN
admin/public/rogue-support-banner.png
Normal file
BIN
admin/public/rogue-support-banner.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 251 KiB |
|
|
@ -54,6 +54,7 @@ router
|
||||||
router.get('/zim', [SettingsController, 'zim'])
|
router.get('/zim', [SettingsController, 'zim'])
|
||||||
router.get('/zim/remote-explorer', [SettingsController, 'zimRemote'])
|
router.get('/zim/remote-explorer', [SettingsController, 'zimRemote'])
|
||||||
router.get('/benchmark', [SettingsController, 'benchmark'])
|
router.get('/benchmark', [SettingsController, 'benchmark'])
|
||||||
|
router.get('/support', [SettingsController, 'support'])
|
||||||
})
|
})
|
||||||
.prefix('/settings')
|
.prefix('/settings')
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user