Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 55 additions & 10 deletions app/_components/algolia-search.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
"use client";

import { liteClient as algoliasearch } from "algoliasearch/lite";
import { Search } from "lucide-react";
import {
BookOpen,
Code,
Search,
Server,
Shield,
Wrench,
Zap,
} from "lucide-react";
import { useEffect, useState } from "react";
import {
Configure,
Expand Down Expand Up @@ -166,15 +174,57 @@ function SearchHit({ hit }: { hit: DocSearchRecord }) {
);
}

const QUICK_LINKS = [
{ title: "Get started", href: "/en/get-started", icon: BookOpen },
{ title: "Quickstarts", href: "/en/get-started/quickstarts", icon: Zap },
{ title: "Tools", href: "/en/resources/tools", icon: Wrench },
{
title: "Auth providers",
href: "/en/references/auth-providers",
icon: Shield,
},
{ title: "API reference", href: "/en/references/api", icon: Code },
{ title: "MCP servers", href: "/en/references/mcp", icon: Server },
];

function EmptyQuery() {
const { indexUiState } = useInstantSearch();
if (indexUiState.query) {
return null;
}
return (
<p className="px-4 py-8 text-center text-sm text-muted-foreground">
Start typing to search the docs…
</p>
<div className="px-4 py-4">
<p className="mb-3 text-xs font-medium uppercase tracking-wide text-muted-foreground">
Quick links
</p>
<div className="grid grid-cols-2 gap-1">
{QUICK_LINKS.map((link) => (
<a
className="flex items-center gap-2 rounded-lg px-3 py-2 text-sm text-foreground hover:bg-neutral-100 dark:hover:bg-white/5"
href={link.href}
key={link.href}
>
<link.icon className="size-3.5 shrink-0 text-muted-foreground" />
{link.title}
</a>
))}
</div>
</div>
);
}

function ConditionalHits() {
const { indexUiState } = useInstantSearch();
if (!indexUiState.query) {
return null;
}
return (
<Hits
classNames={{ item: "", list: "space-y-0.5", root: "" }}
hitComponent={({ hit }) => (
<SearchHit hit={hit as unknown as DocSearchRecord} />
)}
/>
);
}

Expand Down Expand Up @@ -275,12 +325,7 @@ export function AlgoliaSearch() {
<div className="max-h-[60vh] overflow-y-auto p-2">
<EmptyQuery />
<NoResults />
<Hits
classNames={{ item: "", list: "space-y-0.5", root: "" }}
hitComponent={({ hit }) => (
<SearchHit hit={hit as unknown as DocSearchRecord} />
)}
/>
<ConditionalHits />
</div>
</InstantSearch>
) : (
Expand Down
2 changes: 1 addition & 1 deletion app/en/references/auth-providers/pagerduty/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ To integrate with PagerDuty's API using OAuth 2.0, you'll need to register an ap

</Steps>

For detailed instructions, refer to PagerDuty's [OAuth 2.0 guide](https://www.pagerduty.com/blog/insights/build-sophisticated-apps-for-your-pagerduty-environment-using-oauth-2-0-and-api-scopes/) and [OAuth documentation](https://developer.pagerduty.com/docs/oauth-functionality).
For detailed instructions, refer to PagerDuty's [OAuth 2.0 documentation](https://developer.pagerduty.com/docs/oauth-functionality).

Next, add the PagerDuty app to Arcade.

Expand Down
4 changes: 2 additions & 2 deletions public/_markdown/en/references/auth-providers/pagerduty.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ To integrate with PagerDuty’s API using OAuth 2.0, you’ll need to register a
1. After creating your app, you’ll receive your **Client ID** and **Client Secret**
2. **Important**: Copy and save these credentials immediately, as the Client Secret won’t be accessible again

For detailed instructions, refer to PagerDuty’s [OAuth 2.0 guide](https://www.pagerduty.com/blog/insights/build-sophisticated-apps-for-your-pagerduty-environment-using-oauth-2-0-and-api-scopes/)  and [OAuth documentation](https://developer.pagerduty.com/docs/oauth-functionality) .
For detailed instructions, refer to PagerDuty’s [OAuth 2.0 documentation](https://developer.pagerduty.com/docs/oauth-functionality) .

Next, add the PagerDuty app to Arcade.

Expand Down Expand Up @@ -258,7 +258,7 @@ PagerDuty Classic apps use two permission levels:

For more details about PagerDuty’s OAuth permissions, refer to the [PagerDuty OAuth functionality docs](https://developer.pagerduty.com/docs/oauth-functionality#scopes) .

Last updated on January 30, 2026
Last updated on February 27, 2026

[Notion](/en/references/auth-providers/notion.md)
[Reddit](/en/references/auth-providers/reddit.md)