import {html} from "../../../../common/html"; import * as t from "../../../../common/translation-util"; import {generateNodeFromHTML} from "../../components/base"; import * as LinkUtil from "../../utils/link-util"; interface FindAccountsProps { $root: Element; } async function findAccounts(url: string): Promise { if (!url) { return; } if (!url.startsWith("http")) { url = "https://" + url; } await LinkUtil.openBrowser(new URL("/accounts/find", url)); } export function initFindAccounts(props: FindAccountsProps): void { const $findAccounts = generateNodeFromHTML(html`
${t.__("Organization URL")}
`); props.$root.append($findAccounts); const $findAccountsButton = $findAccounts.querySelector( "#find-accounts-button", )!; const $serverUrlField: HTMLInputElement = $findAccounts.querySelector( "input.setting-input-value", )!; $findAccountsButton.addEventListener("click", async () => { await findAccounts($serverUrlField.value); }); $serverUrlField.addEventListener("click", () => { if ($serverUrlField.value === "zulipchat.com") { $serverUrlField.setSelectionRange(0, 0); } }); $serverUrlField.addEventListener("keypress", async (event) => { if (event.key === "Enter") { await findAccounts($serverUrlField.value); } }); $serverUrlField.addEventListener("input", () => { if ($serverUrlField.value) { $serverUrlField.classList.remove("invalid-input-value"); } else { $serverUrlField.classList.add("invalid-input-value"); } }); }