UX: put full page search discoveries in sidebar (#1289)
This commit is contained in:
parent
7dc3c30fa4
commit
81a664b3da
|
|
@ -213,8 +213,11 @@ export default class AiFullPageSearch extends Component {
|
|||
}
|
||||
|
||||
<template>
|
||||
<span {{didUpdate this.sortChanged @sortOrder}}></span>
|
||||
<div class="semantic-search__container search-results" role="region">
|
||||
<div
|
||||
{{didUpdate this.sortChanged @sortOrder}}
|
||||
class="semantic-search__container search-results"
|
||||
role="region"
|
||||
>
|
||||
<div class="semantic-search__results">
|
||||
<div
|
||||
class={{concatClass "semantic-search__searching" this.searchClass}}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import Component from "@glimmer/component";
|
||||
import { service } from "@ember/service";
|
||||
import bodyClass from "discourse/helpers/body-class";
|
||||
import icon from "discourse/helpers/d-icon";
|
||||
import { i18n } from "discourse-i18n";
|
||||
import AiSearchDiscoveries from "../../components/ai-search-discoveries";
|
||||
|
|
@ -15,8 +16,21 @@ export default class AiFullPageDiscobotDiscoveries extends Component {
|
|||
}
|
||||
|
||||
@service discobotDiscoveries;
|
||||
@service site;
|
||||
|
||||
get previewLength() {
|
||||
// todo: replace with js breakpoint API
|
||||
// https://github.com/discourse/discourse/pull/32060
|
||||
if (this.site.mobileView || this.site.narrowDesktopView) {
|
||||
return 50;
|
||||
} else {
|
||||
return 10000;
|
||||
}
|
||||
}
|
||||
|
||||
<template>
|
||||
{{bodyClass "has-discoveries"}}
|
||||
<div class="ai-search-discoveries__discoveries-wrapper">
|
||||
{{#if this.discobotDiscoveries.showDiscoveryTitle}}
|
||||
<h3
|
||||
class="ai-search-discoveries__discoveries-title full-page-discoveries"
|
||||
|
|
@ -25,13 +39,16 @@ export default class AiFullPageDiscobotDiscoveries extends Component {
|
|||
{{icon "discobot"}}
|
||||
{{i18n "discourse_ai.discobot_discoveries.main_title"}}
|
||||
</span>
|
||||
|
||||
<AiSearchDiscoveriesTooltip />
|
||||
</h3>
|
||||
{{/if}}
|
||||
|
||||
<div class="full-page-discoveries">
|
||||
<AiSearchDiscoveries @searchTerm={{@outletArgs.search}} />
|
||||
<AiSearchDiscoveries
|
||||
@discoveryPreviewLength={{this.previewLength}}
|
||||
@searchTerm={{@outletArgs.search}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
@use "lib/viewport";
|
||||
|
||||
@keyframes fade-in {
|
||||
from {
|
||||
opacity: 0;
|
||||
|
|
@ -99,7 +101,11 @@
|
|||
}
|
||||
|
||||
.full-page-discoveries {
|
||||
padding: 1em 10%;
|
||||
padding: 0 1rem;
|
||||
|
||||
@include viewport.until(md) {
|
||||
padding: 0.25rem 1rem 0 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.d-icon-discobot {
|
||||
|
|
@ -167,3 +173,113 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search-page .ai-search-discoveries__discoveries-wrapper {
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.ai-search-discoveries__discoveries-title.full-page-discoveries {
|
||||
border: none;
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
@mixin discoveries-sidebar {
|
||||
.full-page-discoveries {
|
||||
padding: 1em 10%;
|
||||
}
|
||||
|
||||
&.search-page.has-discoveries {
|
||||
.semantic-search__container {
|
||||
background: transparent;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.semantic-search__container .semantic-search__results {
|
||||
.semantic-search__searching {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.semantic-search__searching-text {
|
||||
margin-left: 1.25em;
|
||||
}
|
||||
}
|
||||
|
||||
.search-container .search-header {
|
||||
padding: 1em 2em;
|
||||
}
|
||||
|
||||
.semantic-search__container .search-results,
|
||||
.search-container .search-advanced .search-results,
|
||||
.search-container .search-advanced .search-info {
|
||||
padding: 1em 2em;
|
||||
}
|
||||
|
||||
.search-results .fps-result {
|
||||
padding: 0;
|
||||
margin-bottom: 2.5em;
|
||||
}
|
||||
|
||||
.search-advanced {
|
||||
display: grid;
|
||||
grid-template-columns: 70% 30%;
|
||||
grid-auto-rows: auto;
|
||||
|
||||
> * {
|
||||
grid-column: 1;
|
||||
align-self: start;
|
||||
}
|
||||
}
|
||||
|
||||
.search-info {
|
||||
grid-row: 1;
|
||||
}
|
||||
|
||||
.ai-search-discoveries__discoveries-title {
|
||||
border: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.ai-search-discoveries__discoveries-wrapper {
|
||||
grid-column: 2 / -1;
|
||||
grid-row: 1 / 5;
|
||||
border-left: 1px solid var(--primary-low);
|
||||
align-self: stretch;
|
||||
|
||||
.cooked {
|
||||
color: var(--primary-high);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body:not(.has-sidebar-page) {
|
||||
@include viewport.from(md) {
|
||||
@include discoveries-sidebar;
|
||||
}
|
||||
}
|
||||
|
||||
body.has-sidebar-page {
|
||||
@include viewport.from(lg) {
|
||||
@include discoveries-sidebar;
|
||||
}
|
||||
|
||||
@include viewport.between(md, lg) {
|
||||
.ai-search-discoveries__discoveries-wrapper {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.ai-search-discoveries__discoveries-title {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.search-container .search-advanced .search-info,
|
||||
.semantic-search__container.search-results {
|
||||
padding-inline: 10%;
|
||||
}
|
||||
|
||||
.full-page-discoveries {
|
||||
padding-inline: 10%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,19 @@
|
|||
@use "lib/viewport";
|
||||
|
||||
.semantic-search__container {
|
||||
background: var(--primary-very-low);
|
||||
margin: 1rem 0 1rem 0;
|
||||
margin: 1rem 0 0 0;
|
||||
|
||||
.has-sidebar-page & {
|
||||
@include viewport.until(lg) {
|
||||
border-top: 1px solid var(--primary-low);
|
||||
}
|
||||
}
|
||||
|
||||
body:not(.has-sidebar-page) & {
|
||||
@include viewport.until(md) {
|
||||
border-top: 1px solid var(--primary-low);
|
||||
}
|
||||
}
|
||||
|
||||
.semantic-search__results {
|
||||
display: flex;
|
||||
|
|
@ -15,7 +28,6 @@
|
|||
&__searching {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 5px;
|
||||
|
||||
&.in-progress,
|
||||
&.unavailable {
|
||||
|
|
@ -23,6 +35,11 @@
|
|||
color: var(--primary-medium);
|
||||
}
|
||||
}
|
||||
|
||||
svg {
|
||||
font-size: var(--font-down-1);
|
||||
color: var(--primary-high);
|
||||
}
|
||||
}
|
||||
|
||||
&__searching-text {
|
||||
|
|
@ -72,3 +89,16 @@
|
|||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@include viewport.until(md) {
|
||||
.search-container .search-advanced .semantic-search__container {
|
||||
+ .search-info {
|
||||
padding-inline: 1rem;
|
||||
}
|
||||
|
||||
&.search-results {
|
||||
margin-bottom: 0;
|
||||
padding-inline: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue