Skip to content

Commit 1b56bca

Browse files
committed
feat(add): new disclaimer tab
1 parent 75ce7e7 commit 1b56bca

1 file changed

Lines changed: 82 additions & 6 deletions

File tree

src/components/layouts/LinkHubContent.tsx

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import {
2323
Users,
2424
Wrench,
2525
ExternalLink,
26+
Shield,
27+
AlertTriangle,
2628
} from "lucide-react";
2729
import { FixFXIcon } from "@/components/icons/FixFXIcon";
2830
import { BackgroundEffects } from "@/components/ui/BackgroundEffects";
@@ -237,6 +239,7 @@ export default function LinkHubContent({ profile }: LinkHubContentProps) {
237239
const tabs = [
238240
{ id: null, label: "Featured" },
239241
...profile.categories.map((cat) => ({ id: cat.id, label: cat.name })),
242+
{ id: "disclaimer", label: "Disclaimer" },
240243
];
241244

242245
return (
@@ -296,12 +299,16 @@ export default function LinkHubContent({ profile }: LinkHubContentProps) {
296299
))}
297300
</div>
298301

299-
{/* Links */}
300-
<div id="links-section" className="flex flex-col gap-3">
301-
{visibleLinks.map((link, index) => (
302-
<LinkCard key={link.id} link={link} index={index} categoryId={activeCategory} />
303-
))}
304-
</div>
302+
{/* Links / Disclaimer */}
303+
{activeCategory === "disclaimer" ? (
304+
<DisclaimerContent />
305+
) : (
306+
<>
307+
<div id="links-section" className="flex flex-col gap-3">
308+
{visibleLinks.map((link, index) => (
309+
<LinkCard key={link.id} link={link} index={index} categoryId={activeCategory} />
310+
))}
311+
</div>
305312

306313
{/* Pagination */}
307314
{totalPages > 1 && (
@@ -356,6 +363,9 @@ export default function LinkHubContent({ profile }: LinkHubContentProps) {
356363
</div>
357364
)}
358365

366+
</>
367+
)}
368+
359369
{/* Branding */}
360370
<div className="mt-8 text-center space-y-2">
361371
<p className="text-[10px] text-gray-600/60 font-medium">
@@ -370,6 +380,72 @@ export default function LinkHubContent({ profile }: LinkHubContentProps) {
370380
);
371381
}
372382

383+
function DisclaimerContent() {
384+
return (
385+
<div id="links-section" className="flex flex-col gap-4 animate-fade-in">
386+
{/* Header */}
387+
<div className="flex items-center gap-3 mb-2">
388+
<div className="size-10 rounded-xl flex items-center justify-center bg-amber-500/15 text-amber-400 border border-amber-500/20">
389+
<Shield className="size-5" />
390+
</div>
391+
<div>
392+
<h2 className="text-lg font-semibold text-gray-100">Disclaimer</h2>
393+
<p className="text-xs text-gray-500">Legal notices & attribution</p>
394+
</div>
395+
</div>
396+
397+
{/* Affiliation */}
398+
<div className="rounded-xl bg-white/3 border border-white/6 p-4 space-y-2">
399+
<div className="flex items-center gap-2 mb-1">
400+
<AlertTriangle className="size-4 text-amber-400 shrink-0" />
401+
<h3 className="text-sm font-medium text-gray-200">No Affiliation</h3>
402+
</div>
403+
<p className="text-xs text-gray-400 leading-relaxed">
404+
FixFX is an <span className="text-gray-300 font-medium">independent, community-driven project</span> and is not affiliated with, endorsed by, or officially connected to Cfx.re, Rockstar Games, Take-Two Interactive, or any of their subsidiaries or affiliates.
405+
</p>
406+
</div>
407+
408+
{/* Trademarks & Logos */}
409+
<div className="rounded-xl bg-white/3 border border-white/6 p-4 space-y-2">
410+
<h3 className="text-sm font-medium text-gray-200">Trademarks & Logos</h3>
411+
<p className="text-xs text-gray-400 leading-relaxed">
412+
All logos, trademarks, brand names, and visual assets displayed on this site are the property of their respective owners. This includes but is not limited to FiveM, RedM, Cfx.re, txAdmin, vMenu, ESX, QBCore, Qbox, VORP, and any other third-party projects referenced.
413+
</p>
414+
<p className="text-xs text-gray-400 leading-relaxed">
415+
Their use here is purely for <span className="text-gray-300 font-medium">identification and informational purposes</span> and does not imply any ownership, sponsorship, or endorsement.
416+
</p>
417+
</div>
418+
419+
{/* Content */}
420+
<div className="rounded-xl bg-white/3 border border-white/6 p-4 space-y-2">
421+
<h3 className="text-sm font-medium text-gray-200">Content & Accuracy</h3>
422+
<p className="text-xs text-gray-400 leading-relaxed">
423+
While we strive to provide accurate and up-to-date information, FixFX makes no guarantees regarding the completeness or accuracy of the content provided. Documentation, guides, and resources are maintained by community contributors and may not reflect the latest official changes.
424+
</p>
425+
</div>
426+
427+
{/* Links */}
428+
<div className="rounded-xl bg-white/3 border border-white/6 p-4 space-y-2">
429+
<h3 className="text-sm font-medium text-gray-200">External Links</h3>
430+
<p className="text-xs text-gray-400 leading-relaxed">
431+
This site contains links to external websites and resources that are not operated by FixFX. We have no control over the content or availability of these sites and accept no responsibility for them.
432+
</p>
433+
</div>
434+
435+
{/* Contact */}
436+
<div className="rounded-xl bg-white/3 border border-white/6 p-4 space-y-2">
437+
<h3 className="text-sm font-medium text-gray-200">Contact</h3>
438+
<p className="text-xs text-gray-400 leading-relaxed">
439+
If you believe any content on this site infringes on your intellectual property or if you have any concerns, please reach out via our{" "}
440+
<a href="https://discord.gg/cYauqJfnNK" target="_blank" rel="noopener noreferrer" className="text-blue-400 hover:text-blue-300 underline underline-offset-2">Discord server</a>{" "}
441+
or open an issue on{" "}
442+
<a href="https://github.com/CodeMeAPixel/FixFX" target="_blank" rel="noopener noreferrer" className="text-blue-400 hover:text-blue-300 underline underline-offset-2">GitHub</a>.
443+
</p>
444+
</div>
445+
</div>
446+
);
447+
}
448+
373449
function SocialButton({ social }: { social: SocialLink }) {
374450
const mapped = bgColorMap[social.color || ""] || "bg-white/5 text-gray-300";
375451

0 commit comments

Comments
 (0)