A search box (SearchBox) provides an input field for searching content within a site or app to find specific items.

For more details and examples visit the official docs. The R package can not handle each and every case, so for advanced use cases you need to work using the original docs to achieve the desired result.

SearchBox(...)

SearchBox.shinyInput(inputId, ..., value = defaultValue)

updateSearchBox.shinyInput(
  session = shiny::getDefaultReactiveDomain(),
  inputId,
  ...
)

Arguments

value

string
The value of the text in the SearchBox.

ariaLabel

string
The aria label of the SearchBox for the benefit of screen readers.

className

string
CSS class to apply to the SearchBox.

clearButtonProps

IButtonProps
The props for the clear button.

componentRef

IRefObject<ISearchBox>
Optional callback to access the ISearchBox interface. Use this instead of ref for accessing the public methods and properties of the component.

defaultValue

string
The default value of the text in the SearchBox, in the case of an uncontrolled component. This prop is being deprecated since so far, uncontrolled behavior has not been implemented.

disableAnimation

boolean
Whether or not to animate the SearchBox icon on focus.

iconProps

Pick<IIconProps, Exclude<keyof IIconProps, 'className'>>
The props for the icon.

labelText

string
Deprecated. Use placeholder instead.

onChange

(event?: React.ChangeEvent<HTMLInputElement>, newValue?: string) => void
Callback function for when the typed input for the SearchBox has changed.

onChanged

(newValue: any) => void
Deprecated at v0.52.2, use onChange instead.

onClear

(ev?: any) => void
Callback executed when the user clears the search box by either clicking 'X' or hitting escape.

onEscape

(ev?: any) => void
Callback executed when the user presses escape in the search box.

onSearch

(newValue: any) => void
Callback executed when the user presses enter in the search box.

placeholder

string
Placeholder for the search box.

styles

IStyleFunctionOrObject<ISearchBoxStyleProps, ISearchBoxStyles>
Call to provide customized styling that will layer on top of the variant rules.

theme

ITheme
Theme (provided through customization).

underlined

boolean
Whether or not the SearchBox is underlined.

Best practices

Layout

  • Don't build a custom search control based on the default text box or any other control.

  • Use a search box without a parent container when it's not restricted to a certain width to accommodate other content. This search box will span the entire width of the space it's in.

Content

  • Use placeholder text in the search box to describe what people can search for. For example, "Search", "Search files", or "Search contacts list".

  • Although search entry points tend to be similarly visualized, they can provide access to results that range from broad to narrow. By effectively communicating the scope of a search, you can ensure that people's expectations are met by the capabilities of the search you're performing, which will reduce the possibility of frustration. The search entry point should be placed near the content being searched.<br/><br/>Some common search scopes include:

    • Global: Search across multiple sources of cloud and local content. Varied results include URLs, documents, media, actions, apps, and more.

    • Web: Search a web index. Results include pages, entities, and answers.

    • My stuff: Search across devices, cloud, social graphs, and more. Results are varied but are constrained by the connection to user accounts.

Examples

library(shiny.fluent)

if (interactive()) {
  shinyApp(
    ui = div(
      SearchBox.shinyInput("search", placeholder = "Search"),
      textOutput("searchValue")
    ),
    server = function(input, output) {
      output$searchValue <- renderText({
        sprintf("Value: %s", input$search)
      })
    }
  )
}