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>
|
<template>
|
||||||
<span {{didUpdate this.sortChanged @sortOrder}}></span>
|
<div
|
||||||
<div class="semantic-search__container search-results" role="region">
|
{{didUpdate this.sortChanged @sortOrder}}
|
||||||
|
class="semantic-search__container search-results"
|
||||||
|
role="region"
|
||||||
|
>
|
||||||
<div class="semantic-search__results">
|
<div class="semantic-search__results">
|
||||||
<div
|
<div
|
||||||
class={{concatClass "semantic-search__searching" this.searchClass}}
|
class={{concatClass "semantic-search__searching" this.searchClass}}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import Component from "@glimmer/component";
|
import Component from "@glimmer/component";
|
||||||
import { service } from "@ember/service";
|
import { service } from "@ember/service";
|
||||||
|
import bodyClass from "discourse/helpers/body-class";
|
||||||
import icon from "discourse/helpers/d-icon";
|
import icon from "discourse/helpers/d-icon";
|
||||||
import { i18n } from "discourse-i18n";
|
import { i18n } from "discourse-i18n";
|
||||||
import AiSearchDiscoveries from "../../components/ai-search-discoveries";
|
import AiSearchDiscoveries from "../../components/ai-search-discoveries";
|
||||||
|
|
@ -15,23 +16,39 @@ export default class AiFullPageDiscobotDiscoveries extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
@service discobotDiscoveries;
|
@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>
|
<template>
|
||||||
{{#if this.discobotDiscoveries.showDiscoveryTitle}}
|
{{bodyClass "has-discoveries"}}
|
||||||
<h3
|
<div class="ai-search-discoveries__discoveries-wrapper">
|
||||||
class="ai-search-discoveries__discoveries-title full-page-discoveries"
|
{{#if this.discobotDiscoveries.showDiscoveryTitle}}
|
||||||
>
|
<h3
|
||||||
<span>
|
class="ai-search-discoveries__discoveries-title full-page-discoveries"
|
||||||
{{icon "discobot"}}
|
>
|
||||||
{{i18n "discourse_ai.discobot_discoveries.main_title"}}
|
<span>
|
||||||
</span>
|
{{icon "discobot"}}
|
||||||
|
{{i18n "discourse_ai.discobot_discoveries.main_title"}}
|
||||||
|
</span>
|
||||||
|
<AiSearchDiscoveriesTooltip />
|
||||||
|
</h3>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<AiSearchDiscoveriesTooltip />
|
<div class="full-page-discoveries">
|
||||||
</h3>
|
<AiSearchDiscoveries
|
||||||
{{/if}}
|
@discoveryPreviewLength={{this.previewLength}}
|
||||||
|
@searchTerm={{@outletArgs.search}}
|
||||||
<div class="full-page-discoveries">
|
/>
|
||||||
<AiSearchDiscoveries @searchTerm={{@outletArgs.search}} />
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
@use "lib/viewport";
|
||||||
|
|
||||||
@keyframes fade-in {
|
@keyframes fade-in {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
|
@ -99,7 +101,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.full-page-discoveries {
|
.full-page-discoveries {
|
||||||
padding: 1em 10%;
|
padding: 0 1rem;
|
||||||
|
|
||||||
|
@include viewport.until(md) {
|
||||||
|
padding: 0.25rem 1rem 0 1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-icon-discobot {
|
.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 {
|
.semantic-search__container {
|
||||||
background: var(--primary-very-low);
|
margin: 1rem 0 0 0;
|
||||||
margin: 1rem 0 1rem 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 {
|
.semantic-search__results {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -15,7 +28,6 @@
|
||||||
&__searching {
|
&__searching {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-left: 5px;
|
|
||||||
|
|
||||||
&.in-progress,
|
&.in-progress,
|
||||||
&.unavailable {
|
&.unavailable {
|
||||||
|
|
@ -23,6 +35,11 @@
|
||||||
color: var(--primary-medium);
|
color: var(--primary-medium);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
font-size: var(--font-down-1);
|
||||||
|
color: var(--primary-high);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__searching-text {
|
&__searching-text {
|
||||||
|
|
@ -72,3 +89,16 @@
|
||||||
display: none;
|
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