diff --git a/components.js b/components.js
index e99d209..71ff59a 100644
--- a/components.js
+++ b/components.js
@@ -1130,6 +1130,7 @@ smSwitch.innerHTML = `
+
`
customElements.define('sm-switch', class extends HTMLElement {
@@ -1264,6 +1265,7 @@ smSelect.innerHTML = `
-webkit-tap-highlight-color: transparent;
}
.option-text{
+ font-size: 0.9rem;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
diff --git a/css/main.css b/css/main.css
index abc3e7a..fe57fe2 100644
--- a/css/main.css
+++ b/css/main.css
@@ -320,6 +320,18 @@ ul {
cursor: pointer;
}
+.button--primary {
+ color: white;
+ font-weight: 500;
+ padding: 0.5rem 1.2rem;
+ background-color: var(--accent-color);
+}
+
+.auto-grid-2 {
+ gap: 2rem;
+ grid-template-columns: 1fr;
+}
+
#loading_page,
#error_page {
position: relative;
@@ -366,6 +378,10 @@ ul {
transform: scale(0) rotate(-90deg);
}
+.page {
+ padding-bottom: 2rem;
+}
+
#search_section {
position: relative;
display: grid;
@@ -475,7 +491,7 @@ ul {
width: 1.2rem;
fill: none;
padding: 0.1rem;
- stroke-width: 12;
+ stroke-width: 16;
overflow: visible;
margin-right: 0.5rem;
stroke-dasharray: 201;
@@ -570,10 +586,22 @@ ul {
}
#advance_search_section {
+ align-items: flex-start;
padding: 1rem 0;
margin-bottom: 1rem;
}
+#advance_search_switch {
+ justify-self: flex-start;
+}
+#advance_search_switch h4 {
+ margin-left: 1rem;
+}
+
+sm-option {
+ font-size: 0.9rem;
+}
+
#main_footer {
padding: 3rem 0;
background-color: rgba(var(--text-color), 0.06);
@@ -618,6 +646,10 @@ ul {
padding: 1.5rem 1.5rem 0 1.5rem;
}
+ .auto-grid-2 {
+ grid-template-columns: 1fr 1fr;
+ }
+
.page-layout {
grid-template-columns: 1fr 90vw 1fr;
}
diff --git a/css/main.min.css b/css/main.min.css
index 4c7e699..7bd1ec3 100644
--- a/css/main.min.css
+++ b/css/main.min.css
@@ -1 +1 @@
-a,button{color:inherit}.interact,.theme-switcher,.torrent-card,button{-webkit-tap-highlight-color:transparent}*{padding:0;margin:0;box-sizing:border-box;font-family:Inter,sans-serif}:root{font-size:clamp(1rem,1.2vmax,3rem)}body,html{height:100%;scroll-behavior:smooth}body{--accent-color:#304FFE;--light-shade:rgba(var(--text-color), 0.06);--text-color:17,17,17;--text-color-light:100,100,100;--foreground-color:255,255,255;--background-color:#F6f6f6;--error-color:red;--green:#00843b;color:rgba(var(--text-color),1);background:var(--background-color);display:flex;flex-direction:column}body[data-theme=dark]{--accent-color:#2353FF;--green:#13ff5a;--text-color:240,240,240;--text-color-light:170,170,170;--foreground-color:20,20,20;--background-color:#0a0a0a;--error-color:rgb(255, 106, 106)}main{flex:1}.full-bleed{grid-column:1/4}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.4rem}.h4{font-size:1rem}.h5{font-size:.8rem}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}p{font-size:.8;max-width:60ch;line-height:1.5;color:rgba(var(--text-color),.8)}.app-name,button{font-weight:500;font-size:.9rem}img{object-fit:cover}a{text-decoration:none}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color),1) inset}button{position:relative;display:inline-flex;overflow:hidden;align-items:center;background:0 0;cursor:pointer;outline:0;border-radius:.2rem;padding:.5rem .6rem;border:none}button:focus-visible{outline:solid rgba(var(--text-color),1)}a:not([href=""]):any-link{position:relative;display:inline-flex;align-items:center;background:0 0;cursor:pointer;outline:0;font-weight:500;font-size:.8rem;border-radius:.3rem;padding:.5rem .6rem;align-self:flex-start;text-decoration:none;color:rgba(var(--text-color),.7);-webkit-tap-highlight-color:transparent;background-color:rgba(var(--text-color),.06)}a:not([href=""]):any-link .icon{margin-right:.3rem;height:1.2rem}a:any-link:focus-visible{outline:solid rgba(var(--text-color),1)}sm-button{--border-radius:0.3rem}ul{list-style:none}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.flex{display:flex}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-items:flex-start}.align-center{align-items:center}.text-center{text-align:center}.justify-start{justify-content:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.16);pointer-events:none}.interact{position:relative;overflow:hidden;cursor:pointer}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)~.empty-state{display:none}.icon{width:1.5rem;height:1.5rem;fill:rgba(var(--text-color),.9)}.page-layout{position:relative;display:grid;grid-template-columns:1rem 1fr 1rem}.page-layout>*{grid-column:2/3}.popup__header{display:grid;gap:.5rem;width:100%;padding:1rem 1.5rem;align-items:center;grid-template-columns:auto 1fr}.popup__header__close{padding:.5rem;cursor:pointer}#error_page,#loading_page{position:relative;display:grid;height:100%;place-content:center;justify-items:center}#main_header{position:relative;display:flex;padding:1rem;align-items:center;justify-content:space-between;grid-template-columns:repeat(3,1fr)}#main_header__logo{height:1.8rem;width:1.8rem}.theme-switcher{position:relative;justify-self:flex-end;width:1.5rem;height:1.5rem;cursor:pointer}.theme-switcher .icon{position:absolute;transition:transform .6s}.theme-switcher__checkbox{display:none}.theme-switcher__checkbox:checked~.moon-icon{transform:scale(0) rotate(90deg)}.theme-switcher__checkbox:not(:checked)~.sun-icon{transform:scale(0) rotate(-90deg)}#search_section{position:relative;display:grid;gap:.5rem 0;padding:4rem 0;justify-items:center}.app-icon{height:3rem;width:3rem}.app-name{margin-bottom:1rem;color:rgba(var(--text-color),.7)}#search_torrent{margin-bottom:1rem}.search-torrent{width:min(28rem,100%);--border-radius:2rem;--background:rgba(var(--text-color), 0.06)}.search-torrent .icon{height:1.2rem;fill:rgba(var(--text-color),.7)}.torrent-container{padding:1.5rem 0;display:grid;gap:.5rem;padding-bottom:4rem}.torrent-card{display:grid;gap:0 1rem;align-items:center;grid-template-columns:auto 1fr auto;cursor:pointer;padding:1rem;border-radius:.3rem;background-color:rgba(var(--text-color),.06)}.torrent-card .torrent-type-icon{padding:.8rem}.torrent-card__icon .icon{height:1.4rem;width:1.4rem}.torrent-card__title{font-weight:600;font-size:1.1rem;margin-bottom:.5rem}.torrent-card__tags,.torrent-card__uploader{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;color:rgba(var(--text-color),.7)}#torrent__description,#torrent_tags,#torrent_uploader,.progress-percent,.torrent-card__description{color:rgba(var(--text-color),.8)}.torrent-card__description{font-size:.9rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.torrent-card__size{font-weight:500}.torrent-card__download-button{justify-self:flex-end;align-self:flex-start;background-color:rgba(var(--text-color),.1)}.torrent-card__download-button .icon{height:1.4rem;margin-right:.5rem}.progress-indicator{justify-self:flex-end;height:2.3rem;padding:0 .6rem}.progress-percent{font-size:.9rem;font-weight:500}.progress-loader{height:1.2rem;width:1.2rem;fill:none;padding:.1rem;stroke-width:12;overflow:visible;margin-right:.5rem;stroke-dasharray:201;stroke-dashoffset:201;transform:rotate(-90deg);stroke:var(--accent-color);transition:stroke-dashoffset .3s}#torrent_popup{--width:min(56rem, 100%)}.torrent-preview{display:grid}.torrent-preview__info-section{display:flex;flex-direction:column;align-content:flex-start}.torrent-type-icon{display:flex;padding:1rem;border-radius:50%;align-items:center;justify-content:center;align-self:flex-start;aspect-ratio:1/1;flex-shrink:0;background-color:var(--accent-color)}#main_footer,#torrent_type_icon{background-color:rgba(var(--text-color),.06)}.torrent-type-icon .icon{fill:#fff}#torrent_type_icon{align-self:center;justify-self:center;padding:2rem}#torrent_type_icon .icon{height:3rem;width:3rem;fill:rgba(var(--text-color),.3)}#torrent_tags,#torrent_uploader{display:flex;width:100%;font-size:.85rem;margin-bottom:.3rem}#torrent_name{font-size:1.5rem;margin-bottom:1rem}#torrent__description{font-size:.9rem}#torrent_uploader{font-weight:500;line-height:1.7;margin-top:1rem;width:auto;border-radius:1.5rem;padding:.3rem .8rem;align-self:flex-start;background-color:rgba(var(--text-color),.1)}#torrent_download_button{color:#fff;width:100%;flex-shrink:0;padding:.7rem;margin-top:2rem;justify-content:center;background-color:var(--accent-color)}#torrent_download_button .icon{fill:#fff}#advance_search_section{padding:1rem 0;margin-bottom:1rem}#main_footer{padding:3rem 0}@media only screen and (max-width:640px){.popup__header{padding:0 1.5rem 0 .5rem}.torrent-card{grid-template-columns:auto 1fr}.torrent-card__icon{margin:0}.torrent-card__title{font-size:.95rem}.torrent-card__tags,.torrent-card__uploader{font-size:.7rem}.torrent-card__description{display:none}.torrent-card .progress-indicator,.torrent-card__download-button{margin-top:1rem;grid-column:2/3}#torrent_type_icon{margin-bottom:3rem}#torrent_tags{font-size:.8rem}}@media only screen and (min-width:640px){.popup__header{padding:1.5rem 1.5rem 0}.page-layout{grid-template-columns:1fr 90vw 1fr}#main_header,.torrent-card{padding:1.5rem}#torrent_popup{--min-height:80vh}.torrent-preview{gap:3rem;grid-template-columns:22rem 1fr}}@media only screen and (min-width:1280px){.page-layout{grid-template-columns:1fr 80vw 1fr}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}}
\ No newline at end of file
+a,button{color:inherit}.interact,.theme-switcher,.torrent-card,button{cursor:pointer;-webkit-tap-highlight-color:transparent}*{padding:0;margin:0;box-sizing:border-box;font-family:Inter,sans-serif}:root{font-size:clamp(1rem,1.2vmax,3rem)}body,html{height:100%;scroll-behavior:smooth}body{--accent-color:#304FFE;--light-shade:rgba(var(--text-color), 0.06);--text-color:17,17,17;--text-color-light:100,100,100;--foreground-color:255,255,255;--background-color:#F6f6f6;--error-color:red;--green:#00843b;color:rgba(var(--text-color),1);background:var(--background-color);display:flex;flex-direction:column}body[data-theme=dark]{--accent-color:#2353FF;--green:#13ff5a;--text-color:240,240,240;--text-color-light:170,170,170;--foreground-color:20,20,20;--background-color:#0a0a0a;--error-color:rgb(255, 106, 106)}main{flex:1}.full-bleed{grid-column:1/4}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.4rem}.h4{font-size:1rem}.h5{font-size:.8rem}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}p{font-size:.8;max-width:60ch;line-height:1.5;color:rgba(var(--text-color),.8)}.app-name,button{font-weight:500;font-size:.9rem}img{object-fit:cover}a{text-decoration:none}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color),1) inset}button{position:relative;display:inline-flex;overflow:hidden;align-items:center;background:0 0;outline:0;border-radius:.2rem;padding:.5rem .6rem;border:none}button:focus-visible{outline:solid rgba(var(--text-color),1)}a:not([href=""]):any-link{position:relative;display:inline-flex;align-items:center;background:0 0;cursor:pointer;outline:0;font-weight:500;font-size:.8rem;border-radius:.3rem;padding:.5rem .6rem;align-self:flex-start;text-decoration:none;color:rgba(var(--text-color),.7);-webkit-tap-highlight-color:transparent;background-color:rgba(var(--text-color),.06)}a:not([href=""]):any-link .icon{margin-right:.3rem;height:1.2rem}a:any-link:focus-visible{outline:solid rgba(var(--text-color),1)}sm-button{--border-radius:0.3rem}ul{list-style:none}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.flex{display:flex}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-items:flex-start}.align-center{align-items:center}.text-center{text-align:center}.justify-start{justify-content:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.16);pointer-events:none}.interact{position:relative;overflow:hidden}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)~.empty-state{display:none}.icon{width:1.5rem;height:1.5rem;fill:rgba(var(--text-color),.9)}.page-layout{position:relative;display:grid;grid-template-columns:1rem 1fr 1rem}.page-layout>*{grid-column:2/3}.popup__header{display:grid;gap:.5rem;width:100%;padding:1rem 1.5rem;align-items:center;grid-template-columns:auto 1fr}.popup__header__close{padding:.5rem;cursor:pointer}.button--primary{color:#fff;font-weight:500;padding:.5rem 1.2rem;background-color:var(--accent-color)}.auto-grid-2{gap:2rem;grid-template-columns:1fr}#error_page,#loading_page{position:relative;display:grid;height:100%;place-content:center;justify-items:center}#main_header{position:relative;display:flex;padding:1rem;align-items:center;justify-content:space-between;grid-template-columns:repeat(3,1fr)}#main_header__logo{height:1.8rem;width:1.8rem}.theme-switcher{position:relative;justify-self:flex-end;width:1.5rem;height:1.5rem}.theme-switcher .icon{position:absolute;transition:transform .6s}.theme-switcher__checkbox{display:none}.theme-switcher__checkbox:checked~.moon-icon{transform:scale(0) rotate(90deg)}.theme-switcher__checkbox:not(:checked)~.sun-icon{transform:scale(0) rotate(-90deg)}.page{padding-bottom:2rem}#search_section{position:relative;display:grid;gap:.5rem 0;padding:4rem 0;justify-items:center}.app-icon{height:3rem;width:3rem}.app-name{margin-bottom:1rem;color:rgba(var(--text-color),.7)}#search_torrent{margin-bottom:1rem}.search-torrent{width:min(28rem,100%);--border-radius:2rem;--background:rgba(var(--text-color), 0.06)}.search-torrent .icon{height:1.2rem;fill:rgba(var(--text-color),.7)}.torrent-container{padding:1.5rem 0;display:grid;gap:.5rem;padding-bottom:4rem}.torrent-card{display:grid;gap:0 1rem;align-items:center;grid-template-columns:auto 1fr auto;padding:1rem;border-radius:.3rem;background-color:rgba(var(--text-color),.06)}.torrent-card .torrent-type-icon{padding:.8rem}.torrent-card__icon .icon{height:1.4rem;width:1.4rem}.torrent-card__title{font-weight:600;font-size:1.1rem;margin-bottom:.5rem}.torrent-card__tags,.torrent-card__uploader{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;color:rgba(var(--text-color),.7)}#torrent__description,#torrent_tags,#torrent_uploader,.progress-percent,.torrent-card__description{color:rgba(var(--text-color),.8)}.torrent-card__description{font-size:.9rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.torrent-card__size{font-weight:500}.torrent-card__download-button{justify-self:flex-end;align-self:flex-start;background-color:rgba(var(--text-color),.1)}.torrent-card__download-button .icon{height:1.4rem;margin-right:.5rem}.progress-indicator{justify-self:flex-end;height:2.3rem;padding:0 .6rem}.progress-percent{font-size:.9rem;font-weight:500}.progress-loader{height:1.2rem;width:1.2rem;fill:none;padding:.1rem;stroke-width:16;overflow:visible;margin-right:.5rem;stroke-dasharray:201;stroke-dashoffset:201;transform:rotate(-90deg);stroke:var(--accent-color);transition:stroke-dashoffset .3s}#torrent_popup{--width:min(56rem, 100%)}.torrent-preview{display:grid}.torrent-preview__info-section{display:flex;flex-direction:column;align-content:flex-start}.torrent-type-icon{display:flex;padding:1rem;border-radius:50%;align-items:center;justify-content:center;align-self:flex-start;aspect-ratio:1/1;flex-shrink:0;background-color:var(--accent-color)}#main_footer,#torrent_type_icon{background-color:rgba(var(--text-color),.06)}.torrent-type-icon .icon{fill:#fff}#torrent_type_icon{align-self:center;justify-self:center;padding:2rem}#torrent_type_icon .icon{height:3rem;width:3rem;fill:rgba(var(--text-color),.3)}#torrent_tags,#torrent_uploader{display:flex;width:100%;font-size:.85rem;margin-bottom:.3rem}#torrent_name{font-size:1.5rem;margin-bottom:1rem}#torrent__description{font-size:.9rem}#torrent_uploader{font-weight:500;line-height:1.7;margin-top:1rem;width:auto;border-radius:1.5rem;padding:.3rem .8rem;align-self:flex-start;background-color:rgba(var(--text-color),.1)}#torrent_download_button{color:#fff;width:100%;flex-shrink:0;padding:.7rem;margin-top:2rem;justify-content:center;background-color:var(--accent-color)}#torrent_download_button .icon{fill:#fff}#advance_search_section{align-items:flex-start;padding:1rem 0;margin-bottom:1rem}#advance_search_switch{justify-self:flex-start}#advance_search_switch h4{margin-left:1rem}sm-option{font-size:.9rem}#main_footer{padding:3rem 0}@media only screen and (max-width:640px){.popup__header{padding:0 1.5rem 0 .5rem}.torrent-card{grid-template-columns:auto 1fr}.torrent-card__icon{margin:0}.torrent-card__title{font-size:.95rem}.torrent-card__tags,.torrent-card__uploader{font-size:.7rem}.torrent-card__description{display:none}.torrent-card .progress-indicator,.torrent-card__download-button{margin-top:1rem;grid-column:2/3}#torrent_type_icon{margin-bottom:3rem}#torrent_tags{font-size:.8rem}}@media only screen and (min-width:640px){.popup__header{padding:1.5rem 1.5rem 0}.auto-grid-2{grid-template-columns:1fr 1fr}.page-layout{grid-template-columns:1fr 90vw 1fr}#main_header,.torrent-card{padding:1.5rem}#torrent_popup{--min-height:80vh}.torrent-preview{gap:3rem;grid-template-columns:22rem 1fr}}@media only screen and (min-width:1280px){.page-layout{grid-template-columns:1fr 80vw 1fr}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}}
\ No newline at end of file
diff --git a/css/main.scss b/css/main.scss
index dbbd5bd..037b381 100644
--- a/css/main.scss
+++ b/css/main.scss
@@ -268,6 +268,18 @@ ul{
cursor: pointer;
}
+.button--primary{
+ color: white;
+ font-weight: 500;
+ padding: 0.5rem 1.2rem;
+ background-color: var(--accent-color);
+}
+
+.auto-grid-2{
+ gap: 2rem;
+ grid-template-columns: 1fr;
+}
+
#loading_page,
#error_page{
@@ -313,6 +325,10 @@ ul{
}
}
+.page{
+ padding-bottom: 2rem;
+}
+
#search_section{
position: relative;
display: grid;
@@ -418,7 +434,7 @@ ul{
width: 1.2rem;
fill: none;
padding: 0.1rem;
- stroke-width: 12;
+ stroke-width: 16;
overflow: visible;
margin-right: 0.5rem;
stroke-dasharray: 201;
@@ -502,9 +518,19 @@ ul{
}
}
#advance_search_section{
+ align-items: flex-start;
padding: 1rem 0;
margin-bottom: 1rem;
}
+#advance_search_switch{
+ justify-self: flex-start;
+ h4{
+ margin-left: 1rem;
+ }
+}
+sm-option{
+ font-size: 0.9rem;
+}
#main_footer{
padding: 3rem 0;
background-color: rgba(var(--text-color), 0.06);
@@ -545,6 +571,9 @@ ul{
.popup__header{
padding: 1.5rem 1.5rem 0 1.5rem;
}
+ .auto-grid-2{
+ grid-template-columns: 1fr 1fr;
+ }
.page-layout{
grid-template-columns: 1fr 90vw 1fr;
}
diff --git a/index.html b/index.html
index 8fa092c..5d56265 100644
--- a/index.html
+++ b/index.html
@@ -77,34 +77,38 @@
-
- Search
-
-
-
-
- Advanced search
-
-
-
-
Category
-
- Movie
- TV series
- Video
- Music
- Software
- Game
- Image
- Audio
- Misc
-
-
-
+
+
+
+
+ Advanced search
+
+
+
+
Category
+
+ Movie
+ TV series
+ Video
+ Music
+ Software
+ Game
+ Image
+ Audio
+ Misc
+
+
+
+
+
-
@@ -817,9 +821,6 @@
card.id = id
card.querySelector('.torrent-card__title').textContent = name
card.querySelector('.torrent-card__uploader').textContent = `by ${uploader}`
- // card.querySelector('.torrent-card__tags').textContent = tags.split('/').join('•')
- // card.querySelector('.torrent-card__description').textContent = description
- // card.querySelector('.torrent-card__size').textContent = size
card.querySelector('.torrent-card__icon').innerHTML = getIcon(type)
return card
}
@@ -884,27 +885,25 @@
}
})
- function getParts(url){
- let page = '', query = ''
- if(url){
- page = url[0] === '#'? url.split('#')[1]: url
- if(page.includes('?')){
- let parts = page.split('?')
- page = parts[0]
- query = parts[1]
- }
- }
- return [page, query]
+ function getParts(){
+ const urlSearchParams = new URLSearchParams(window.location.search);
+ const params = Object.fromEntries(urlSearchParams.entries());
+ return params
}
let advancedSearch = {
active: false,
+ query: '',
category: ''
}
+ let lastQuery = ''
- async function renderSearchResult(searchKey){
- const query = getParts(window.location.path)[1]
- if(query !== searchKey){
+ async function renderSearchResult(searchKey, shouldFilter = false){
+ if(lastQuery !== searchKey || shouldFilter){
+ if(shouldFilter){
+ searchKey = getRef('advance_torrent_search').value.trim() !== '' ? getRef('advance_torrent_search').value.trim() : lastQuery
+ }
+ advancedSearch['query'] = searchKey
const torrents = await getDataFromIDB()
const options = {
keys: ['name', 'filename'],
@@ -932,17 +931,34 @@
}
getRef('search_result').innerHTML = ``
getRef('search_result').append(renderTorrents(result))
- history.pushState(null, null, `#search?${searchKey}`)
+ let params = ''
+ for (let prop in advancedSearch) {
+ if(prop !== 'isActive' && advancedSearch[prop] && advancedSearch[prop] !== ''){
+ params += `${prop}=${advancedSearch[prop]}&`
+ }
+ }
+ if(params.slice(-1) === '&'){
+ params = params.slice(0, -1)
+ }
+ history.pushState(null, null, `?${params}#search`)
showPage('search')
+ lastQuery = searchKey
}
}
function showPage(target){
- let [page, query] = getParts(target)
+ let params = getParts()
+ let page = target.includes('#') ? target.split('#')[1] : target
switch(page){
case 'search':
- if(query){
- renderSearchResult(query)
+ if(params.query){
+ if(params.category){
+ advancedSearch = {
+ isActive: true,
+ ...params
+ }
+ }
+ renderSearchResult(params.query)
}
break
default:
@@ -964,12 +980,10 @@
getRef('advance_search_panel').classList.remove('hide-completely')
}
else{
- advancedSearch = {
- isActive: false,
- category: ''
- }
+ advancedSearch.isActive = false
getRef('advance_search_panel').classList.add('hide-completely')
}
+ advancedSearch['query'] = getRef('advance_torrent_search').value.trim()
})
getRef('category_selector').addEventListener('change', e => {
advancedSearch.category = e.detail.value