Skip to content

Commit 94fe5e1

Browse files
authored
Update main.js
1 parent 29b0505 commit 94fe5e1

File tree

1 file changed

+81
-91
lines changed

1 file changed

+81
-91
lines changed

scripts/main.js

Lines changed: 81 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,112 @@
1-
let is_searching=false;
2-
let pattern_domain='^[a-zA-Z0-9_][a-zA-Z0-9.-]*';
3-
let timer_search=undefined;
4-
let reserved_domain=undefined;
5-
const search_domain=document.getElementById('search-domain');
6-
// result containers
7-
const result_card=document.getElementById('result-card');
8-
const result_none=document.getElementById('result-none');
9-
const result_error=document.getElementById('result-error');
10-
const result_reserved=document.getElementById('result-reserved');
11-
// user propagate
12-
const user_avatar=document.getElementById('user-avatar');
13-
const user_gh_link=document.getElementById('user-gh-link');
14-
const user_name=document.getElementById('user-name');
15-
const user_website_link=document.getElementById('user-website-link');
16-
const user_info=document.getElementById('user-info');
1+
let is_searching = false;
2+
let pattern_domain = "^[a-zA-Z0-9_][a-zA-Z0-9.-]*";
3+
let timer_search = undefined;
4+
let reserved_domain = undefined;
5+
const search_domain = document.getElementById("search-domain");
6+
const result_card = document.getElementById("result-card");
7+
const result_none = document.getElementById("result-none");
8+
const result_error = document.getElementById("result-error");
9+
const result_reserved = document.getElementById("result-reserved");
10+
const user_avatar = document.getElementById("user-avatar");
11+
const user_gh_link = document.getElementById("user-gh");
12+
const user_gh_name = document.getElementById("user-gh-name");
1713

