Skip to content

Instantly share code, notes, and snippets.

@bhatvikrant
Last active August 30, 2023 10:16
Show Gist options
  • Save bhatvikrant/75e443f88a73080f0a7ab366e9db4fdd to your computer and use it in GitHub Desktop.
Save bhatvikrant/75e443f88a73080f0a7ab366e9db4fdd to your computer and use it in GitHub Desktop.
Rize company name search custom script
// @ts-check
// const BASE_URL = "https://rize-dashboard.razorpay.com";
const BASE_URL = "https://rize.np.razorpay.in";
var searchTerm = "";
var isCompanyNameSearchLoading = false;
var isTrademarkSearchLoading = false;
var isDomainsSearchLoading = false;
var isSocialMediaUsernameLoading = false;
var companyNameData = [];
var trademarkData = [];
var domainsData = [];
var socialMediaHandlesData = [];
const availableHTML = document.getElementById("available-html").innerHTML;
const unavailableHTML = document.getElementById("unavailable-html").innerHTML;
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function refreshCompanyNameAndTrademarkUI() {
if (isCompanyNameSearchLoading || isTrademarkSearchLoading) {
// Show loading until both MCA and Trademark APIs have returned a response
document.getElementById("make-sure-section").style.display = "none";
document.getElementById("mca-and-trademark-loading").style.display =
"block";
} else {
const companyResultsLength = companyNameData.length;
const trademarkResultsLength = trademarkData.length;
if (
searchTerm &&
companyResultsLength === 0 &&
trademarkResultsLength === 0
) {
// Show success state UI
document.getElementById("mca-and-trademark-loading").style.display =
"none";
document.getElementById("good-news-container").style.display = "block";
document.getElementById("success-search-term").innerText = searchTerm;
}
const onlyMCAMatch =
searchTerm &&
companyResultsLength !== 0 &&
trademarkResultsLength === 0;
const onlyTrademarkMatch =
searchTerm &&
trademarkResultsLength !== 0 &&
companyResultsLength === 0;
if (onlyMCAMatch) {
// Change heading text to - Looks like your company name is already registered.
}
if (onlyTrademarkMatch) {
// Change heading text to - We found similar company names in the trademark database
}
if (searchTerm && companyResultsLength === 0) {
// Show MCA empty state
} else {
// Show results, update number of matches
}
if (searchTerm && trademarkResultsLength === 0) {
// Show Trademark empty state
} else {
// Show results, update number of matches
}
}
}
async function searchCompanyName(inputValue) {
const response = await fetch(
`${BASE_URL}/api/public/name-search/company-name`,
{
headers: {
"content-type": "application/json",
},
body: JSON.stringify({ search_string: inputValue }),
method: "POST",
}
);
const { results } = await response.json();
companyNameData = results;
isCompanyNameSearchLoading = false;
refreshCompanyNameAndTrademarkUI();
}
async function searchTrademark(inputValue) {
const response = await fetch(
`${BASE_URL}/api/public/name-search/trademark`,
{
headers: {
"content-type": "application/json",
},
body: JSON.stringify({ query: inputValue }),
method: "POST",
}
);
const results = await response.json();
trademarkData = results;
isTrademarkSearchLoading = false;
refreshCompanyNameAndTrademarkUI();
}
function search() {
const inputElement = document.querySelector(".text-field-8");
const inputValue = inputElement.value;
console.log({ inputValue });
searchTerm = inputValue;
isCompanyNameSearchLoading = true;
isTrademarkSearchLoading = true;
isDomainsSearchLoading = true;
isSocialMediaUsernameLoading = true;
refreshCompanyNameAndTrademarkUI();
// Show the domain and social media section
document.getElementById("domain-and-social-section").style.display =
"block";
// refreshDomainUI();
// refreshSocialMediaUsernameUI();
searchCompanyName(inputValue);
searchTrademark(inputValue);
// searchDomainName(inputValue);
// searchSocialMediaUsername(inputValue);
}
function createInputForm() {
// Creating a div with class="w-form"
const formDiv = document.createElement("div");
formDiv.className = "w-form";
// Creating the form element with class="form-8 hide" and onsubmit attribute
const formElement = document.createElement("form");
formElement.className = "form-8 hide my-form";
formElement.onsubmit = search;
// Creating the input element of type="text"
const inputElement = document.createElement("input");
inputElement.type = "text";
inputElement.className = "text-field-8 w-input";
inputElement.placeholder = "What would you like to call your next venture?";
inputElement.required = true;
// Creating the Submit Button
const submitButton = document.createElement("button");
submitButton.id = "submit-btn";
submitButton.className = "submit-button-2 w-button";
submitButton.dataset.analytics = "name_search.searched.initiated";
// Appending the input elements to the form
formElement.appendChild(inputElement);
formElement.appendChild(submitButton);
// Appending the form to the div
formDiv.appendChild(formElement);
// Appending the div to the body
document.getElementById("search-container").appendChild(formDiv);
inputElement.addEventListener("change", (event) => {
submitButton.dataset.propertySearch_term = event.target.value;
});
}
// 🟢 START OF THE SCRIPT
createInputForm();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment