Make Discord update server types dynamic from server list
All checks were successful
Deploy GSM / deploy (push) Successful in 23s
All checks were successful
Deploy GSM / deploy (push) Successful in 23s
Server dropdown now shows actual servers from the API instead of hardcoded list. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,18 +1,7 @@
|
||||
import { useState } from 'react'
|
||||
import { useState, useMemo } from 'react'
|
||||
import { sendDiscordUpdate } from '../api'
|
||||
import { useUser } from '../context/UserContext'
|
||||
|
||||
const SERVER_TYPES = [
|
||||
{ value: 'general', label: 'Allgemein', icon: '📢', titleTemplate: '' },
|
||||
{ value: 'minecraft', label: 'Minecraft', icon: '⛏️', titleTemplate: 'Minecraft Server Update' },
|
||||
{ value: 'factorio', label: 'Factorio', icon: '⚙️', titleTemplate: 'Factorio Server Update' },
|
||||
{ value: 'terraria', label: 'Terraria', icon: '⚔️', titleTemplate: 'Terraria Server Update' },
|
||||
{ value: 'palworld', label: 'Palworld', icon: '🦎', titleTemplate: 'Palworld Server Update' },
|
||||
{ value: 'vrising', label: 'V Rising', icon: '🧛', titleTemplate: 'V Rising Server Update' },
|
||||
{ value: 'zomboid', label: 'Project Zomboid', icon: '🧟', titleTemplate: 'Project Zomboid Server Update' },
|
||||
{ value: 'hytale', label: 'Hytale', icon: '🏰', titleTemplate: 'Hytale Server Update' },
|
||||
]
|
||||
|
||||
const COLORS = [
|
||||
{ value: 0x5865F2, label: 'Blau', hex: '#5865F2' },
|
||||
{ value: 0x57F287, label: 'Grün', hex: '#57F287' },
|
||||
@@ -21,7 +10,7 @@ const COLORS = [
|
||||
{ value: 0x00BFFF, label: 'Cyan', hex: '#00BFFF' },
|
||||
]
|
||||
|
||||
export default function SendUpdateModal({ onClose }) {
|
||||
export default function SendUpdateModal({ onClose, servers = [] }) {
|
||||
const { token } = useUser()
|
||||
const [serverType, setServerType] = useState('general')
|
||||
const [title, setTitle] = useState('')
|
||||
@@ -31,10 +20,22 @@ export default function SendUpdateModal({ onClose }) {
|
||||
const [success, setSuccess] = useState(false)
|
||||
const [error, setError] = useState('')
|
||||
|
||||
const serverTypes = useMemo(() => {
|
||||
const types = [{ value: 'general', label: 'Allgemein', titleTemplate: '' }]
|
||||
servers.forEach(server => {
|
||||
types.push({
|
||||
value: server.type || server.id,
|
||||
label: server.name,
|
||||
titleTemplate: `${server.name} Update`
|
||||
})
|
||||
})
|
||||
return types
|
||||
}, [servers])
|
||||
|
||||
const handleServerTypeChange = (e) => {
|
||||
const newType = e.target.value
|
||||
setServerType(newType)
|
||||
const template = SERVER_TYPES.find(t => t.value === newType)?.titleTemplate || ''
|
||||
const template = serverTypes.find(t => t.value === newType)?.titleTemplate || ''
|
||||
setTitle(template)
|
||||
}
|
||||
|
||||
@@ -81,9 +82,9 @@ export default function SendUpdateModal({ onClose }) {
|
||||
onChange={handleServerTypeChange}
|
||||
className="w-full bg-neutral-800 border border-neutral-700 rounded-lg px-3 py-2 text-white focus:outline-none focus:border-purple-500"
|
||||
>
|
||||
{SERVER_TYPES.map(type => (
|
||||
{serverTypes.map(type => (
|
||||
<option key={type.value} value={type.value}>
|
||||
{type.icon} {type.label}
|
||||
{type.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
|
||||
@@ -322,7 +322,7 @@ export default function Dashboard({ onLogout }) {
|
||||
<LoginModal onClose={() => setShowLogin(false)} />
|
||||
)}
|
||||
{showSendUpdate && (
|
||||
<SendUpdateModal onClose={() => setShowSendUpdate(false)} />
|
||||
<SendUpdateModal onClose={() => setShowSendUpdate(false)} servers={servers} />
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
|
||||
1
tmpclaude-36cb-cwd
Normal file
1
tmpclaude-36cb-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-3f9a-cwd
Normal file
1
tmpclaude-3f9a-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-7fb3-cwd
Normal file
1
tmpclaude-7fb3-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-9bb9-cwd
Normal file
1
tmpclaude-9bb9-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-9dd9-cwd
Normal file
1
tmpclaude-9dd9-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-a8f7-cwd
Normal file
1
tmpclaude-a8f7-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-b8fc-cwd
Normal file
1
tmpclaude-b8fc-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
1
tmpclaude-e8a5-cwd
Normal file
1
tmpclaude-e8a5-cwd
Normal file
@@ -0,0 +1 @@
|
||||
/c/Users/ZielonkaA/Documents/GSM
|
||||
Reference in New Issue
Block a user