Add Search Field
This commit is contained in:
parent
bddd6b9c51
commit
3a55534dbb
2 changed files with 137 additions and 2 deletions
55
src/search/Field.astro
Normal file
55
src/search/Field.astro
Normal file
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
import { Search, ArrowRight } from "@iconoir/vue";
|
||||
---
|
||||
|
||||
<div class="search-field">
|
||||
<Search class="search-field-mag" />
|
||||
<input placeholder="Search..." />
|
||||
<button class="search-field-submit">Go</button>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.search-field {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
max-width: 360px;
|
||||
input {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 100%;
|
||||
width: -moz-available;
|
||||
border-radius: 3rem;
|
||||
border: 1px #3b3b3b solid;
|
||||
background: #282828;
|
||||
color: white;
|
||||
padding: 18px 24px 18px 48px;
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
.search-field-mag {
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
left: 18px;
|
||||
top: 7px;
|
||||
width: 18px;
|
||||
pointer-events: none;
|
||||
}
|
||||
.search-field-submit {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 6px;
|
||||
border-radius: 3rem;
|
||||
border: none;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-size: 14px;
|
||||
background: white;
|
||||
padding: 4px 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -10,6 +10,32 @@ import SidebarCreator from '../../../src/SidebarCreator.astro'
|
|||
import Dialog from '../../../src/Dialog.astro'
|
||||
import Sidebar from '../../../src/Sidebar.astro'
|
||||
import Video from '../../../src/VideoItem.astro'
|
||||
import Category from '../../../src/Category.astro'
|
||||
import SearchField from '../../../src/search/Field.astro'
|
||||
|
||||
// Data
|
||||
/// Fetch Categories for YouTube
|
||||
const TrendingFetch = 'https://yt.sudovanilla.org' + '/api/v1/trending'
|
||||
const TrendingResponse = await fetch(TrendingFetch)
|
||||
const TrendingData = await TrendingResponse.json()
|
||||
const TrendingSplit = TrendingData.slice(0, 1)
|
||||
|
||||
const MoviesFetch = 'https://yt.sudovanilla.org' + '/api/v1/trending?type=movies'
|
||||
const MoviesResponse = await fetch(MoviesFetch)
|
||||
const MoviesData = await MoviesResponse.json()
|
||||
const MoviesSplit = MoviesData.slice(0, 1)
|
||||
|
||||
|
||||
const MusicFetch = 'https://yt.sudovanilla.org' + '/api/v1/trending?type=music'
|
||||
const MusicResponse = await fetch(MusicFetch)
|
||||
const MusicData = await MusicResponse.json()
|
||||
const MusicSplit = MusicData.slice(0, 1)
|
||||
|
||||
|
||||
const GamingFetch = 'https://yt.sudovanilla.org' + '/api/v1/trending?type=gaming'
|
||||
const GamingResponse = await fetch(GamingFetch)
|
||||
const GamingData = await GamingResponse.json()
|
||||
const GamingSplit = GamingData.slice(0, 1)
|
||||
|
||||
// Icons
|
||||
import {
|
||||
|
@ -27,6 +53,7 @@ import {
|
|||
LogOut,
|
||||
OpenInBrowser
|
||||
} from '@iconoir/vue'
|
||||
import { Search } from '@iconoir/vue'
|
||||
---
|
||||
|
||||
|
||||
|
@ -93,6 +120,14 @@ import {
|
|||
</Sidebar>
|
||||
|
||||
<div class="content">
|
||||
<div style="margin: auto;width: 360px;padding: 64px;">
|
||||
<SearchField/>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); gap: 12px;">
|
||||
<Video
|
||||
VideoId="PuGeR075MkE"
|
||||
|
@ -148,6 +183,45 @@ import {
|
|||
<br/>
|
||||
<br/>
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 12px;">
|
||||
{TrendingSplit.map((category) =>
|
||||
<Category
|
||||
Name="Trending"
|
||||
Link="#"
|
||||
Thumbnail={"https://ipx.sudovanilla.org/https://img.youtube.com/vi/" + category.videoId + "/mqdefault.jpg"}
|
||||
Platform="YouTube"
|
||||
/>
|
||||
)}
|
||||
{MoviesSplit.map((category) =>
|
||||
<Category
|
||||
Name="Trailers"
|
||||
Link="#"
|
||||
Thumbnail={"https://ipx.sudovanilla.org/https://img.youtube.com/vi/" + category.videoId + "/mqdefault.jpg"}
|
||||
Platform="YouTube"
|
||||
/>
|
||||
)}
|
||||
{MusicSplit.map((category) =>
|
||||
<Category
|
||||
Name="Music"
|
||||
Link="#"
|
||||
Thumbnail={"https://ipx.sudovanilla.org/https://img.youtube.com/vi/" + category.videoId + "/mqdefault.jpg"}
|
||||
Platform="YouTube"
|
||||
/>
|
||||
)}
|
||||
{GamingSplit.map((category) =>
|
||||
<Category
|
||||
Name="Gaming"
|
||||
Link="#"
|
||||
Thumbnail={"https://ipx.sudovanilla.org/https://img.youtube.com/vi/" + category.videoId + "/mqdefault.jpg"}
|
||||
Platform="YouTube"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<Comment
|
||||
Avatar="https://ipx.sudovanilla.org/https://invidious.private.coffee/ggpht/ytc/AIdro_lAKf-vZLoTI-gZUoP5Y3gbdGd07E4eDHUhTee6aOzDCnU=s900-c-k-c0x00ffffff-no-rj"
|
||||
Username="The Linux Experiment"
|
||||
|
@ -163,7 +237,7 @@ Phasellus eget consequat penatibus magnis at. Augue neque placerat pellentesque
|
|||
body {
|
||||
background: black;
|
||||
color: white;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-family: Arial, Helvetica, sans-serif;+
|
||||
}
|
||||
.content {
|
||||
margin-left: 260px;
|
||||
|
@ -212,4 +286,10 @@ body {
|
|||
document.querySelector('#dialog-id-thingie').style.display = 'none'
|
||||
document.querySelector('#dialog-id-thingie-backdrop').style.display = 'none'
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style is:inline>
|
||||
div.fl-sidebar-items:nth-child(2) > a:nth-child(1) {
|
||||
background: #3c3c3c !important;
|
||||
}
|
||||
</style>
|
Loading…
Reference in a new issue