Add epic games section #93

This commit is contained in:
Tickbase
2026-04-30 20:59:58 +02:00
parent 62a1dca0aa
commit cf7fe20aa6

View File

@@ -1,4 +1,5 @@
import { Icon, layers, linux, proton, settings } from '@/components/icons' import { Icon, layers, linux, proton, settings } from '@/components/icons'
import { epic } from '@/components/icons'
import { Button } from '@/components/buttons' import { Button } from '@/components/buttons'
interface SidebarProps { interface SidebarProps {
@@ -7,7 +8,6 @@ interface SidebarProps {
onSettingsClick: () => void onSettingsClick: () => void
} }
// Define a type for filter items that makes variant optional
type FilterItem = { type FilterItem = {
id: string id: string
label: string label: string
@@ -15,26 +15,18 @@ type FilterItem = {
variant?: string variant?: string
} }
/**
* Application sidebar component
* Contains filters for game types
*/
const Sidebar = ({ setFilter, currentFilter, onSettingsClick }: SidebarProps) => { const Sidebar = ({ setFilter, currentFilter, onSettingsClick }: SidebarProps) => {
// Available filter options with icons const steamFilters: FilterItem[] = [
const filters: FilterItem[] = [
{ id: 'all', label: 'All Games', icon: layers, variant: 'solid' }, { id: 'all', label: 'All Games', icon: layers, variant: 'solid' },
{ id: 'native', label: 'Native', icon: linux, variant: 'brand' }, { id: 'native', label: 'Native', icon: linux, variant: 'brand' },
{ id: 'proton', label: 'Proton Required', icon: proton, variant: 'brand' }, { id: 'proton', label: 'Proton', icon: proton, variant: 'brand' },
] ]
return ( const epicFilters: FilterItem[] = [
<div className="sidebar"> { id: 'epic', label: 'All Games', icon: epic, variant: 'brand' },
<div className="sidebar-header"> ]
<h2>Library</h2>
</div>
<ul className="filter-list"> const renderFilter = (filter: FilterItem) => (
{filters.map((filter) => (
<li <li
key={filter.id} key={filter.id}
className={currentFilter === filter.id ? 'active' : ''} className={currentFilter === filter.id ? 'active' : ''}
@@ -45,8 +37,27 @@ const Sidebar = ({ setFilter, currentFilter, onSettingsClick }: SidebarProps) =>
<span>{filter.label}</span> <span>{filter.label}</span>
</div> </div>
</li> </li>
))} )
return (
<div className="sidebar">
<div className="sidebar-header">
<h2>Library</h2>
</div>
<div className="sidebar-section">
<span className="sidebar-section-label">Steam</span>
<ul className="filter-list">
{steamFilters.map(renderFilter)}
</ul> </ul>
</div>
<div className="sidebar-section">
<span className="sidebar-section-label">Epic Games</span>
<ul className="filter-list">
{epicFilters.map(renderFilter)}
</ul>
</div>
<Button <Button
variant="secondary" variant="secondary"
@@ -58,7 +69,6 @@ const Sidebar = ({ setFilter, currentFilter, onSettingsClick }: SidebarProps) =>
> >
Settings Settings
</Button> </Button>
</div> </div>
) )
} }