Commit 5d9e7f31 authored by Chunchi Che's avatar Chunchi Che

update MatchModal.tsx to adjust pre-release

parent 85be971f
Pipeline #25481 failed with stages
in 59 seconds
...@@ -10,6 +10,11 @@ ...@@ -10,6 +10,11 @@
"name":"mycard-athletic", "name":"mycard-athletic",
"ip":"tiramisu.moecube.com", "ip":"tiramisu.moecube.com",
"port":"8912" "port":"8912"
},
{
"name":"pre-release",
"ip":"koishi.momobako.com",
"port":"889"
} }
], ],
"assetsPath":"/neos-assets", "assetsPath":"/neos-assets",
......
...@@ -11,4 +11,8 @@ ...@@ -11,4 +11,8 @@
height: 3rem; height: 3rem;
margin: 0.25rem; margin: 0.25rem;
} }
.select {
margin: 0.25rem 0;
}
} }
...@@ -5,12 +5,17 @@ import { proxy, useSnapshot } from "valtio"; ...@@ -5,12 +5,17 @@ import { proxy, useSnapshot } from "valtio";
import { useConfig } from "@/config"; import { useConfig } from "@/config";
import { accountStore, roomStore } from "@/stores"; import { accountStore, roomStore } from "@/stores";
import { Select } from "@/ui/Shared";
import styles from "./MatchModal.module.scss"; import styles from "./MatchModal.module.scss";
import { connectSrvpro } from "./util"; import { connectSrvpro } from "./util";
const NeosConfig = useConfig(); const NeosConfig = useConfig();
const serverConfig = NeosConfig.servers; const serverConfig = NeosConfig.servers;
const KOISHI = "koishi";
const PRERELEASE = "pre-release";
const { const {
defaults: { defaultPlayer, defaultPassword }, defaults: { defaultPlayer, defaultPassword },
automation: { isAiMode }, automation: { isAiMode },
...@@ -33,17 +38,26 @@ export const MatchModal: React.FC = ({}) => { ...@@ -33,17 +38,26 @@ export const MatchModal: React.FC = ({}) => {
const { joined, errorMsg } = useSnapshot(roomStore); const { joined, errorMsg } = useSnapshot(roomStore);
const [player, setPlayer] = useState(user?.name ?? defaultPlayer); const [player, setPlayer] = useState(user?.name ?? defaultPlayer);
const [passwd, setPasswd] = useState(defaultPassword); const [passwd, setPasswd] = useState(defaultPassword);
const [server, setServer] = useState( const [serverId, setServerId] = useState(0);
`${serverConfig[0].ip}:${serverConfig[0].port}`,
);
const [confirmLoading, setConfirmLoading] = useState(false); const [confirmLoading, setConfirmLoading] = useState(false);
const navigate = useNavigate(); const navigate = useNavigate();
let handlePlayerChange = (event: ChangeEvent<HTMLInputElement>) => { let handlePlayerChange = (event: ChangeEvent<HTMLInputElement>) => {
setPlayer(event.target.value); setPlayer(event.target.value);
}; };
let handleServerChange = (event: ChangeEvent<HTMLInputElement>) => { let handleServerChange = (value: any) => {
setServer(event.target.value); switch (value) {
case KOISHI: {
setServerId(0);
break;
}
case PRERELEASE: {
setServerId(2);
break;
}
default:
break;
}
}; };
let handlePasswdChange = (event: ChangeEvent<HTMLInputElement>) => { let handlePasswdChange = (event: ChangeEvent<HTMLInputElement>) => {
setPasswd(event.target.value); setPasswd(event.target.value);
...@@ -51,7 +65,11 @@ export const MatchModal: React.FC = ({}) => { ...@@ -51,7 +65,11 @@ export const MatchModal: React.FC = ({}) => {
const handleSubmit = async () => { const handleSubmit = async () => {
setConfirmLoading(true); setConfirmLoading(true);
await connectSrvpro({ player, ip: server, passWd: passwd }); await connectSrvpro({
player,
ip: genServerAddress(serverId),
passWd: passwd,
});
}; };
useEffect(() => { useEffect(() => {
...@@ -91,6 +109,22 @@ export const MatchModal: React.FC = ({}) => { ...@@ -91,6 +109,22 @@ export const MatchModal: React.FC = ({}) => {
centered centered
> >
<div className={styles["inputs-container"]}> <div className={styles["inputs-container"]}>
<Select
className={styles.select}
title="服务器"
value={KOISHI}
options={[
{
value: KOISHI,
label: "Koishi服",
},
{
value: PRERELEASE,
label: "超先行服",
},
]}
onChange={handleServerChange}
/>
<Input <Input
className={styles.input} className={styles.input}
type="text" type="text"
...@@ -99,14 +133,6 @@ export const MatchModal: React.FC = ({}) => { ...@@ -99,14 +133,6 @@ export const MatchModal: React.FC = ({}) => {
onChange={handlePlayerChange} onChange={handlePlayerChange}
required required
/> />
<Input
className={styles.input}
type="text"
placeholder="服务器(IP+端口)"
value={server}
onChange={handleServerChange}
required
/>
<Input <Input
className={styles.input} className={styles.input}
type="text" type="text"
...@@ -119,3 +145,7 @@ export const MatchModal: React.FC = ({}) => { ...@@ -119,3 +145,7 @@ export const MatchModal: React.FC = ({}) => {
</Modal> </Modal>
); );
}; };
const genServerAddress = (id: number) => {
return `${serverConfig[id].ip}:${serverConfig[id].port}`;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment