Effortless Flight Searches with Archie.ai: Find Your Return Flights Easily
Return flights - Archie.ai
body {
margin: 0;
font-family: 'Helvetica', 'Arial', sans-serif;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
height: 100vh;
}
form {
margin: 80px;
display: flex;
flex-direction: column;
align-items: center;
}
.input-container {
display: flex;
flex-direction: column;
align-items: center;
}
.mdc-text-field {
width: 300px;
}
.button-container {
display: flex;
gap: 12px;
}
#results {
padding: 32px;
max-width: 600px;
line-height: 1.5em;
background-color: #efefef;
text-align: left;
}
.visually-hidden {
display: none;
}
.bold {
font-weight: bold;
}
<div class="container">
<div class="form-container">
<h1>Поиск обратных рейсов</h1>
<p>Укажите место отправления, место назначения и даты, чтобы найти обратные рейсы.</p>
<div class="input-container">
<div class="mdc-text-field-helper-line">
<div class="mdc-text-field-helper-text" aria-hidden="true">
Место отправления
</div>
</div>
</div>
<div class="input-container">
<div class="mdc-text-field-helper-line">
<div class="mdc-text-field-helper-text" aria-hidden="true">
Место назначения
</div>
</div>
</div>
<div class="input-container">
<div class="mdc-text-field-helper-line">
<div class="mdc-text-field-helper-text" aria-hidden="true">
Дата вылета
</div>
</div>
</div>
<div class="input-container">
<div class="mdc-text-field-helper-line">
<div class="mdc-text-field-helper-text" aria-hidden="true">
Дата возвращения
</div>
</div>
</div>
<div class="button-container">
Найти рейсы
Загрузка...
Очистить
</div>
</div>
<div class="visually-hidden" id="results"></div>
</div>
(function () {
const form = document.getElementById('form');
const results = document.getElementById('results');
const submitButton = document.getElementById('submit-button');
const submitButtonCopy = document.getElementById('submit-button-copy');
const loading = document.getElementById('loading');
const textFields = document.querySelectorAll('.mdc-text-field');
textFields.forEach((field) =>
mdc.textField.MDCTextField.attachTo(field)
);
const buttons = document.querySelectorAll('.mdc-button');
buttons.forEach((btn) => mdc.ripple.MDCRipple.attachTo(btn));
const toggleElementDisable = (element, disable) => {
disable ? element.setAttribute('disabled', true) : element.removeAttribute('disabled');
}
const toggleVisuallyHidden = (element, remove) => {
remove ? element.classList.remove('visually-hidden') : element.classList.add('visually-hidden');
}
const checkSyntax = (result) => {
if (result.includes('```')) {
return result.includes('```json') ? result.slice(7, -3) : result.slice(3, -3)
}
return result;
}
const displayResults = (data) => {
toggleVisuallyHidden(loading, false);
toggleVisuallyHidden(submitButtonCopy, true);
toggleVisuallyHidden(results, true);
let output = checkSyntax(data.candidates[0].output);
const resultObject = JSON.parse(output);
const formattedResults = `
<p><b>Рейс туда:</b></p>
<ul>
<li>Авиакомпания: ${resultObject.itineraries[0].outbound.flights[0].carrier}</li>
<li>Номер рейса: ${resultObject.itineraries[0].outbound.flights[0].flightNumber}</li>
<li>Отправление: ${resultObject.itineraries[0].outbound.flights[0].origin.name} (${resultObject.itineraries[0].outbound.flights[0].origin.iataCode})</li>
<li>Прибытие: ${resultObject.itineraries[0].outbound.flights[0].destination.name} (${resultObject.itineraries[0].outbound.flights[0].destination.iataCode})</li>
<li>Дата вылета: ${resultObject.itineraries[0].outbound.flights[0].departsAt}</li>
<li>Дата прибытия: ${resultObject.itineraries[0].outbound.flights[0].arrivesAt}</li>
</ul>
<p><b>Обратный рейс:</b></p>
<ul>
<li>Авиакомпания: ${resultObject.itineraries[0].inbound.flights[0].carrier}</li>
<li>Номер рейса: ${resultObject.itiner