Allow pressing 1-4 to select a tab.
This commit is contained in:
parent
26f4a6120b
commit
b2820bbb47
22
src/App.tsx
22
src/App.tsx
|
|
@ -31,12 +31,24 @@ function App() {
|
||||||
useGameTick()
|
useGameTick()
|
||||||
useSaveSystem()
|
useSaveSystem()
|
||||||
const [isGodModalOpen, setIsGodModalOpen] = useState(false)
|
const [isGodModalOpen, setIsGodModalOpen] = useState(false)
|
||||||
|
const [activeTab, setActiveTab] = useState('fields')
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleKeyPress = (event: KeyboardEvent) => {
|
const handleKeyPress = (event: KeyboardEvent) => {
|
||||||
if (event.key.toLowerCase() === 'g') {
|
if (event.key.toLowerCase() === 'g') {
|
||||||
setIsGodModalOpen(prev => !prev)
|
setIsGodModalOpen(prev => !prev)
|
||||||
}
|
}
|
||||||
|
// Handle number keys 1-4 for tab selection
|
||||||
|
const tabMap: { [key: string]: string } = {
|
||||||
|
'1': 'fields',
|
||||||
|
'2': 'warehouse',
|
||||||
|
'3': 'market',
|
||||||
|
'4': 'temple'
|
||||||
|
}
|
||||||
|
const tabValue = tabMap[event.key]
|
||||||
|
if (tabValue) {
|
||||||
|
setActiveTab(tabValue)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener('keydown', handleKeyPress)
|
window.addEventListener('keydown', handleKeyPress)
|
||||||
|
|
@ -47,12 +59,12 @@ function App() {
|
||||||
<div>
|
<div>
|
||||||
<ActionCooldown />
|
<ActionCooldown />
|
||||||
<div style={appContainerStyle}>
|
<div style={appContainerStyle}>
|
||||||
<Tabs defaultValue="fields">
|
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
||||||
<TabsList style={tabsListStyles}>
|
<TabsList style={tabsListStyles}>
|
||||||
<TabsTrigger value="fields">Fields</TabsTrigger>
|
<TabsTrigger value="fields">Fields (1)</TabsTrigger>
|
||||||
<TabsTrigger value="warehouse">Warehouse</TabsTrigger>
|
<TabsTrigger value="warehouse">Warehouse (2)</TabsTrigger>
|
||||||
<TabsTrigger value="market">Market</TabsTrigger>
|
<TabsTrigger value="market">Market (3)</TabsTrigger>
|
||||||
<TabsTrigger value="temple">Temple</TabsTrigger>
|
<TabsTrigger value="temple">Temple (4)</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
<TabsContent value="fields">
|
<TabsContent value="fields">
|
||||||
<Field />
|
<Field />
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { useState } from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
export interface TabProps {
|
export interface TabProps {
|
||||||
value: string
|
value: string
|
||||||
|
|
@ -6,7 +6,8 @@ export interface TabProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TabsProps {
|
export interface TabsProps {
|
||||||
defaultValue: string
|
value: string
|
||||||
|
onValueChange: (value: string) => void
|
||||||
children: React.ReactNode
|
children: React.ReactNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,11 +77,9 @@ const TabsContext = React.createContext<{
|
||||||
setValue: () => {},
|
setValue: () => {},
|
||||||
})
|
})
|
||||||
|
|
||||||
export const Tabs: React.FC<TabsProps> = ({ defaultValue, children }) => {
|
export const Tabs: React.FC<TabsProps> = ({ value, onValueChange, children }) => {
|
||||||
const [value, setValue] = useState(defaultValue)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TabsContext.Provider value={{ value, setValue }}>
|
<TabsContext.Provider value={{ value, setValue: onValueChange }}>
|
||||||
<div style={tabsContainerStyle}>{children}</div>
|
<div style={tabsContainerStyle}>{children}</div>
|
||||||
</TabsContext.Provider>
|
</TabsContext.Provider>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue