This commit is contained in:
Andrey Kondratev
2025-08-29 10:57:50 +05:00
parent 6bde4bfd4c
commit b483ed71f2
11 changed files with 106 additions and 50 deletions

View File

@@ -12,34 +12,28 @@
</head>
<body>
<div class="tg-root">
</div>
<div class="tg-content">
<div class="tg-placeholder" id="welcomePlaceholder">
<div class="tg-placeholder__icon">🎵</div>
<div class="tg-placeholder__title">Найти музыку</div>
<div class="tg-placeholder__description">Введите название песни или исполнителя для поиска на YouTube</div>
<div class="tg-placeholder__description">Введите название песни или исполнителя для поиска на SoundCloud</div>
</div>
<button class="tg-button tg-button--primary tg-button--large" id="searchBtn">
<span class="tg-button__text">Найти</span>
</button>
</div>
<div class="tg-spinner" id="loading">
<div class="tg-spinner tg-hidden" id="loading">
<div class="tg-spinner__icon"></div>
<div class="tg-spinner__text">Поиск музыки...</div>
</div>
<div class="tg-list" id="results">
<div class="tg-list tg-hidden" id="results">
<!-- Search results will appear here -->
</div>
<div class="tg-placeholder tg-placeholder--secondary" id="noResults">
<div class="tg-placeholder tg-placeholder--secondary tg-hidden" id="noResults">
<div class="tg-placeholder__icon">🔍</div>
<div class="tg-placeholder__title">Ничего не найдено</div>
<div class="tg-placeholder__description">Попробуйте изменить поисковый запрос</div>
</div>
<div class="tg-form">
<div class="tg-input-wrapper">
<input type="text"
@@ -58,4 +52,4 @@
<script src="dist/script.js"></script>
</body>
</html>
</html>

View File

@@ -110,6 +110,7 @@ class QuixoticApp {
this.welcomePlaceholder.classList.add('tg-hidden');
this.loading.classList.remove('tg-hidden');
this.loading.classList.add('tg-spinner--visible');
this.results.classList.add('tg-hidden');
this.results.classList.remove('tg-list--visible');
this.noResults.classList.add('tg-hidden');
this.searchBtn.disabled = true;
@@ -147,12 +148,14 @@ class QuixoticApp {
</div>
`).join('');
this.results.classList.remove('tg-hidden');
this.results.classList.add('tg-list--visible');
this.noResults.classList.add('tg-hidden');
}
private showNoResults(): void {
this.hideLoading();
this.results.classList.add('tg-hidden');
this.results.classList.remove('tg-list--visible');
this.noResults.classList.remove('tg-hidden');
}

View File

@@ -67,6 +67,7 @@ body {
.tg-content {
flex: 1;
padding: var(--tg-spacing-lg);
padding-bottom: 140px;
display: flex;
flex-direction: column;
gap: var(--tg-spacing-xl);
@@ -74,9 +75,17 @@ body {
/* Form components */
.tg-form {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: flex;
flex-direction: column;
gap: var(--tg-spacing-md);
padding: var(--tg-spacing-lg);
background: var(--tg-color-bg);
border-top: 1px solid var(--tg-color-secondary-bg);
z-index: 100;
}
.tg-input-wrapper {