mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-11 20:05:25 +00:00
Some checks failed
Publish to ghcr / build (linux/amd64, blacksmith-4vcpu-ubuntu-2404) (push) Has been cancelled
Publish to ghcr / build (linux/arm64, blacksmith-8vcpu-ubuntu-2204-arm) (push) Has been cancelled
Update Roadmap Released / update (push) Has been cancelled
Publish to ghcr / merge (push) Has been cancelled
* generate protobuf types * stream poc over SSE * wip: make stream search api follow existing schema. Modify UI to support streaming * fix scrolling issue * Dockerfile * wip on lezer parser grammar for query language * add lezer tree -> grpc transformer * remove spammy log message * fix syntax highlighting by adding a module resolution for @lezer/common * further wip on query language * Add case sensitivity and regexp toggles * Improved type safety / cleanup for query lang * support search contexts * update Dockerfile with query langauge package * fix filter * Add skeletons to filter panel when search is streaming * add client side caching * improved cancelation handling * add isSearchExausted flag for flagging when a search captured all results * Add back posthog search_finished event * remove zoekt tenant enforcement * migrate blocking search over to grpc. Centralize everything in searchApi * branch handling * plumb file weburl * add repo_sets filter for repositories a user has access to * refactor a bunch of stuff + add support for passing in Query IR to search api * refactor * dev README * wip on better error handling * error handling for stream path * update mcp * changelog wip * type fix * style * Support rev:* wildcard * changelog * changelog nit * feedback * fix build * update docs and remove uneeded test file
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { env } from "@sourcebot/shared";
|
|
import { SearchLandingPage } from "./components/searchLandingPage";
|
|
import { SearchResultsPage } from "./components/searchResultsPage";
|
|
|
|
interface SearchPageProps {
|
|
params: Promise<{ domain: string }>;
|
|
searchParams: Promise<{
|
|
query?: string;
|
|
isRegexEnabled?: "true" | "false";
|
|
isCaseSensitivityEnabled?: "true" | "false";
|
|
}>;
|
|
}
|
|
|
|
export default async function SearchPage(props: SearchPageProps) {
|
|
const { domain } = await props.params;
|
|
const searchParams = await props.searchParams;
|
|
const query = searchParams?.query;
|
|
const isRegexEnabled = searchParams?.isRegexEnabled === "true";
|
|
const isCaseSensitivityEnabled = searchParams?.isCaseSensitivityEnabled === "true";
|
|
|
|
if (query === undefined || query.length === 0) {
|
|
return <SearchLandingPage domain={domain} />
|
|
}
|
|
|
|
return (
|
|
<SearchResultsPage
|
|
searchQuery={query}
|
|
defaultMaxMatchCount={env.DEFAULT_MAX_MATCH_COUNT}
|
|
isRegexEnabled={isRegexEnabled}
|
|
isCaseSensitivityEnabled={isCaseSensitivityEnabled}
|
|
/>
|
|
)
|
|
}
|