Skip to content

Commit 8350025

Browse files
JoeMattclaude
andcommitted
refactor: data-driven FAQ in support page
Replace 7 identical FAQ item blocks with a single .map() over a data array. Uses divide-y divide-gray-700 + first:pt-0 last:pb-0 for clean separators. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent e212ed8 commit 8350025

1 file changed

Lines changed: 16 additions & 78 deletions

File tree

src/app/support/page.tsx

Lines changed: 16 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { Metadata } from 'next';
2+
import React from 'react';
23
import SocialButton, { BmcIcon, PatreonIcon } from '@/components/SocialButton';
34

45
export const metadata: Metadata = {
@@ -22,84 +23,21 @@ export default function Support() {
2223
Frequently Asked Questions
2324
</h2>
2425

25-
<div className="space-y-6">
26-
<div className="border-b border-gray-700 pb-4">
27-
<h3 className="text-lg font-semibold text-white mb-2">
28-
How do I install games on iFly?
29-
</h3>
30-
<p className="text-gray-400">
31-
You&apos;ll need to provide your own Dreamcast game files (such as CHD, CDI, or GDI).
32-
These can be imported through iTunes file sharing, cloud storage, or other file management apps.
33-
Make sure you own the original games before using ROM files.
34-
</p>
35-
</div>
36-
37-
<div className="border-b border-gray-700 pb-4">
38-
<h3 className="text-lg font-semibold text-white mb-2">
39-
How do I install iFly (sideload)?
40-
</h3>
41-
<p className="text-gray-400">
42-
iFly is distributed via sideloading for iOS and tvOS. <br /> We recommend using{' '}
43-
<a href="https://sideloadly.io" target="_blank" rel="noopener noreferrer" className="text-orange-400 hover:underline">Sideloadly</a>{' '}
44-
to install the app on your device. For enabling JIT on Apple TV, ask in our{' '}
45-
<a href="https://discord.com/invite/4TK7PU5" target="_blank" rel="noopener noreferrer" className="text-orange-400 hover:underline">Discord</a>{' '}
46-
for current JIT enabler recommendations.
47-
</p>
48-
</div>
49-
50-
<div className="border-b border-gray-700 pb-4">
51-
<h3 className="text-lg font-semibold text-white mb-2">
52-
Which controllers are supported?
53-
</h3>
54-
<p className="text-gray-400">
55-
iFly supports MFi (Made for iPhone) controllers, PlayStation DualShock 4,
56-
PlayStation DualSense, Xbox Wireless Controllers, and the Siri Remote on Apple TV.
57-
Touch controls are also available on iPhone and iPad.
58-
</p>
59-
</div>
60-
61-
<div className="border-b border-gray-700 pb-4">
62-
<h3 className="text-lg font-semibold text-white mb-2">
63-
What devices are compatible?
64-
</h3>
65-
<p className="text-gray-400">
66-
iFly requires iOS 15.6 or later for iPhone and iPad, and tvOS 16.6 or later for Apple TV.
67-
For optimal performance, we recommend newer devices.
68-
</p>
69-
</div>
70-
71-
<div className="border-b border-gray-700 pb-4">
72-
<h3 className="text-lg font-semibold text-white mb-2">
73-
Can I save my game progress?
74-
</h3>
75-
<p className="text-gray-400">
76-
Yes! iFly supports both in-game saves (like the original consoles) and save states,
77-
which allow you to save and load your progress at any point during gameplay.
78-
All saves are stored locally on your device.
79-
</p>
80-
</div>
81-
82-
<div className="border-b border-gray-700 pb-4">
83-
<h3 className="text-lg font-semibold text-white mb-2">
84-
Why are some games not working properly?
85-
</h3>
86-
<p className="text-gray-400">
87-
While iFly aims for high compatibility, some games may have issues due to their complexity
88-
or specific hardware requirements. We&apos;re constantly working to improve compatibility
89-
through regular updates.
90-
</p>
91-
</div>
92-
93-
<div className="pb-4">
94-
<h3 className="text-lg font-semibold text-white mb-2">
95-
How can I improve performance?
96-
</h3>
97-
<p className="text-gray-400">
98-
For better performance, try reducing the internal resolution, disabling enhanced features
99-
like anti-aliasing, closing other apps, and ensuring your device isn&apos;t overheating.
100-
Performance varies based on the game and your device&apos;s capabilities.
101-
</p>
102-
</div>
26+
<div className="divide-y divide-gray-700">
27+
{([
28+
['How do I install games on iFly?', <>You&apos;ll need to provide your own Dreamcast game files (such as CHD, CDI, or GDI). These can be imported through iTunes file sharing, cloud storage, or other file management apps. Make sure you own the original games before using ROM files.</>],
29+
['How do I install iFly (sideload)?', <>iFly is distributed via sideloading for iOS and tvOS. We recommend using <a href="https://sideloadly.io" target="_blank" rel="noopener noreferrer" className="text-orange-400 hover:underline">Sideloadly</a> to install the app on your device. For enabling JIT on Apple TV, ask in our <a href="https://discord.com/invite/4TK7PU5" target="_blank" rel="noopener noreferrer" className="text-orange-400 hover:underline">Discord</a> for current JIT enabler recommendations.</>],
30+
['Which controllers are supported?', <>iFly supports MFi (Made for iPhone) controllers, PlayStation DualShock 4, PlayStation DualSense, Xbox Wireless Controllers, and the Siri Remote on Apple TV. Touch controls are also available on iPhone and iPad.</>],
31+
['What devices are compatible?', <>iFly requires iOS 15.6 or later for iPhone and iPad, and tvOS 16.6 or later for Apple TV. For optimal performance, we recommend newer devices.</>],
32+
['Can I save my game progress?', <>Yes! iFly supports both in-game saves (like the original consoles) and save states, which allow you to save and load your progress at any point during gameplay. All saves are stored locally on your device.</>],
33+
['Why are some games not working properly?', <>While iFly aims for high compatibility, some games may have issues due to their complexity or specific hardware requirements. We&apos;re constantly working to improve compatibility through regular updates.</>],
34+
['How can I improve performance?', <>For better performance, try reducing the internal resolution, disabling enhanced features like anti-aliasing, closing other apps, and ensuring your device isn&apos;t overheating. Performance varies based on the game and your device&apos;s capabilities.</>],
35+
] as [string, React.ReactNode][]).map(([q, a]) => (
36+
<div key={q} className="py-4 first:pt-0 last:pb-0">
37+
<h3 className="text-lg font-semibold text-white mb-2">{q}</h3>
38+
<p className="text-gray-400">{a}</p>
39+
</div>
40+
))}
10341
</div>
10442
</div>
10543

0 commit comments

Comments
 (0)