Skip to content

Commit bb9bb48

Browse files
authored
feat: Combine IP and port input fields (#345)
1 parent 28022a2 commit bb9bb48

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/react/AddServerOrConnect.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQ
4646
const parsedInitialIp = parseServerAddress(initialData?.ip)
4747

4848
const [serverName, setServerName] = React.useState(initialData?.name ?? qsParamName ?? '')
49-
const [serverIp, setServerIp] = React.useState(parsedQsIp.host || parsedInitialIp.host || '')
50-
const [serverPort, setServerPort] = React.useState(parsedQsIp.port || parsedInitialIp.port || '')
49+
const [serverIp, setServerIp] = React.useState(parsedQsIp.serverIpFull || parsedInitialIp.serverIpFull || '')
5150
const [versionOverride, setVersionOverride] = React.useState(initialData?.versionOverride ?? /* legacy */ initialData?.['version'] ?? qsParamVersion ?? '')
5251
const [proxyOverride, setProxyOverride] = React.useState(initialData?.proxyOverride ?? qsParamProxy ?? '')
5352
const [usernameOverride, setUsernameOverride] = React.useState(initialData?.usernameOverride ?? qsParamUsername ?? '')
@@ -61,7 +60,7 @@ export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQ
6160
const noAccountSelected = accountIndex === -1
6261
const authenticatedAccountOverride = noAccountSelected ? undefined : freshAccount ? true : accounts?.[accountIndex]
6362

64-
let ipFinal = serverIp.includes(':') ? serverIp : `${serverIp}${serverPort ? `:${serverPort}` : ''}`
63+
let ipFinal = serverIp
6564
ipFinal = ipFinal.replace(/:$/, '')
6665
const commonUseOptions: BaseServerInfo = {
6766
name: serverName,
@@ -126,6 +125,9 @@ export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQ
126125
}, [])
127126

128127
const displayConnectButton = qsParamIp
128+
const serverExamples = ['example.com:25565', 'play.hypixel.net', 'ws://play.pcm.gg']
129+
// pick random example
130+
const example = serverExamples[Math.floor(Math.random() * serverExamples.length)]
129131

130132
return <Screen title={qsParamIp ? 'Connect to Server' : title} backdrop>
131133
<form
@@ -149,11 +151,6 @@ export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQ
149151
})
150152
}}
151153
>
152-
{!lockConnect && <>
153-
<div style={{ gridColumn: smallWidth ? '' : 'span 2', display: 'flex', justifyContent: 'center' }}>
154-
<InputWithLabel label="Server Name" value={serverName} onChange={({ target: { value } }) => setServerName(value)} placeholder='Defaults to IP' />
155-
</div>
156-
</>}
157154
<InputWithLabel
158155
required
159156
label="Server IP"
@@ -165,8 +162,13 @@ export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQ
165162
setServerOnline(false)
166163
}}
167164
validateInput={serverOnline === null || fetchedServerInfoIp !== serverIp ? undefined : validateServerIp}
165+
placeholder={example}
168166
/>
169-
<InputWithLabel label="Server Port" value={serverPort} disabled={lockConnect && parsedQsIp.port !== null} onChange={({ target: { value } }) => setServerPort(value)} placeholder={serverIp.startsWith('ws://') || serverIp.startsWith('wss://') ? '' : '25565'} />
167+
{!lockConnect && <>
168+
<div style={{ display: 'flex', justifyContent: 'center' }}>
169+
<InputWithLabel label="Server Name" value={serverName} onChange={({ target: { value } }) => setServerName(value)} placeholder='Defaults to IP' />
170+
</div>
171+
</>}
170172
{isSmallHeight ? <div style={{ gridColumn: 'span 2', marginTop: 10, }} /> : <div style={{ gridColumn: smallWidth ? '' : 'span 2' }}>Overrides:</div>}
171173
<div style={{
172174
display: 'flex',

0 commit comments

Comments
 (0)