Skip to content

Commit 7b2acf0

Browse files
committed
add slot above results full width for plugins
1 parent b21dade commit 7b2acf0

4 files changed

Lines changed: 37 additions & 0 deletions

File tree

src/client/modules/renderer/render-slots.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { SlotPanelPosition, type SlotPanel } from "../../types";
22

33
const SLOT_IDS = [
4+
"slot-full-width-above-results",
45
"slot-above-results",
56
"slot-below-results",
67
"slot-above-sidebar",
@@ -20,6 +21,9 @@ function _renderSlotPanelsInto(panels: SlotPanel[], clearFirst: boolean): void {
2021
if (!panels || !Array.isArray(panels) || panels.length === 0) return;
2122
if (clearFirst) clearSlotPanels();
2223
const byPosition: Record<SlotPanelPosition, HTMLElement | null> = {
24+
[SlotPanelPosition.FullWidthAboveResults]: document.getElementById(
25+
"slot-full-width-above-results",
26+
),
2327
[SlotPanelPosition.AboveResults]:
2428
document.getElementById("slot-above-results"),
2529
[SlotPanelPosition.BelowResults]:
@@ -36,10 +40,17 @@ function _renderSlotPanelsInto(panels: SlotPanel[], clearFirst: boolean): void {
3640
if (!container) continue;
3741
if (panel.position === SlotPanelPosition.AtAGlance) {
3842
container.innerHTML = panel.html;
43+
} else if (panel.position === SlotPanelPosition.FullWidthAboveResults) {
44+
const block = document.createElement("div");
45+
block.className = "results-slot-panel-full-width";
46+
if (panel.id) block.dataset.slot = panel.id;
47+
block.innerHTML = panel.html;
48+
container.appendChild(block);
3949
} else {
4050
const block = document.createElement("div");
4151
block.className =
4252
"results-slot-panel degoog-panel degoog-panel--slot degoog-panel--stack-item";
53+
if (panel.id) block.dataset.slot = panel.id;
4354
const grid = panel.gridSize ?? 4;
4455
block.dataset.grid = String(grid);
4556
if (panel.title) {

src/public/themes/degoog-theme/search.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
<div id="results-header"></div>
44
<div id="results-tabs"></div>
55
<div id="results-meta"></div>
6+
<div
7+
id="slot-full-width-above-results"
8+
data-position="full-width-above-results"
9+
></div>
610
<div id="results-layout">
711
<div id="results-main">
812
<div id="at-a-glance"></div>

src/shared/search-types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export interface EngineTiming {
3232
export enum SlotPanelPosition {
3333
AboveResults = "above-results",
3434
BelowResults = "below-results",
35+
FullWidthAboveResults = "full-width-above-results",
3536
AboveSidebar = "above-sidebar",
3637
BelowSidebar = "below-sidebar",
3738
KnowledgePanel = "knowledge-panel",

src/styles/components/overrides/_results.scss

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,27 @@
420420
margin: $space-5 0;
421421
}
422422

423+
#slot-full-width-above-results {
424+
&:empty { display: none; }
425+
width: 100%;
426+
box-sizing: border-box;
427+
max-width: 83.25rem;
428+
margin: 0 0 $space-5;
429+
padding: 0 clamp(1rem, 1rem + max(0px, (100vw - 48rem) * 0.31), 9.375rem);
430+
431+
.results-slot-panel-full-width {
432+
width: 100%;
433+
}
434+
435+
@media (min-width: 768px) {
436+
#results-page.centered-mode & {
437+
max-width: $results-centered-max;
438+
margin-inline: auto;
439+
padding-inline: $space-5;
440+
}
441+
}
442+
}
443+
423444
#slot-above-sidebar,
424445
#slot-below-sidebar {
425446
&:empty { display: none; }

0 commit comments

Comments
 (0)