18-
function check(){
19-
const search= search_domain.value.trim().replace(/\s/g, '-').toLowerCase();
20-
if(isReserved(search)){
14+
function check() {
15+
const search = search_domain.value.trim().replace(/\s/g, "-").toLowerCase();
16+
if (isReserved(search)) {
2117
hideResults();
22-
result_reserved.classList.toggle('hidden');
18+
result_reserved.classList.toggle("hidden");
2319
return;
2420
}
25-
if(!search || is_searching) return;
26-
is_searching=true;
21+
if (!search || is_searching) return;
22+
is_searching = true;
2723
fetch(`https://raw.githubusercontent.com/is-a-dev/register/main/domains/${search}.json`)
28-
.then(response => {
29-
hideResults();
30-
if(!response.ok && response.status !== 404)
31-
throw new Error('Something went wrong');
32-
return !response.ok? null :
33-
response.json();
34-
})
35-
.then(json => {
36-
if(json)
37-
{
38-
json.search=search;
39-
propagateResult(json);
40-
}
41-
else if (result_none.classList.contains('hidden'))
42-
result_none.classList.toggle('hidden');
43-
})
44-
.catch((reason)=>{
45-
console.log(reason);
46-
if (result_error.classList.contains('hidden')) result_error.classList.toggle('hidden');
47-
}).finally(()=>{
48-
is_searching=false;
49-
});
24+
.then((response) => {
25+
hideResults();
26+
if (!response.ok && response.status !== 404) throw new Error("Something went wrong");
27+
return !response.ok ? null : response.json();
28+
})
29+
.then((json) => {
30+
if (json) {
31+
json.search = search;
32+
propagateResult(json);
33+
} else if (result_none.classList.contains("hidden")) result_none.classList.toggle("hidden");
34+
})
35+
.catch((reason) => {
36+
console.log(reason);
37+
if (result_error.classList.contains("hidden")) result_error.classList.toggle("hidden");
38+
})
39+
.finally(() => {
40+
is_searching = false;
41+
});
5042
}
5143

52-
function propagateResult(data){
53-
if (result_card.classList.contains('hidden')) result_card.classList.remove('hidden');
54-
var gh_link=`https://github.com/${data.owner.username}`;
55-
var website_link=`${data.search}.is-a.dev`;
56-
user_avatar.src=`${gh_link}.png?size=120`;
57-
user_gh_link.href=gh_link;
58-
user_name.innerHTML=data.owner.username;
59-
user_website_link.href=`https://${website_link}`;
60-
user_website_link.innerHTML=website_link;
61-
user_info.textContent= data.description || '';
44+
function propagateResult(data) {
45+
if (result_card.classList.contains("hidden")) result_card.classList.remove("hidden");
46+
var gh_link = `https://github.com/${data.owner.username}`;
47+
user_avatar.src = `${gh_link}.png?size=64`;
48+
user_gh_link.href = gh_link;
49+
user_gh_name.innerHTML = data.owner.username;
6250
}
6351

64-
function hideResults(){
65-
if (!result_card.classList.contains('hidden')) result_card.classList.toggle('hidden');
66-
if (!result_none.classList.contains('hidden')) result_none.classList.toggle('hidden');
67-
if (!result_error.classList.contains('hidden')) result_error.classList.toggle('hidden');
68-
if (!result_reserved.classList.contains('hidden')) result_reserved.classList.toggle('hidden');
52+
function hideResults() {
53+
if (!result_card.classList.contains("hidden")) result_card.classList.toggle("hidden");
54+
if (!result_none.classList.contains("hidden")) result_none.classList.toggle("hidden");
55+
if (!result_error.classList.contains("hidden")) result_error.classList.toggle("hidden");
56+
if (!result_reserved.classList.contains("hidden")) result_reserved.classList.toggle("hidden");
6957
}
7058

71-
function isReserved(domain){
59+
function isReserved(domain) {
7260
const reserved_domains = new Set(reserved_domain);
73-
return reserved_domains.has(domain) || reserved_domain.some(pattern => pattern.includes('[') && new RegExp(pattern).test(domain));
61+
return (
62+
reserved_domains.has(domain) ||
63+
reserved_domain.some((pattern) => pattern.includes("[") && new RegExp(pattern).test(domain))
64+
);
7465
}
7566

7667
async function fetchReservedDomains() {
7768
try {
78-
if (typeof reserved_domain === 'undefined') {
79-
if (typeof timer_search !== 'undefined') {
80-
clearInterval(timer_search);
81-
}
82-
83-
const response = await fetch('https://raw.githubusercontent.com/is-a-dev/register/main/util/reserved.json');
84-
if (!response.ok) {
85-
throw new Error('Something went wrong');
69+
if (typeof reserved_domain === "undefined") {
70+
if (typeof timer_search !== "undefined") {
71+
clearInterval(timer_search);
72+
}
73+
74+
const response = await fetch("https://raw.githubusercontent.com/is-a-dev/register/main/util/reserved.json");
75+
if (!response.ok) {
76+
throw new Error("Something went wrong");
77+
}
78+
79+
reserved_domain = await response.json();
80+
search_domain.disabled = false;
81+
search_domain.placeholder = "e.g. william";
8682
}
87-
88-
reserved_domain = await response.json();
89-
search_domain.disabled = false;
90-
search_domain.placeholder = 'e.g. william';
91-
document.getElementById('search-keyword').innerHTML = '*Start typing to check the subdomain availability, <a alt="filname-convention" target="_blank" href="https://docs.is-a.dev/domain-structure/#filename">check here</a> to learn how to create a proper domain name.';
92-
}
9383
} catch (error) {
94-
console.error('Error fetching reserved domains:', error);
84+
console.error("Error fetching reserved domains:", error);
9585
}
96-
}
86+
}
9787

98-
search_domain.addEventListener('input', function(evt) {
88+
search_domain.addEventListener("input", function (evt) {
9989
const input_value = this.value.trim();
10090

101-
if (input_value === '') {
102-
clearTimer();
103-
hideResults();
104-
return;
91+
if (input_value === "") {
92+
clearTimer();
93+
hideResults();
94+
return;
10595
}
106-
96+
10797
const matched_value = input_value.match(new RegExp(pattern_domain));
10898
if (matched_value) {
109-
search_domain.value = matched_value[0];
99+
search_domain.value = matched_value[0];
110100
}
111-
101+
112102
clearTimer();
113103
timer_search = setTimeout(() => check(), 1000);
114-
});
115-
116-
function clearTimer() {
104+
});
105+
106+
function clearTimer() {
117107
if (timer_search !== undefined) {
118-
clearInterval(timer_search);
108+
clearInterval(timer_search);
119109
}
120-
}
110+
}
121111

122-
fetchReservedDomains();
112+
fetchReservedDomains();

0 commit comments

Comments
 (0)