// @flow import * as ICONS from 'constants/icons'; import React, { useEffect, Fragment } from 'react'; import { isURIValid, normalizeURI, regexInvalidURI } from 'lbry-redux'; import ClaimPreview from 'component/claimPreview'; import ClaimList from 'component/claimList'; import Page from 'component/page'; import SearchOptions from 'component/searchOptions'; import Button from 'component/button'; import ClaimUri from 'component/claimUri'; type Props = { search: string => void, isSearching: boolean, location: UrlLocation, uris: Array, onFeedbackNegative: string => void, onFeedbackPositive: string => void, }; export default function SearchPage(props: Props) { const { search, uris, onFeedbackPositive, onFeedbackNegative, location, isSearching } = props; const urlParams = new URLSearchParams(location.search); const urlQuery = urlParams.get('q'); let INVALID_URI_CHARS = new RegExp(regexInvalidURI, 'gu'); let modifiedUrlQuery = urlQuery ? urlQuery .trim() .replace(/\s+/g, '-') .replace(INVALID_URI_CHARS, '') : ''; const isModifiedUriValid = isURIValid(modifiedUrlQuery); const normalizedModifiedUri = isModifiedUriValid && normalizeURI(modifiedUrlQuery); useEffect(() => { if (urlQuery) { search(urlQuery); } }, [search, urlQuery]); return (
{urlQuery && ( {isModifiedUriValid && (
)}
} headerAltControls={ {__('Find what you were looking for?')}
{__('These search results are provided by LBRY, Inc.')}
)}
); }