docs: create docs workspace (#5174)
* docs: migrate ui docs to docs universe * created yarn workspace * added eslint and tsconfig configurations * fix eslint configurations * fixed eslint configurations * shared tailwind configurations * added shared ui package * added more shared components * migrating more components * made details components shared * move InlineCode component * moved InputText * moved Loading component * Moved Modal component * moved Select components * Moved Tooltip component * moved Search components * moved ColorMode provider * Moved Notification components and providers * used icons package * use UI colors in api-reference * moved Navbar component * used Navbar and Search in UI docs * added Feedback to UI docs * general enhancements * fix color mode * added copy colors file from ui-preset * added features and enhancements to UI docs * move Sidebar component and provider * general fixes and preparations for deployment * update docusaurus version * adjusted versions * fix output directory * remove rootDirectory property * fix yarn.lock * moved code component * added vale for all docs MD and MDX * fix tests * fix vale error * fix deployment errors * change ignore commands * add output directory * fix docs test * general fixes * content fixes * fix announcement script * added changeset * fix vale checks * added nofilter option * fix vale error
This commit is contained in:
51
www/apps/docs/src/theme/SearchBar/index.tsx
Normal file
51
www/apps/docs/src/theme/SearchBar/index.tsx
Normal file
@@ -0,0 +1,51 @@
|
||||
import React, { useEffect } from "react"
|
||||
import SearchBar from "@theme-original/SearchBar"
|
||||
import type SearchBarType from "@theme/SearchBar"
|
||||
import type { WrapperProps } from "@docusaurus/types"
|
||||
import useIsBrowser from "@docusaurus/useIsBrowser"
|
||||
import { useLocation } from "@docusaurus/router"
|
||||
import { useAnalytics } from "docs-ui"
|
||||
|
||||
type Props = WrapperProps<typeof SearchBarType>
|
||||
|
||||
export default function SearchBarWrapper(props: Props): JSX.Element {
|
||||
const isBrowser = useIsBrowser()
|
||||
const location = useLocation()
|
||||
const { track } = useAnalytics()
|
||||
|
||||
useEffect(() => {
|
||||
if (isBrowser) {
|
||||
const trackSearch = (e) => {
|
||||
if (
|
||||
!e.target.classList?.contains("DocSearch-Input") &&
|
||||
!(
|
||||
e.target.tagName.toLowerCase() === "input" &&
|
||||
e.target.getAttribute("type") === "search"
|
||||
)
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
const query = e.target.value
|
||||
if (query.length >= 3) {
|
||||
// send event to segment
|
||||
track("search", {
|
||||
query,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
document.body.addEventListener("keyup", trackSearch)
|
||||
|
||||
return () => {
|
||||
document.body.removeEventListener("keyup", trackSearch)
|
||||
}
|
||||
}
|
||||
}, [isBrowser, location.pathname])
|
||||
|
||||
return (
|
||||
<>
|
||||
<SearchBar {...props} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user