fune/browser/components/firefoxview/recentbrowsing.mjs
Jonathan Sudiaman 25237524ed Bug 1851447 - Add search for recent browsing r=fxview-reviewers,fluent-reviewers,flod,sclements,kcochrane
Slightly different from the previous search revisions. In this case, rather than having their own search boxes, the recent browsing components share a single search box located within the parent element. Thus, `fxview-search-textbox-query` event listeners are added/removed from the //parent// component rather than the components themselves.

Differential Revision: https://phabricator.services.mozilla.com/D195596
2023-12-08 15:56:08 +00:00

62 lines
1.7 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { html, when } from "chrome://global/content/vendor/lit.all.mjs";
import { ViewPage } from "./viewpage.mjs";
import { isSearchEnabled } from "./helpers.mjs";
class RecentBrowsingInView extends ViewPage {
constructor() {
super();
this.pageType = "recentbrowsing";
}
static queries = {
searchTextbox: "fxview-search-textbox",
};
viewVisibleCallback() {
for (let child of this.children) {
let childView = child.firstElementChild;
childView.paused = false;
childView.viewVisibleCallback();
}
}
viewHiddenCallback() {
for (let child of this.children) {
let childView = child.firstElementChild;
childView.paused = true;
childView.viewHiddenCallback();
}
}
render() {
return html`
<link
rel="stylesheet"
href="chrome://browser/content/firefoxview/firefoxview-next.css"
/>
<div class="sticky-container bottom-fade">
<h2
class="page-header heading-large"
data-l10n-id="firefoxview-overview-header"
></h2>
${when(
isSearchEnabled(),
() => html`<div class="search-container">
<fxview-search-textbox
data-l10n-id="firefoxview-search-text-box-recentbrowsing"
data-l10n-attrs="placeholder"
></fxview-search-textbox>
</div>`
)}
</div>
<div class="cards-container">
<slot></slot>
</div>
`;
}
}
customElements.define("view-recentbrowsing", RecentBrowsingInView);