Skip to content

Commit 929a56e

Browse files
committed
new_server_form: Add autocomplete domain in new server form input.
1 parent 609ee96 commit 929a56e

File tree

2 files changed

+53
-7
lines changed

2 files changed

+53
-7
lines changed

app/renderer/css/preference.css

+26-1
Original file line numberDiff line numberDiff line change
@@ -238,14 +238,39 @@ img.server-info-icon {
238238
max-width: 450px;
239239
}
240240

241-
.setting-input-value:focus {
241+
.setting-input-value:focus,
242+
label.setting-input-value:focus-within {
242243
border: rgb(78 191 172 / 100%) 2px solid;
243244
}
244245

245246
.invalid-input-value:focus {
246247
border: rgb(239 83 80 / 100%) 2px solid;
247248
}
248249

250+
.setting-input-add-server,
251+
.add-server-domain,
252+
.server-url-size-calc {
253+
outline: 0;
254+
margin: 0;
255+
padding: 0;
256+
border: 0;
257+
float: left;
258+
font-family: inherit;
259+
font-size: inherit;
260+
line-height: inherit;
261+
color: inherit;
262+
background: inherit;
263+
}
264+
265+
.setting-input-add-server {
266+
color: rgb(34 44 49 / 100%);
267+
}
268+
269+
.server-url-size-calc {
270+
visibility: hidden;
271+
height: 0;
272+
}
273+
249274
.manual-proxy-block {
250275
width: 96%;
251276
}

app/renderer/js/pages/preference/new-server-form.ts

+27-6
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,16 @@ export function initNewServerForm({$root, onChange}: NewServerFormProps): void {
1717
<div class="server-input-container">
1818
<div class="title">${t.__("Organization URL")}</div>
1919
<div class="add-server-info-row">
20-
<input
21-
class="setting-input-value"
22-
autofocus
23-
placeholder="your-organization.zulipchat.com or zulip.your-organization.com"
24-
/>
20+
<label class="setting-input-value">
21+
<input
22+
class="setting-input-add-server"
23+
autofocus
24+
placeholder="your-organization.zulipchat.com"
25+
style="width: 34ch"
26+
/>
27+
<span class="add-server-domain"></span>
28+
<span class="server-url-size-calc"></span>
29+
</label>
2530
</div>
2631
<div class="server-center">
2732
<button id="connect">${t.__("Connect")}</button>
@@ -53,8 +58,15 @@ export function initNewServerForm({$root, onChange}: NewServerFormProps): void {
5358
$root.textContent = "";
5459
$root.append($newServerForm);
5560
const $newServerUrl: HTMLInputElement = $newServerForm.querySelector(
56-
"input.setting-input-value",
61+
"input.setting-input-add-server",
5762
)!;
63+
const $serverDomain: HTMLSpanElement = $newServerForm.querySelector(
64+
"span.add-server-domain",
65+
)!;
66+
const $urlSizeCalc: HTMLSpanElement = $newServerForm.querySelector(
67+
"span.server-url-size-calc",
68+
)!;
69+
const urlValidationPattern = /^[a-zA-Z\d-]*$/;
5870

5971
async function submitFormHandler(): Promise<void> {
6072
$saveServerButton.textContent = "Connecting...";
@@ -99,6 +111,15 @@ export function initNewServerForm({$root, onChange}: NewServerFormProps): void {
99111
await submitFormHandler();
100112
}
101113
});
114+
$newServerUrl.addEventListener("input", async () => {
115+
const url = $newServerUrl.value;
116+
$urlSizeCalc.textContent = url;
117+
$newServerUrl.style.width = `${$urlSizeCalc.offsetWidth}px`;
118+
119+
$serverDomain.textContent = urlValidationPattern.test(url)
120+
? ".zulipchat.com"
121+
: "";
122+
});
102123

103124
// Open create new org link in default browser
104125
const link = "https://zulip.com/new/";

0 commit comments

Comments
 (0)